托pipe路由的Docker容器

我需要一个更好的最新解决scheme以下问题:

问题:我必须手动创build一个iptable规则,以允许从dynamicdocker桥到主机的路由。 否则,容器a不能连接到容器b,因为默认情况下没有从dockernetworking到docker主机本身的路由。

我有以下设置:

container-nginx (docker) | |-container-jira (docker) (https://jira.example.com) |-container-confluence (docker) (https://confluence.example.com) 

为了使Jira和Confluence之间的Atlassian应用程序链接正常运行:

  • Jira通过https://confluence.example.com访问Confluence
  • Confluence通过https://jira.example.com访问Jira

我使用docker-compose进行整个设置,所有的容器都在同一个networking中。 默认情况下,这将无法正常工作,我将在两个容器中为主机confluence.example.com和jira.example.com获取“无路由到主机”。 因为dockernetworking内的每个容器都没有到docker主机本身的路由。

目前,每次安装程序初始化时,我都会手动创build一个从dynamic创build的,名为“br-wejfiweji”的docker桥到主机的iptable规则。

这很麻烦,在Docker 1.11.x中有没有“一种新的方式”或“更好的方式”来做到这一点?

docker-compose版本2确实创build了一个允许所有容器互相看到的networking。 请参阅“ 撰写networking ”(自Docker 1.10开始)

如果您的容器是使用正确的主机名创build的,那就是jira.example.comconfluence.example.com (请参阅docker-compose.yml hostname指令 ),nginx可以直接将代理传递给jira.example.comconfluence.example.com
这两个主机名将parsing为由docker-compose为这3个(nginx,jira和confluence)容器创build的networking内的正确IP地址。

我build议在注释中使用一个别名 ,以便让jira将汇合视为nginx(nginx是别名融合),以便让jira在访问汇合时始终使用nginx。

 version: '2' services: # HTTPS-ReverseProxy nginx: image: blacklabelops/nginx container_name: nginx networks: default: aliases: - 'crucible.example.com' - 'confluence.example.com' - 'crowd.example.com' - 'bitbucket.example.com' - 'jira.example.com' ports: - '443:443'