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/

10-14 17:03