Docker
1.10通过引入高级容器网络很好地解决了这一问题。(详细信息:https
:
//docs.docker.com/engine/userguide/networking/dockernetworks/)
首先,创建一个网络。下面的示例创建一个基本的“桥接”网络,该网络仅在一台主机上工作。您可以查看Docker的更完整的文档,以使用覆盖网络在主机之间执行此 *** 作。
docker network create my-fancy-network
现在,1.10中的Docker网络在容器内部创建了一种特殊的DNS解析,可以以特殊的方式解析名称。首先,您可以继续使用–
link,但是正如您所指出的那样,您的示例无效。我建议在docker运行命令中使用–net-alias =:
docker run -i -t --name container1 --net=my-fancy-network --net-alias=container1 ubuntu:trusty /bin/bashdocker run -i -t --name container2 --net=my-fancy-network --net-alias=container2 ubuntu:trusty /bin/bash
请注意,使用–name container2设置容器名称,这还会创建一个DNS条目,而–net-alias =
container2只是在网络上创建一个DNS条目,因此在此特定示例中,您可以省略–net-
alias,但是如果您想重命名容器,但仍具有与容器名称不匹配的DNS别名,则将其保留在此处。
(此处的详细信息:https : //docs.docker.com/engine/userguide/networking/configure-
dns/)
在这里,您去:
root@4dff6c762785:/# ping container1PING container1 (172.19.0.2) 56(84) bytes of data.64 bytes from container1.my-fancy-network (172.19.0.2): icmp_seq=1 ttl=64 time=0.101 ms64 bytes from container1.my-fancy-network (172.19.0.2): icmp_seq=2 ttl=64 time=0.074 ms64 bytes from container1.my-fancy-network (172.19.0.2): icmp_seq=3 ttl=64 time=0.072 ms
并从container1
root@4f16381fca06:/# ping container2PING container2 (172.19.0.3) 56(84) bytes of data.64 bytes from container2.my-fancy-network (172.19.0.3): icmp_seq=1 ttl=64 time=0.060 ms64 bytes from container2.my-fancy-network (172.19.0.3): icmp_seq=2 ttl=64 time=0.069 ms64 bytes from container2.my-fancy-network (172.19.0.3): icmp_seq=3 ttl=64 time=0.062 ms
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)