Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java docker容器之间的连接失败_Java_Sockets_Docker_Tcp_Docker Compose - Fatal编程技术网

Java docker容器之间的连接失败

Java docker容器之间的连接失败,java,sockets,docker,tcp,docker-compose,Java,Sockets,Docker,Tcp,Docker Compose,我的应用程序由一个独立的java服务器、一个客户端java web start应用程序、一组在一个wildfly实例中运行的web应用程序和postgres组成 客户机容器只是一个为JNLP和相应的java客户机提供服务的nginx服务器 我的所有容器都在同一台主机上运行 下面是我的dockerfile的一个稍微精简的版本: version: '3' services: server: privileged: true image: <server_image>

我的应用程序由一个独立的java服务器、一个客户端java web start应用程序、一组在一个wildfly实例中运行的web应用程序和postgres组成

客户机容器只是一个为JNLP和相应的java客户机提供服务的nginx服务器

我的所有容器都在同一台主机上运行

下面是我的dockerfile的一个稍微精简的版本:

version: '3'
services:
  server:
    privileged: true
    image: <server_image>
    networks:
    - myapp

  client:
    image: <client_image>
    networks:
    - myapp

  webapp:
    privileged: true
    image: <wildfly_image>
    networks:
    - myapp

  postgres:
    image: <postgres_image>
    volumes:
    - /pgdata:/pgdata
    networks:
    - myapp

  lb:
    image: dockercloud/haproxy:latest
    environment:
    - FORCE_DEFAULT_BACKEND=False
    - ADDITIONAL_BACKEND_WEBAPPS=server webapp1 webapp:8080
    - ADDITIONAL_BACKEND_CLIENT=server client1 client:80
    - ADDITIONAL_BACKEND_SERVER=mode tcp,server server1 server:8080
    - EXTRA_FRONTEND_SETTINGS_443=acl url_xmlrpc path_beg /xmlrpc, \
        acl url_api path_beg /api, \
        acl url_sys_api path_beg /sys-api, \
        acl url_dashboard path_beg /dashboard-app, \
        acl url_client path_beg /, \
        use_backend WEBAPPS if url_xmlrpc, \
        use_backend WEBAPPS if url_api, \
        use_backend WEBAPPS if url_sys_api, \
        use_backend WEBAPPS if url_dashboard, \
        use_backend CLIENT if url_client
    - EXTRA_FRONTEND_SETTINGS_8443=mode tcp,use_backend SERVER
    ports:
    - 443:443
    - 8443:8443
    networks:
    - myapp

networks:
  myapp:
    external: false
版本:“3”
服务:
服务器:
特权:真的
图片:
网络:
-myapp
客户:
图片:
网络:
-myapp
网络应用程序:
特权:真的
图片:
网络:
-myapp
博士后:
图片:
卷数:
-/pgdata:/pgdata
网络:
-myapp
磅:
图片:DockerLoud/haproxy:最新
环境:
-强制\u默认\u后端=False
-附加_BACKEND_WEBAPPS=服务器webapp1 webapp:8080
-附加\u后端\u客户端=服务器客户端1客户端:80
-附加\u后端\u服务器=模式tcp,服务器1服务器:8080
-额外\u前端\u设置\u 443=acl url\u xmlrpc路径\u beg/xmlrpc\
acl url\u api路径\u beg/api\
acl url\u sys\u api path\u beg/sys api\
acl url\仪表板路径\仪表板应用程序\
acl url\u客户端路径\u beg/\
如果url\u xmlrpc\
如果url\u api\
如果url\u sys\u api\
如果url\u仪表板,请使用\u后端WEBAPPS\
如果url\U客户端,则使用\U后端客户端
-额外\u前端\u设置\u 8443=模式tcp,使用\u后端服务器
端口:
- 443:443
- 8443:8443
网络:
-myapp
网络:
myapp:
外部:错误
从我的pc上,我可以从客户端容器下载java web start客户端,我可以从webapp容器加载webapp(chrome),我可以连接到独立的java服务器。java服务器能够连接到postgres。webapps能够从客户端容器加载资源

除了wildfly webapp无法建立到独立java服务器的TCP套接字连接外,其他一切都正常

这是在AWS中运行的,防火墙是完全开放的。CentOS已经完全更新,我正在运行Docker版本17.05.0-ce,构建89658be和Docker compose版本1.14.0-rc1,构建c18a7ad

我在我们的内部数据中心运行完全相同的设置,一切都完美无瑕


有人知道会发生什么吗?

wildfly显示的错误是什么?还有,您是如何指向独立java服务器的?将网络外部标记为false是多余的,因为我认为这是默认设置。@Robert-不幸的是,开发人员决定隐藏实际的异常,因此很难准确地找出。不过,我倾向于认为这是一个暂停。我已经尝试使用docker compose主机名和端口(服务器:8080)、端口8080上服务器的内部docker IP、端口8443上虚拟机的URL、端口8443上虚拟机的IP地址、负载平衡器的docker主机名(lb:8443)连接到独立java服务器。@johnharris85-是的,我并没有这样开始,但当我进行故障排除时,我发现这是一个潜在的解决方案。最后,我喜欢这种特殊性。我意识到我遗漏了一个潜在的非常重要的细节——我们在内部数据中心运行完全相同的设置,一切都完美无瑕。我已经更新了这个问题以包含这些信息。