通过主机从主机访问容器

时间:2017-08-26 18:24:36

标签: docker networking containers overlay

我有一些码头集装箱,它将单个码头工人覆盖在一起。 在这个网络下,每个容器都通过主机名(容器)访问。但我无法通过host-mashine(我的真实主机)的主机名访问容器。

如何通过我的真实机器上的docker容器主机名访问容器?

2 个答案:

答案 0 :(得分:1)

您只需将127.0.0.1 <hostname_inside_docker>添加到hosts文件(在本地计算机上

)即可

答案 1 :(得分:1)

您可以通过启动自己的DNS解析程序容器来实现。

docker run -d --name devdns -p 53:53/udp \
  -v /var/run/docker.sock:/var/run/docker.sock ruudud/devdns

运行DNS服务器后。服务器映射到您的localhost。在Linux上,您可以修改/etc/resolv.conf并在顶部添加nameserver 127.0.0.1。重新启动后将恢复此更改。

现在,如果你启动一个泊坞容器

docker run -d --hostname tarunlalwani --name tlalwani ubuntu:16.04 sleep 2000

现在,您可以使用容器名称或主机名

来ping容器
$ ping tlalwani.dev
PING tlalwani.dev (172.17.0.6) 56(84) bytes of data.
64 bytes from 172.17.0.6: icmp_seq=1 ttl=64 time=0.030 ms

$ ping tarunlalwani.dev
PING tarunlalwani.dev (172.17.0.1) 56(84) bytes of data.
64 bytes from 172.17.0.1: icmp_seq=1 ttl=64 time=0.026 ms

dev是默认域名。您可以使用环境变量更改此设置。有关详细信息,请参阅https://github.com/ruudud/devdns