docker - 如何将容器的主机名添加到/etc/hosts?

标签 docker hosts

为了支持一些老的软件方案,我需要绑定(bind)我的容器的hostname127.0.0.1 ,给我留下这样的东西:

$ hostname
4e84a7ae5f92
$ cat /etc/hosts | grep 127.0.0.1
127.0.0.1       localhost 4e84a7ae5f92

最好的情况是在 Dockerfile 中执行,但由于 docker build构建一个图像(而不是一个容器),这似乎并不现实。
另外,如果我尝试使用 sed在正在运行的容器中,我最终遇到了一个错误:
$ sed -i '/^127\.0\.0\.1.*/ s/$/ '$(hostname)'/' /etc/hosts
sed: cannot rename /etc/sedC5PkA2: Device or resource busy

我能做些什么 ?

最佳答案

docker run命令有一个名为 --hostname="" 的选项照顾你的/etc/hostname文件。
/etc/hosts 中的主机到 IP 映射可以使用选项 --add-host=[] 管理文件然后。

关于docker - 如何将容器的主机名添加到/etc/hosts?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28327458/

相关文章:

docker - Docker在子域上添加php项目

amazon-web-services - AWS 上的 kubernetes 在 pod 中获取区域名称

java - 使用 Java 的 Docker : path RUN javac

macos - 无法在 Mac 上更新主机文件

virtual - Meteor 如何处理多个虚拟主机?

linux - 如果/etc/hosts 中未指定 IP,则通过 ssh 连接服务器的时间过长

batch-file - 批处理文件编辑Hosts文件-没有效果?

MySQL 5.5 UNIX_TIMESTAMP 函数在产品和本地计算机上返回不同的值

docker - 如何将Docker容器上的错误冒泡到主机中的 Jenkins

dns - 多个虚拟主机 - 此站点无法访问 Vagrant/Virtualbox