dly*_*988 10 hosts-file docker
我正在使用一个非常简单的 Dockerfile 制作一个 docker 镜像。在 Dockerfile 里面,我有这个命令:
RUN printf "192.92.13.243 www.hahaha.com \n" >> /etc/hosts
Run Code Online (Sandbox Code Playgroud)
命令本身似乎没问题,因为此时图像的创建不会停止。
问题是:运行映像时,应该插入“/etc/hosts”中的行不存在。
现在,我四处搜索,发现在 docker 1.2 版本之前,容器内的主机文件存在问题。就我而言,我使用的是目前最新的 1.5 版。
我错过了什么吗?
更新1:
在 docker 的 github 页面中,似乎有很多问题,无论是开放的还是封闭的。
jon*_*tan 12
这适用于 docker 1.7.0
RUN echo "192.168.11.112 myhost" >> /etc/hosts && wget http://myhost
Run Code Online (Sandbox Code Playgroud)
诀窍是在使用它的同一行添加主机名,否则主机文件将被重置,因为每个 RUN 命令都会启动一个新的中间容器。例如,这将不起作用:
RUN echo "192.168.11.112 myhost" >> /etc/hosts
RUN wget http://myhost
Run Code Online (Sandbox Code Playgroud)
在写下我的问题的更新后,我决定更仔细地查看在 github 中打开的“问题”。事实证明,已经实施了一种解决方法:
docker run ... --add-host='server:0.0.0.0' ...
Run Code Online (Sandbox Code Playgroud)
在启动容器时使用“--add-host...”参数可以修改主机文件。
| 归档时间: |
|
| 查看次数: |
19464 次 |
| 最近记录: |