泊坞窗容器主机路由
我需要一个更好的跟上时代的解决下列问题:泊坞窗容器主机路由
问题:我有手动创建为了一个iptable的规则,允许从一个动态泊坞窗桥到主机的路由。否则,容器a无法连接到容器b,因为默认情况下没有从泊坞网络到泊坞窗主机本身的路线。
我有以下设置:
container-nginx (docker)
|
|-container-jira (docker) (https://jira.example.com)
|-container-confluence (docker) (https://confluence.example.com)
为了有正常吉拉和汇合之间Atlassian的应用程序链接:
- 吉拉访问汇合。https://confluence.example.com
- 合流访问吉拉在https://jira.example.com
我使用docker-compose作为整个设置,并且所有容器都在同一个网络中。默认情况下,这将不起作用,我将在两个容器中为主机confluence.example.com和jira.example.com获取“无路由到主机”。因为码头网络内的每个容器都没有到码头主机本身的路由。
目前,每次安装程序初始化时,我都会手动创建一个iptable规则,从动态创建的具有标识“br-wejfiweji”的Docker桥到主机。
这很麻烦,在Docker 1.11.x中有没有“一种新的方式”或“更好的方式”来做到这一点?
docker-compose version 2确实创建了一个允许所有容器互相看到的网络。请参阅“Networking in Compose”(因为搬运工人1.10)
如果你的容器用正确的主机名创建的,那就是jira.example.com
和confluence.example.com
(见docker-compose.yml
hostname directive),nginx的直接代理传递给jira.example.com
和confluence.example.com
。
这两个主机名将解析为由docker-compose为这3个(nginx,jira和confluence)容器创建的网络内的正确IP地址。
我的意见建议,以使用alias的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'
我已经在使用docker-compose 2.在我的情况下,路由必须是jira - > nginx(https) - > confluence。如何将多个主机名(例如jira.example.com,confluence.example.com)附加到我的一个nginx容器? – blacklabelops
@maybeg version2意味着所有的容器互相看到:jira看到nginx和汇合。试着和'docker exec bash',看看你是否可以ping另外两个容器。 –
VonC
我需要通过nginx进行路由,因为每个实例都通过其https协议来对另一个实例进行地址转换。应用程序链接被atlassian产品用于在ui内部生成链接。 http链接将在实例之间工作,是的,他们将ping和看到对方,但在ui内生成的http链接不会在浏览器内工作。 – blacklabelops