我使用bash脚本用静态主机名和其他Pod的默认IP更新Pod的/etc/hosts
文件。当pod重新启动或手动强制删除时。创建的新Pod将没有更新的/etc/hosts
文件?如何处理
绝对不做任何事;甚至不要尝试管理/etc/hosts
文件。 Docker provides internal DNS resolution between containers(Networking in Compose的描述更清晰),因此通常您可以直接将其他容器的--name
用作主机名。
如果使用docker run
命令,则需要手动docker network create
网络(为第一个链接创建“用户定义的网桥”。
# Create a non-default network
docker network create some_network
# Run a server on that network
docker run -d --net some_network --name server nginx
# On the same network; uses the other container's name
# "server" as a host name
docker run --rm --net some_network \
busybox \
wget -O- http://server
[如果您在Docker Compose下运行此程序,它将为您完成所有此设置(再次参见Networking in Compose; Compose的默认网络名为default
,但不是“默认桥”)。如果您在另一个群集环境(Kubernetes,Nomad)中运行,它将拥有自己的类似DNS解析系统。