Docker:/etc/hosts在源容器重新启动时不会自动更新
假设我有:Docker:/etc/hosts在源容器重新启动时不会自动更新,docker,Docker,假设我有: 一个pg_db容器 docker run -d --name pg_db postgres docker run -d --name web --link pg_db:db my-web-app 链接到pg_db容器的web容器 docker run -d --name pg_db postgres docker run -d --name web --link pg_db:db my-web-app 在web容器中,我可以通过/etc/hosts名称解析访问pg_d
- 一个
容器pg_db
docker run -d --name pg_db postgres
docker run -d --name web --link pg_db:db my-web-app
- 链接到
容器的pg_db
容器web
docker run -d --name pg_db postgres
docker run -d --name web --link pg_db:db my-web-app
web
容器中,我可以通过/etc/hosts
名称解析访问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!!!
您还必须重新启动web容器以获取更改。我不知道您为什么被否决,这是一个问得很好的问题。我认为获得db容器IP地址的[更]被接受的方法是通过ENV VAR。DB_主机_端口_地址和DB_主机_端口(iirc)。认识到第一部分(DB)是容器的名称。我想可能会有帮助。