如果TestContainers不存在,那么TestContainer可以为我创builddockernetworking吗?

看起来我需要一个networking,因为我想通过另一个主机名来引用一个容器。

我也可以使用 – --link但不推荐使用,可能会很快消失。 这就是为什么我想知道Testcontainers是否可以为我创build一个dockernetworking。

使用命令行我只需要执行docker network create bridge2然后我可以像这样启动容器:

 docker run -it --rm --net=bridge2 --name alpine1 alpine docker run -it --rm --net=bridge2 --name alpine2 alpine 

并从alpine1容器parsingnslookup alpine2

如果我尝试使用默认的--net=bridge或跳过--net选项(实际上是相同的)引用名称将无法正常工作。

是的,您可以使用TestContainers创buildnetworking。 我们将很快logging下来,但是它很简单:

首先创build一个networking:

 @Rule public Network network = Network.newNetwork(); 

然后,configuration您的容器join它:

 @Rule public NginxContainer nginx = new NginxContainer<>() .withNetwork(network) // <--- Here .withNetworkAliases("nginx") // <--- "hostname" of this container .withCustomContent(contentFolder.toString()); @Rule public BrowserWebDriverContainer chrome = new BrowserWebDriverContainer<>() .withNetwork(network) // <--- And here .withDesiredCapabilities(DesiredCapabilities.chrome()); 

现在,Nginx容器将以Chrome浏览器的forms显示为“ http:// nginx / ”。

在我们的testing中也是这样:
https://github.com/testcontainers/testcontainers-java/blob/540f5672df90aa5233dde1dde7e8a9bc021c6e88/modules/selenium/src/test/java/org/testcontainers/junit/LinkedContainerTest.java#L27