docker link

docker link

启动容器test1

docker run --name test1 -d busybox /bin/sh -c "while true; do sleep 3600; done"

启动容器test2并link到test1

docker run --name test2 --link test1 -d busybox /bin/sh -c "while true; do sleep 3600; done"

docker 会查找test1这个容器,获得它的ip地址,然后将ip写入到test2容器中/etc/hosts中

查看/etc/hosts

docker exec test2 cat /etc/hosts

这里写图片描述

通过link,在test2容器中就可以ping test2, 但在test1中没有test2的ip地址,所以通过link只能在test2容器中添加test1的ip. 但是在test1中仍可以通过ip地址访问test2.

在test2中:
ping test1 – ok
ping 172.17.0.2 – ok
在test1中:
ping test2 – ping: bad address ‘test2’
ping 172.17.0.3 – ok

env

link参数还会在test2中添加如下的环境变量:
这里写图片描述

目标容器重启(test1)

除此之外当目标容器重启,docker会负责更新/etc/hosts文件,因此可以不用担心容器重启后IP地址发生了改变,解析无法生效的问题。

猜你喜欢

转载自blog.csdn.net/qq_27068845/article/details/80907598