Docker回应到/ etc / hosts不工作

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可以工作,而第二个回到/etc/hosts呢?

Dockerpipe理/ etc / hosts。 这样做是为了使容器链接工作。 在启动容器时,您可以要求docker附加到hosts文件

 docker run -it --add-host foo:192.168.99.100 

如果使用dockercomposer php:

  extra_hosts: - "foo:192.168.99.100" - "bar:192.168.99.101"