Windows 如何在不同的主机上运行Testcontainers

Windows 如何在不同的主机上运行Testcontainers,windows,macos,docker,testcontainers,Windows,Macos,Docker,Testcontainers,当很多测试容器启动时,我的16GBMBP变得非常慢。我想在运行Windows的结实桌面上运行它们。如果这在我的本地网络之外运行,效果会更好。首先,在两台机器上安装VPN eg Tailscale。您需要这样做,因为Testcontainers使用的是随机端口,所以您不能只重定向您使用的端口,而是需要能够完全访问接口上所有可能的端口 客户 然后在使用Testcontainers调用测试的客户端上,编辑一些文件 在~/.docker-java.properties或C:/Users/myuser/.

当很多测试容器启动时,我的16GBMBP变得非常慢。我想在运行Windows的结实桌面上运行它们。如果这在我的本地网络之外运行,效果会更好。

首先,在两台机器上安装VPN eg Tailscale。您需要这样做,因为Testcontainers使用的是随机端口,所以您不能只重定向您使用的端口,而是需要能够完全访问接口上所有可能的端口

客户

然后在使用Testcontainers调用测试的客户端上,编辑一些文件

在~/.docker-java.properties或C:/Users/myuser/.docker-java.properties中:

DOCKER_HOST=tcp://DOCKER_HOST_VPN_IP:2375
DOCKER_TLS_VERIFY=0
docker.client.strategy=org.testcontainers.dockerclient.EnvironmentAndSystemPropertyClientProviderStrategy
在~/.testcontainers.properties或C:/Users/myuser/.testcontainers.properties中:

DOCKER_HOST=tcp://DOCKER_HOST_VPN_IP:2375
DOCKER_TLS_VERIFY=0
docker.client.strategy=org.testcontainers.dockerclient.EnvironmentAndSystemPropertyClientProviderStrategy
服务器

在运行Docker容器的机器上:

在Docker桌面的“设置”>“常规”中启用“公开守护程序”

在Windows上:

在提升的命令提示符下运行,将数据包从Tailscale IP转发到本地Docker: netsh接口端口代理添加v4tov4 listenport=2375 connectaddress=127.0.0.1 connectport=2375 listenaddress=protocol=tcp

禁用专用网络的防火墙

在Linux上:

使用IPTABLES将端口2375上的传入流量路由到127.0.0.1:

iptables -t nat -A PREROUTING -p tcp --dport 2375 -j DNAT --to-destination 127.0.0.1:2375
iptables -t nat -A POSTROUTING -j MASQUERADE.
参考资料

[2]


[2]

首先,在两台机器上安装VPN eg尾秤。您需要这样做,因为Testcontainers使用的是随机端口,所以您不能只重定向您使用的端口,而是需要能够完全访问接口上所有可能的端口

客户

然后在使用Testcontainers调用测试的客户端上,编辑一些文件

在~/.docker-java.properties或C:/Users/myuser/.docker-java.properties中:

DOCKER_HOST=tcp://DOCKER_HOST_VPN_IP:2375
DOCKER_TLS_VERIFY=0
docker.client.strategy=org.testcontainers.dockerclient.EnvironmentAndSystemPropertyClientProviderStrategy
在~/.testcontainers.properties或C:/Users/myuser/.testcontainers.properties中:

DOCKER_HOST=tcp://DOCKER_HOST_VPN_IP:2375
DOCKER_TLS_VERIFY=0
docker.client.strategy=org.testcontainers.dockerclient.EnvironmentAndSystemPropertyClientProviderStrategy
服务器

在运行Docker容器的机器上:

在Docker桌面的“设置”>“常规”中启用“公开守护程序”

在Windows上:

在提升的命令提示符下运行,将数据包从Tailscale IP转发到本地Docker: netsh接口端口代理添加v4tov4 listenport=2375 connectaddress=127.0.0.1 connectport=2375 listenaddress=protocol=tcp

禁用专用网络的防火墙

在Linux上:

使用IPTABLES将端口2375上的传入流量路由到127.0.0.1:

iptables -t nat -A PREROUTING -p tcp --dport 2375 -j DNAT --to-destination 127.0.0.1:2375
iptables -t nat -A POSTROUTING -j MASQUERADE.
参考资料

[2]

[2]