经过两天试图自己弄清楚,我决定向公众提出我的问题。
我们使用Docker来设置我们的测试环境。我们正在测试Java-Client-Server-Application。在过去,该应用程序只是在“单站点”配置(1个服务器和x客户端)中运行。现在我们将应用程序升级到“多站点” - 配置(x服务器和y客户端)。
出于这个原因,我们从Docker-run更改为Docker-compose,以轻松构建“复杂”网络。
使用Docker-run我们没有遇到任何问题。
使用Docker-compose,我们可以像我们希望的那样建立一个网络(例如4个服务器,每个服务器有2个客户端)。我们还可以通过SSH和VNC访问每个容器,我们可以在自己的网络中的每个容器之间ping。
问题: 我们的Java客户端无法连接到那些服务器。即使他们在同一个网络中。
现在真是令人沮丧的部分:
也许5个中的1个客户端能够连接到他的服务器。直到现在我称之为一个完全随机的行为。它并不总是第五个容器工作或相同的网络配置。此外,1-Server-1-Client-Network始终不起作用。最后一次可能是在第5次尝试之后。
首先我认为我也必须公开RMI-Ports,但这不起作用。后来我打开所有端口,只是为了确定,但这也没有用。关于Docker-Docs,它也没有必要这样做。此外,它也无法解释它有时会起作用的行为。我的问题还在于我没有设置原始的Docker-Run-Configuration,也许我错过了一些重要的部分。
也许有人可以指出我正确的方向。
此致 启
自动创建的yaml-File的代码:
version: '2.1'
services:
foo_server_1:
image: foo_server:latest
mem_limit: 1g
memswap_limit: 2g
container_name: foo_server_1
ports:
- "22"
- "4567"
networks:
- foo_server_network
- client_net_1
foo_client_1_1:
image: foo_client:latest
mem_limit: 1g
memswap_limit: 2g
links:
- foo_server_1:server
container_name: foo_client_1_1
ports:
- "22"
- "5900"
- "4567"
networks:
- client_net_1
foo_client_1_2:
image: foo_client:latest
mem_limit: 1g
memswap_limit: 2g
links:
- foo_server_1:server
container_name: foo_client_1_2
ports:
- "22"
- "5900"
- "4567"
networks:
- client_net_1
foo_server_2:
image: foo_server:latest
mem_limit: 1g
memswap_limit: 2g
container_name: foo_server_2
ports:
- "22"
- "4567"
networks:
- foo_server_network
- client_net_2
foo_client_2_1:
image: foo_client:latest
mem_limit: 1g
memswap_limit: 2g
links:
- foo_server_2:server
container_name: foo_client_2_1
ports:
- "22"
- "5900"
- "4567"
networks:
- client_net_2
foo_client_2_2:
image: foo_client:latest
mem_limit: 1g
memswap_limit: 2g
links:
- foo_server_2:server
container_name: foo_client_2_2
ports:
- "22"
- "5900"
- "4567"
networks:
- client_net_2
networks:
foo_server_network:
client_net_1:
client_net_2:
Powershell-docker ps-a的输出:
D:\dockerTemp> docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS
PORTS NAMES
e29f75524e11 foo_client:latest "/scripts/start.sh" 6 minutes ago Up 6 minutes
5901/tcp, 6901/tcp, 12345/tcp, 0.0.0.0:33498->22/tcp, 0.0.0.0:33497->4567/tcp, 0.0.0.0:33496->5900/tcp foo_client_1_1
fb1b4169fff4 foo_client:latest "/scripts/start.sh" 6 minutes ago Up 6 minutes
5901/tcp, 6901/tcp, 12345/tcp, 0.0.0.0:33501->22/tcp, 0.0.0.0:33500->4567/tcp, 0.0.0.0:33499->5900/tcp foo_client_1_2
cb6af51a0ffb foo_client:latest "/scripts/start.sh" 6 minutes ago Up 6 minutes
5901/tcp, 6901/tcp, 12345/tcp, 0.0.0.0:33495->22/tcp, 0.0.0.0:33494->4567/tcp, 0.0.0.0:33493->5900/tcp foo_client_2_1
6f436f5b3d7c foo_client:latest "/scripts/start.sh" 6 minutes ago Up 6 minutes
5901/tcp, 6901/tcp, 12345/tcp, 0.0.0.0:33492->22/tcp, 0.0.0.0:33491->4567/tcp, 0.0.0.0:33490->5900/tcp foo_client_2_2
3844553d31a4 foo_server:latest "/scripts/foo_server" 6 minutes ago Up 6 minutes
0/tcp, 5901/tcp, 6901/tcp, 12345/tcp, 0.0.0.0:33489->22/tcp, 0.0.0.0:33487->4567/tcp foo_server_2
92bcd4273e34 foo_server:latest "/scripts/foo_server" 6 minutes ago Up 6 minutes
0/tcp, 5901/tcp, 6901/tcp, 12345/tcp, 0.0.0.0:33488->22/tcp, 0.0.0.0:33486->4567/tcp foo_server_1