如何使用以下方法创建 docker 网络testcontainers:
- 允许网络中的所有容器与每个容器进行通信
- 允许容器将端口映射到主机
- 但不允许容器访问互联网
我曾尝试使用internal网络来做到这一点:
private Network generateInternalNetwork() {
// Consumer which operates on the final CreateNetworkCmd which will be run to
// make sure the 'internal' flag is set.
Consumer<CreateNetworkCmd> cmdModifier = (createNetworkCmd) -> {
createNetworkCmd.withInternal(true);
};
return Network.builder()
.createNetworkCmdModifier(cmdModifier)
.build();
}
但是,当我运行它时,我无法映射我的端口。抛出异常:
Caused by: java.lang.IllegalArgumentException: Requested port (8024) is not mapped
如果我在没有它的情况下运行它withInternal(true)可以正常工作,但容器当然可以访问互联网。