我正在使用一个非常简单的 Dockerfile 制作一个 docker 映像。在 Dockerfile 里面我有这个命令:
RUN printf "192.92.13.243 www.hahaha.com \n" >> /etc/hosts
该命令本身似乎没问题,因为此时映像的创建并未停止。
问题是:运行映像时,应该插入“/etc/hosts”中的行不存在。
现在,我四处搜索,发现在 docker 1.2 版本之前,容器内的 hosts 文件存在问题。就我而言,我使用的是 1.5 版,这是目前最新的版本。
我错过了什么吗?
更新 1:
在 docker 的 github 页面中,这似乎存在很多问题,无论是开放的还是封闭的。
这适用于 docker 1.7.0
诀窍是在使用它的同一行添加主机名,否则主机文件将被重置,因为每个 RUN 命令都会启动一个新的中间容器。例如,这将不起作用:
在写完我的问题的更新后,我决定再仔细看看在 github 中打开的“问题”。事实证明,已经实施了一种解决方法:
在启动容器时使用“--add-host...”参数可以修改主机文件。