Docker容器到主机路由

时间:2016-06-12 14:18:14

标签: networking docker docker-compose

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

问题:我必须手动创建iptable规则,以允许从动态docker bridge到主机的路由。否则容器a无法连接到容器b,因为默认情况下没有从docker网络到docker主机本身的路由。

我有以下设置:

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

为了在Jira和Confluence之间建立正常运作的Atlassian应用程序链接:

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

目前,每次初始化设置时,我都会从动态创建的具有id“br-wejfiweji”的docker bridge手动创建iptable规则到主机。

这很麻烦,在Docker 1.11.x中有“新方法”或“更好的方法”吗?

1 个答案:

答案 0 :(得分:1)

docker-compose版本2确实创建了一个允许所有容器相互查看的网络。见" Networking in Compose" (自docker 1.10起)

如果使用正确的主机名创建容器,即jira.example.comconfluence.example.com(请参阅docker-compose.yml hostname directive),nginx可以代理直接传递给jira.example.com和{{ 1}}。
这两个主机名将解析为docker-compose为这些3(nginx,jira和confluence)容器创建的网络中的正确IP地址。

我建议在评论中使用 alias 以便jira将汇合视为nginx(nginx是汇总的别名),以便jira在访问时始终使用nginx汇合。

confluence.example.com