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
为什么第一个 echo 到/tmp/foo
有效但第二个到/etc/hosts
没有?
答案 0 :(得分:4)
Docker管理/ etc / hosts。它这样做是为了使容器链接起作用。使用
启动容器时,可以要求docker附加到hosts文件docker run -it --add-host foo:192.168.99.100
答案 1 :(得分:1)
如果使用docker composer:
extra_hosts:
- "foo:192.168.99.100"
- "bar:192.168.99.101"