我有类似的命令来创建容器:
docker create --name=myname \
--publish "80:80" \
--hostname myhostname \
local/local
并希望使用主机名为Web服务器生成虚拟主机。
我尝试使用测试命令:
RUN touch ~/aaa-${HOSTNAME}
但得到了结果:aaa-719d8d68f3dc
但预计aaa-myhostname
。
因此,它使用中间容器环境变量而不是传递一个。
答案 0 :(得分:0)
--hostname选项设置容器主机名,但不设置为环境变量。
如果您希望将其作为环境变量访问,请使用-e hostname=my.host.name
代替--hostname。
答案 1 :(得分:0)
RUN
指令中的任何内容都发生在中间容器中,因此如果您创建依赖于主机信息的状态,则在图像层中保存的内容是有关中间容器的信息。
每个容器的变化都应该在CMD
或ENTRYPOINT
中完成,因此它将在容器运行时执行。您可以使用引导脚本作为入口点,从主机设置状态,然后运行应用程序进程。