我使用一个非常简单的Dockerfile来制作一个docker镜像。 在Dockerfile里面我有这个命令:
RUN printf "192.92.13.243 www.hahaha.com \n" >> /etc/hosts
命令本身似乎没有问题,因为在这一点上图像的创build不会停止。
问题是这样的:运行映像时,应该插入“/ etc / hosts”的行不在那里。
现在,我search了一下,发现Docker 1.2版之前,容器里面的hosts文件有问题。 就我而言,我正在使用1.5版本,这是目前最新的版本。
我错过了什么吗?
更新1:
在Docker的github页面中,似乎有很多问题,无论是开放还是closures。
这适用于docker 1.7.0
RUN echo "192.168.11.112 myhost" >> /etc/hosts && wget http://myhost
诀窍是在使用它的同一行上添加主机名,否则hosts文件将被重置,因为每个RUN命令都会启动一个新的中间容器。 例如, 这不起作用 :
RUN echo "192.168.11.112 myhost" >> /etc/hosts RUN wget http://myhost
在写了更新到我的问题后,我决定再看一下在github中打开的“问题”。 原来,一个解决方法已经实施:
docker run ... --add-host='server:0.0.0.0' ...
启动容器时使用“–add-host …”参数可以修改主机文件。