引言
在使用docker的过程中,每创建一个容器都会为其分配一个ip地址,如果直接使用ip地址通讯的话,虽然能够通讯,但也太麻烦了,最重要的是这个ip地址还会变化,下次重启容器说不准程序就跑不通了,与是乎就出现了以下两种通信的方式,其本质上也是通过访问容器名称这个域名经过docker的dns服务器自动解析成ip地址。
使用–link
这种方式适用于,已经有一个容器正在运行,在第二个容器启动时加上参数--link 容器名称
,就可以访问第一个正在运行的容器了。
例如:
当前有一个容器名称为centos_1的容器正在运行
1 | lxy@DESKTOP-74EDKD3:~$ docker ps |
现要创建另一个容器去连接第一个容器
1 | docker run -id --name centos_2 --link centos_1 centos:centos7 |
--link centos_1
:表示当前要创建的容器要连接centos_1这个容器
测试:
1 | lxy@DESKTOP-74EDKD3:~$ docker exec -it centos_2 bash # 进入centos_2容器 |
使用自定义网络
docker默认的bridge
网络是不能把容器名称作为ip进行通讯的,只有自定义网络才行。在自定义网络中的容器之间可以相互通讯。
- 创建自定义网络
1 | docker network create -d bridge my-net |
- 启动容器时明确指定使用哪个网络
1 | docker run -id --name centos_2 --network my-net centos:centos7 |
- 启动容器后加入到某个网络
1 | docker network connect my-net centos_1 # 把容器centos_1加入自定义网络my-net |
__END__

文章作者:三国小梦
文章出处:docker的容器间通信
作者签名:简单地活着, 肆意又精彩.
关于主题:Hexo - Live For Code
版权声明:文章除特别声明外,均采用 BY-NC-SA 许可协议,转载请注明出处
文章出处:docker的容器间通信
作者签名:简单地活着, 肆意又精彩.
关于主题:Hexo - Live For Code
版权声明:文章除特别声明外,均采用 BY-NC-SA 许可协议,转载请注明出处