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容器才能获取更改。