如何将参数传递到docker容器并使用传递的参数更新容器中的文件

时间:2016-12-06 23:49:44

标签: docker dockerfile

我是docker的新手,正在尝试将本地主机名($ Hostname)传递到docker容器中,并使用新的$Hostname更改容器中配置文件的条目。

我在dockerfile中添加了一个命令,如下所示:

RUN echo $Hostname >> /etc/***.config

从图像

运行docker

run -e $Hosname='cat /etc/hostname' ...

但是,容器中的$Hostname是容器的主机名而不是本地主机。谁能帮我这个?非常感谢!

2 个答案:

答案 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,但这会在容器中设置环境变量。