作者:郝光明 2022-10-27 07:09:58
云计算
云原生 我们知道默认情况下docker重新run后,对应的IP地址就会改变,这样如果两个容器之间通信就会变得非常麻烦,每次都要修改通信的IP地址。这个时候 --link参数就派上大用场了,它会给要链接的容器设定一个通信的别名,即使重启后IP地址发生了改变,依然可以正常通信。
同一个宿主主机上的多个docker容器之间如果需要进行通信,第一种最容易想到的方式就是使用容器自身的ip地址、宿主主机的ip+容器暴露出的端口号来通信,我们知道默认情况下docker重新run后,对应的IP地址就会改变,这样如果两个容器之间通信就会变得非常麻烦,每次都要修改通信的IP地址。这个时候 --link参数就派上大用场了,它会给要链接的容器设定一个通信的别名,即使重启后IP地址发生了改变,依然可以正常通信。
命令格式
docker run -d --name myname--link toname:alisname -p 本地端口:容器端口 镜像名称
参数说明:
--link的原理就是在/etc/hosts里面添加了一个alias的名称
首先启动一个tomcat01的容器
docker run -itd --name tomcat01 -p 8100:8080 tomcat:8.5.38
docker ps 获取容器的id d92f947ea54f
获取单个容器 ip
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' d92f947ea54f
启动一个nginx容器设置与tomcat01连通
docker run -itd --name nginx01 --link tomcat01 nginx
进入容器内部查看 etc/hosts配置文件
docker exec -it nginx01 /bin/bash #进入容器内部
apt update && apt install -y iproute2 # 安装ping命令
cat /etc/hosts #查看配置文件
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.4 tomcat01 d92f947ea54f
172.17.0.6 70aa4c7dde72
测试nginx01 ping tomcat01
docker exec -it nginx01 ping tomcat01
PING tomcat01 (172.18.0.2): 56 data bytes
64 bytes from 172.18.0.2: icmp_seq=0 ttl=64 time=0.102 ms
64 bytes from 172.18.0.2: icmp_seq=1 ttl=64 time=0.093 ms
64 bytes from 172.18.0.2: icmp_seq=2 ttl=64 time=0.110 ms
64 bytes from 172.18.0.2: icmp_seq=3 ttl=64 time=0.073 ms
本文名称:Docker笔记:Docker容器通信参数-Link参数介绍
文章出自:http://www.shufengxianlan.com/qtweb/news9/358359.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联