如何将parameter passing给docker容器,并通过传递参数更新容器中的文件

我是新来的docker工人,试图通过本地主机名($主机名)到docker集装箱,并更改新的$Hostname在容器中的configuration文件条目。

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

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

并从图像运行docker

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

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

容器的主机名实际上是使用常规方法无法更改的less数几个东西之一。 这是因为docker引擎需要知道它是为了处理链接和networking而控制的。

要以docker引擎尊重的方式设置主机名,请执行以下操作:

 docker run --hostname myhostname imagename 

文档中的networking设置部分解释了这是如何工作的

一般来说; -e标志在调用时设置指定的环境variables。

试试这个:

 docker run -e PARENT_HOSTNAME=${HOSTNAME} ... 

(有关将容器主机名设置为与docker主机相同的详细信息,请参阅@ code_monk的答案)

我不认为你通常需要或想要容器中的docker主机主机名,但是这将设置容器中的环境variables。