docker容器之间的连接失败

时间:2017-06-08 20:19:18

标签: java sockets docker tcp docker-compose

我的应用程序包括一个独立的java服务器,一个客户端java web启动应用程序,一组所有在一个wildfly实例中运行的webapp,以及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

从我的电脑,我可以从客户端容器下载java web start客户端,我可以从webapp容器加载webapps(以chrome为单位),我可以连接到独立的java服务器。 java服务器能够连接到postgres。 webapps能够从客户端容器加载资源。

除了wildfly webapp无法与独立的Java服务器建立TCP套接字连接外,一切正常。

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

我在内部数据中心运行完全相同的设置,一切正常。

有人知道可能会发生什么吗?

0 个答案:

没有答案