Docker容器之间的通信的方法实现
作者:Mr_Eiffel 发布时间:2023-05-16 15:42:31
情景:本地已经搭建laradock开发环境(php7.3+mysql5.7),现在想用laradock环境来运行同一个已有项目,但是该项目数据在mysql5.6的docker容器里,现在需要连接两个容器,实现数据交互。
在网上涉猎了很多与《docker 容器之间通信_docker中容器如何实现通信》的相关资料,最终觉得使用docker新创建一个网络(-d bridge网络驱动器为bridge),把两个容器都连接到该网络下,实现数据交互。
方法如下:
自己创建一个网络
[root@docker ~]# docker network create -d bridge my-bridge
01f3d92281d7dd6eaeabd77c95c62f0d33f8d45bd0e1bc7c7e1c3208526dfd2a
创建一个网络,-d bridge网络驱动器为bridge,名称叫mybridge
查看已创建的网络:
启动一个容器,使用自建的网络my-bridge
[root@docker ~]# docker run -d --name test3 --network my-bridge cgy/mycentos:v2 /bin/bash -c "while true;do sleep 3600;done"
44d549f38e2a38d528d26193c5585f8c68008411d764ad39d23dc57ee48ab28c
–network my-bridge:指定容器使用的网络为自建的my-bridge.
使用自建网络启动的容器,ip 为172.18.0.2
再启动一个容器test4,不使用–network指定网络,默认使用docker0网络:
[root@docker ~]# docker run -d --name test4 cgy/mycentos:v2 /bin/bash -c "while true;do sleep 3600;done"
c64c2993e94a3dc0359a0e38ed5f5d262c0b01be45bacdf1788c7b0c2223777b
容器test3和test4没做关联时,不管是使用容器名还是容器的IP,都是无法ping通的:
将test4也加入自建的my-bridge
[root@docker ~]# docker network connect my-bridge test4
用法:Usage: docker network connect [OPTIONS] NETWORK CONTAINER
查看test4就多了一个虚拟网卡,并和test3在同一网段
这时就可以直接使用容器名去通信了
再查看一下my-bridge的详细信息
[root@docker ~]# docker network inspect my-bridge
[
{
"Name": "my-bridge",
"Id": "01f3d92281d7dd6eaeabd77c95c62f0d33f8d45bd0e1bc7c7e1c3208526dfd2a",
"Created": "2018-05-01T01:08:04.864178764+08:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"44d549f38e2a38d528d26193c5585f8c68008411d764ad39d23dc57ee48ab28c": {
"Name": "test3",
"EndpointID": "95f13c730e08f7c82e5f3ec555f3c3afa79a50eceb7a1f540463ba181c81d05c",
"MacAddress": "02:42:ac:12:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": ""
},
"c64c2993e94a3dc0359a0e38ed5f5d262c0b01be45bacdf1788c7b0c2223777b": {
"Name": "test4",
"EndpointID": "9b41a9ef9b3e6dabdaad52167642a74aa7e05f93ceec65768b311945c8f2c036",
"MacAddress": "02:42:ac:12:00:03",
"IPv4Address": "172.18.0.3/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
可以看到,my-bridge已经连接了两个容器test3和test4。
参考资料:https://www.jianshu.com/p/a9dce5179e31
来源:https://blog.csdn.net/m1ssyAn/article/details/122133145


猜你喜欢
- 1.创建一个站点文件夹 首先你要创建一个独立于你的主站点的新的站点文件夹(若站点是建立在同一个服务器上面的话),这样你下面要做的改动才不会影
- docker-compose-monitor.ymlversion: '2'networks: monitor:
- 在这里以PHP5为例介绍一下Windows下Apache和PHP5的安装与配置方法。一 下载安装程序Apache可以从http://www.
- 注:只测试了了fcitx,没有测试ibus因为不是新手教程,所以安装sublime,fcitx,gcc等等的就不说了若看不懂请留言下面为实现
- 这是一个系列文章,无论你是新手还是高手,如果你对datafeed一无所知,可以借鉴一下。熟知datafeed之后,你能达到一个什么目的:你可
- 本文介绍了virtualbox中ubuntu和windows共享文件夹设置,具体如下:系统平台:win8.1、virtualbox4.3.8
- 现在一般的行业门户网站为了业务的发展和网络推广,一般都会开通几个地区和子行业的分站。下面是一些解决思路,需要的朋友可以参考下。对于分站来说一
- 前言Linux系统中有两种修复模式,一种是单用户模式,另一种是光盘修复模式。Linux系统的单用户模式有些类似Windows系统的安全模式,
- “Let’s face it. Some days, you want to just fire your clients.” 这是一个叫J
- Exchange 2007是家族里的新成员,并且提供了又新又酷的功能,比如统一信息,改进了的垃圾信过滤,以及智能行程安排等。但是,和其他升级
- 千橡互动集团CEO兼董事长陈一舟(陈一舟新闻,陈一舟说吧)在日前举行的中国国际数字娱乐领袖峰会上表示,目前中国原创网络游戏发展面临的三大挑战
- 这是一个让很多站长费解的问题,很多人认为投放了Google AdSense的站点就不允许进行推广了。不过觉得困惑我想也正常,因为Google
- 福建日报2月21日报道 近年来,福建省互联网行业发展迅猛,多项指标居全国前列。全省网民数达866万人,网民数居全国第6位,占全国网民数4.1
- UCenter Home 提供了方便的日志导入功能,您可以将自己在其他站点发表的日志导入到 UCenter Home 的日志中。该功能需要您
- 硬件系统的安全防护硬件的安全问题也可以分为两种,一种是物理安全,一种是设置安全。1、物理安全物理安全是指防止意外事件或人为破坏具体的物理设备
- mkdir命令用来创建目录。该命令创建由dirname命名的目录。如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定
- 1.软硬件准备软件:推荐使用VMwear,我用的是VMwear 12镜像:CentOS6 ,如果没有镜像可以在阿里云下载 https://m
- 不少博主给博客添加了Loading加载效果,即当点击博客文章标题链接时,标题的显示会变成如“Loading……”或“请稍候,正在加载中……”
- 一般来说,出现Service Temporarily Unavailable错误多半是因为网站访问量大,造成了流量超限或者并发数大引起的资源
- 1. 简要双网卡绑定技术在centos7中使用了teaming技术,而在rhel6/centos7中使用的是bonding技术,在cento