Docker回显到/ etc / hosts无法正常工作

时间:2016-05-06 00:13:06

标签: docker dockerfile

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没有?

2 个答案:

答案 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"