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

问题描述 投票:0回答:1

比如说,我有一个应用程序,它运行在网络中,在多台计算机上运行,​​通过网络与其他自身实例进行通信。我想在一台机器上测试它并让每个实例相信它在一台独立的计算机上运行。我怎么能通过docker做到这一点?

docker dockerfile
1个回答
1
投票

正如上面的评论中提到的“h”,桥接网络驱动程序为您执行此操作。此驱动程序是默认驱动程序,因此如果您在主机上运行多个容器,它们应该能够通过IP相互访问。

如果您需要DNS解析,则需要定义网桥,因为默认网桥网络不会为您提供。

https://docs.docker.com/engine/userguide/networking/的详细信息

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

创建网络:

$ docker network create mynet

在该网络上启动一些命名容器:

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

从每个容器中你应该能够解决并击中其他容器:

一 - >二:

$ 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
© www.soinside.com 2019 - 2024. All rights reserved.