使用docker在单台计算机上模拟networking

比方说,我有一个应用程序运行在networking上,在多台计算机上,通过networking与其他本身的实例进行通信。 我想在一台机器上testing它,并让每个实例都相信它是在一个单独的计算机上运行的。 我怎样才能通过docker做到这一点?

正如上面评论中提到的“h”,桥接networking驱动程序为你做了这个。 这个驱动程序是默认的驱动程序,所以如果你在你的主机上运行多个容器,他们应该可以通过IP访问对方。

如果你想DNSparsing,你将需要定义一个桥梁networking,因为默认的不会为你提供。

详情请参阅https://docs.docker.com/engine/userguide/networking/

这是一个使用自定义桥接networking的简单演示:

创buildnetworking:

 $ docker network create mynet 

在该networking上启动一些指定容器:

 $ docker run --rm -d --name one --net mynet nginx:latest $ docker run --rm -d --name two --net mynet nginx:latest 

从每个容器你应该能够解决和击中其他(S):

一 – >二:

 $ docker exec -it one ping two PING two (172.18.0.3): 56 data bytes 64 bytes from 172.18.0.3: seq=0 ttl=64 time=0.098 ms ... 

两个 – >一个:

 $ docker exec -it two ping one PING one (172.18.0.2): 56 data bytes 64 bytes from 172.18.0.2: seq=0 ttl=64 time=0.192 ms ... 

清理:

 $ docker kill one two $ docker network rm mynet