2017-09-26 44 views
0

我试图用Confluence和JIRA创建一个服务。如何从网络中的另一个码头集装箱引用泊坞窗容器?

我创建了一个网络,例如:

docker network create --driver bridge atlassian_stack

并公布每一个容器这个网络上,一个揭露端口8080和8090的另一个:

docker run -it --detach --publish 8080:8080 --net=atlassian_stack --name JIRA cptactionhank/atlassian-jira-software:latest 

docker run -it --detach --publish 8090:8090 --net=atlassian_stack --name CONFLUENCE cptactionhank/atlassian-confluence:eap 

我可以同时访问在本地http://localhost:8080(JIRA)和http://localhost:8090(Confluence)。

但是,将应用程序链接在一起需要Atlassian产品中的硬编码IP。 Confluence想知道JIRA所在的位置,以及vica verca。它似乎没有在上述IP地址上看到对方(这很合理),因为它抱怨未解决的DNS。

问题是:当应用程序需要一个硬编码的DNS/IP,并且它们驻留在同一个网络中时,我如何正确地将它们引用到另一个?

+0

尝试使用JIRA:8080在合流配置和CONFLUENCE:尝试与容器名称8090反之亦然 – hecko84

+0

- 似乎并没有工作,至少在JIRA /汇合设置:/ – cbll

+0

你是对的!我在容器名称中有一个下划线,这就是为什么他们看不到对方......有道理。干杯。 – cbll

回答

1

当多个容器共享一个公共网络时,每个容器可以使用容器的name解析任何其他容器(在同一网络上)。

所以你的情况,你应该能够运行docker exec -it JIRA ping CONFLUENCEdocker exec -it CONFLUENCE ping JIRA假设ping是这些容器内可用,如果没有,你可以Exec的/附加一个壳到每个并安装所需的网络工具(pingtelnetnc等)docker exec -it JIRA sh,然后在#提示,yum install telnet -yapt instal -y取决于基础图像的特定发行]

如果您只能使用IP地址(而不是主机名/名),那么你就需要在Confluence启动时,通过运行nslookup jira或其他东西milar。下面是一个例子:

~ ᐅ docker network create -d bridge www 
9e1ab7c25a58fdbdaa1ec46bbcf9c9b37bb6ddc776abe6b2fb47dbb0c100d750 
~ ᐅ docker run -d --name w1 --network www busybox top 
Unable to find image 'busybox:latest' locally 
latest: Pulling from library/busybox 
03b1be98f3f9: Pull complete 
Digest: sha256:99ccecf3da28a93c063d5dddcdf69aeed44826d0db219aabc3d5178d47649dfa 
Status: Downloaded newer image for busybox:latest 
fb0c198b002559b6ccd7dd145a394592a7258b1a955012aae8c707a5bea70c86 
~ ᐅ docker run -d --name w2 --network www busybox top 
13ea6ceb82f7d80d34a8cc3b6ba79bdfcc1d3a5f1df1b5f59a20323db21a7190 
~ ᐅ docker exec -it w1 nslookup w2 
Server: 127.0.0.11 
Address 1: 127.0.0.11 

Name:  w2 
Address 1: 172.19.0.3 w2.www 

~ ᐅ docker exec -it w1 sh 

/# nslookup w2 | awk '/^Address.* w2.*/ { print $3 ; exit }' 
172.19.0.3 
/# exit 
+0

这个错误很简单:我在容器名称中有一个下划线,所以SOMETHING_JIRA - 当然这不能由DNS解决。愚蠢愚蠢的愚蠢:) – cbll