我需要一个更好的最新解决方案以下问题:
问题:我必须手动创建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中有“新方法”或“更好的方法”吗?
答案 0 :(得分:1)
docker-compose版本2确实创建了一个允许所有容器相互查看的网络。见" Networking in Compose" (自docker 1.10起)
如果使用正确的主机名创建容器,即jira.example.com
和confluence.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