bash - 创建新 pod 时如何更新 pod 中的 /etc/hosts 文件
问题描述
我使用 bash 脚本/etc/hosts
使用静态主机名和其他 pod 的默认 IP 更新 pod 的文件。当 pod 重新启动或手动强制删除时。创建的新 pod 不会有更新的/etc/hosts
文件?如何处理这个
解决方案
什么都不做;甚至不要尝试管理/etc/hosts
文件。Docker提供容器之间的内部 DNS 解析(Compose 中的 Networking有更清晰的描述),因此您通常可以--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 下运行它,它会为您完成所有这些设置(再次,请参阅Compose中的网络;Compose 默认网络已命名default
但不是“默认网桥”)。如果您在另一个集群环境(Kubernetes、Nomad)中运行,它将拥有自己类似的 DNS 解析系统。
推荐阅读
- jmeter - JMeter - HTML仪表板报告(随时间变化的响应时间)和随时间变化的响应时间侦听器之间的区别
- javascript - jsTree - 在特定级别关闭节点
- spring-boot - 如何解决 SpringBoot2 中阻塞调用的慢吞吐量?
- android - 丢失了签名密钥,但我有所有其他信息
- react-native - 在 React Native 上运行时更新 Apollo Client 对象
- python - 硒python等待不起作用
- excel - VBA 运行时错误“13”:类型不匹配
- git - 使用 git filter-branch 然后 git push --force 清除大文件后,远程 (Gitlab) 上的 Git 存储库大小仍然很大
- python - 读取 CSV 文件的每一列作为字典的键
- haskell - 制作 Monoid 的自定义列表 ADT 实例