Docker容器无法parsinglocalhost

我有一个从头开始构build的docker镜像,而不是基于像centos或ubuntu这样的现有镜像。 机器上的进程似乎无法parsinglocalhost或机器主机名,即使两者的映射都存在于/etc/hosts 。 以下是容器上的/etc/hosts文件(由docker生成)的样子:

 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.3 39b50fcb603a 

比方说,我想用telnet(其他命令同样失败)连接到端口80。

 $ telnet 127.0.0.1 80 Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused 

这很好,因为我没有在端口80上运行任何东西。但是,让我们说我使用localhost

 $ telnet localhost 80 telnet: localhost: Name or service not known localhost: Unknown host 

这没有任何意义,因为从127.0.0.1localhost的映射是在/etc/hosts 。 同样,使用容器的主机名(由docker设置)也失败:

 $ telnet $(hostname) 80 telnet: 39b50fcb603a: Name or service not known 39b50fcb603a: Unknown host 

为什么/etc/hosts文件似乎不工作?