Docker:/ etc / hosts在源容器重启时不会自动更新

假设我有:

  • 一个pg_db容器

     docker run -d --name pg_db postgres 
  • 一个web容器,链接到pg_db容器

     docker run -d --name web --link pg_db:db my-web-app 

web容器中,我可以通过/etc/hosts名称parsing访问pg_db

 # cat /etc/hosts ... 172.17.0.17 db 

但是,如果我重新启动pg_db容器,它有一个新的IP地址, 文档说, 链接的容器应该有自动更新/etc/hosts文件,但它不是我的情况。

 $ docker restart pg_db $ docker inspect --format '{{.NetworkSettings.IPAddress}}' pg_db 172.17.0.21 

而在仍在运行的web容器中:

 # cat /etc/hosts ... 172.17.0.17 db <-- No change!!! 
  • 这是一个错误
  • 还是新的Docker行为 ,因此文档在这一点上已经过时了?

 $ docker info Containers: 5 Images: 67 Storage Driver: aufs Root Dir: /var/lib/docker/aufs Dirs: 77 Execution Driver: native-0.2 Kernel Version: 3.13.0-24-generic Operating System: Ubuntu 14.04 LTS $ docker version Client version: 1.3.0 Client API version: 1.15 Go version (client): go1.3.3 Git commit (client): c78088f OS/Arch (client): linux/amd64 Server version: 1.3.0 Server API version: 1.15 Go version (server): go1.3.3 Git commit (server): c78088f 

您还必须重新启动Web容器才能获取更改。