关于docker链接和容器的/ etc / hosts文件

我正在关注Docker官方文档“ 连接容器 ”。 在本文档的底部,在容器的/ etc / hosts文件中,它定义了链接两端的IP地址。

$ sudo docker run -t -i --rm --link db:db training/webapp /bin/bash root@aed84ee21bde:/opt/webapp# cat /etc/hosts 172.17.0.7 aed84ee21bde . . . 172.17.0.5 db 

然后,它说:

如果重新启动源容器,链接的容器/ etc / hosts文件将自动更新源容器的新IP地址,从而允许连接的通信继续。

 $ sudo docker restart db db $ sudo docker run -t -i --rm --link db:db training/webapp /bin/bash root@aed84ee21bde:/opt/webapp# cat /etc/hosts 172.17.0.7 aed84ee21bde . . . 172.17.0.9 db 

我正在游荡,在容器'db'重新启动之前创build的链接怎么样,旧的接收者的/ etc / hosts文件仍然保留'db'旧ip,但是在'db'容器的ip在重新启动后被改变之后,/ etc / hosts文件失去了它的效果。

docker中有一个已知的bug影响了它的一些版本#6350 。 当你使用链接别名时,一些版本的docker也有这个问题。 所以,如果你升级你的docker到最新版本(目前1.8.1)的问题可以解决。