Dockerfile:
FROM ubuntu:latest
RUN touch /tmp/foo
RUN echo 'bar' > /tmp/foo
RUN echo '192.168.99.100 foo' >> /etc/hosts
ENTRYPOINT /bin/bash
容器内部:
root@47040a03cbc1:/# cat /tmp/foo
bar
root@47040a03cbc1:/# cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.4 47040a03cbc1
为什么
/tmp/foo
的第一个 echo 有效,而 /etc/hosts
的第二个无效? 最佳答案
Docker 管理/etc/hosts。它这样做是为了使容器链接工作。您可以在启动容器时要求 docker 附加到主机文件
docker run -it --add-host foo:192.168.99.100
关于Docker echo 到/etc/hosts 不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37062255/