这在Dockerfile中通常是不可能的。
根据软件的不同,您也许可以执行某种解决方法。例如,您可以尝试类似
RUN echo $(grep $(hostname) /etc/hosts | cut -f1) my.host.name >> /etc/hosts && install-software
通过在安装软件时在同一RUN命令中设置主机名,主机名将在容器的同一层内发生。Docker稍后将覆盖主机名,您必须在运行时重新设置主机名,但是您的软件可能还可以。
如果您必须执行很多操作,则可以尝试使用Packer构建容器。它可以构建Docker容器,但不使用多层。这使得重建速度较慢,下载构建的图像的速度更快,并且在将图像冻结到容器之前对图像执行多项操作更加方便。