2017-03-04 62 views
0

我创建从泊坞窗图像centos:7泊坞窗的容器,并开始它通过如下命令无法ping通码头工人容器:可以从主机

docker run -h centos -it CONTAINER_ID 

你可以看到,我给它的主机名centos,所以它如果我从主机上ping泊坞窗容器应该工作。

ping centos 

那么,它没有工作。我得到了以下错误。

ping: centos: Name or service not known 

但是,如果我将主机名更改为泊坞站容器的IP地址,它工作。

> ping 172.17.0.2                             
PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data. 
64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.041 ms 
64 bytes from 172.17.0.2: icmp_seq=2 ttl=64 time=0.042 ms 
64 bytes from 172.17.0.2: icmp_seq=3 ttl=64 time=0.037 ms 

由于IP地址是不作为主机名可靠的,我想知道我可以通过主机名ping通我的搬运工容器。

+0

Stack Overflow是编程和开发问题的网站。这个问题似乎与题目无关,因为它不涉及编程或开发。请参阅帮助中心的[我可以询问哪些主题](http://stackoverflow.com/help/on-topic)。也许[超级用户](http://superuser.com/)或[Unix&Linux堆栈交换](http://unix.stackexchange.com/)会是一个更好的地方。另请参阅[我在哪里发布有关Dev Ops的问题?](http://meta.stackexchange.com/q/134306) – jww

回答

2

如果要通过主机名访问容器,则需要在主机上添加/etc/hosts中的相应IP。由于Docker不会修改主机上的任何内容,因此您必须手动执行此操作。

echo "$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' centos) centos" >> /etc/hosts 

相反,我会建议(使用-p <local-port>:<container-port>)映射到主机上所需的集装箱港口。

相关问题