我是docker的新手,正在尝试将本地主机名($ Hostname)传递到docker容器中,并使用新的$Hostname
更改容器中配置文件的条目。
我在dockerfile中添加了一个命令,如下所示:
RUN echo $Hostname >> /etc/***.config
从图像
运行docker run -e $Hosname='cat /etc/hostname' ...
但是,容器中的$Hostname
是容器的主机名而不是本地主机。谁能帮我这个?非常感谢!
答案 0 :(得分:1)
容器的主机名实际上是使用常规方法无法更改的少数几项内容之一。这是因为docker引擎需要知道它正在控制它以便处理链接和网络。
要以docker引擎尊重的方式设置主机名,请执行以下操作:
docker run --hostname myhostname imagename
文档中的Network Settings部分解释了其工作原理
答案 1 :(得分:0)
一般来说; -e
标志在调用时设置指定的环境变量。
请改为尝试:
docker run -e PARENT_HOSTNAME=${HOSTNAME} ...
(有关将容器主机名设置为与docker主机相同的详细信息,请参阅@ code_monk的答案)
我认为您通常不需要或想要容器中的docker host hostname,但这会在容器中设置环境变量。