2017-09-26 5 views
0

私はConfluenceとJIRAでサービスを作成しようとしています。ネットワーク内の別のドッカーコンテナからドッカーコンテナを参照するにはどうすればよいですか?

は、私のようなネットワークを作成しました:

docker network create --driver bridge atlassian_stack

をそして、このネットワーク上の1つの容器それぞれを発表し、1つのさらすポート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を知りたいです。未解決のDNSについて不満を表明しているため、上記のIPアドレス(お互いを知ることができます)が互いに見えるようには見えません。

アプリケーションがハードコードされたDNS/IPを必要とし、同じネットワーク内に存在する場合、それらを適切に相互に参照するにはどうすればよいですか?

+0

は、JIRAを使用してみてください8090その逆 – hecko84

+0

は、コンテナ名であることを試してみました - 少なくともJIRA/Confluenceセットアップでは、動作するようには思えません:/ – cbll

+0

あなたは正しかった!私はコンテナ名にアンダースコアを持っていたので、彼らはお互いを見ることができませんでした...意味があります。乾杯。 – cbll

答えて

1

複数のコンテナが共通のネットワークを共有する場合、各コンテナはコンテナのnameを使用して(同じネットワーク上の)他のコンテナを解決できます。

だからあなたの場合には、あなたはpingを想定しdocker exec -it JIRA ping CONFLUENCEともdocker exec -it CONFLUENCE ping JIRAを実行することができるはずはない場合、あなたはそれぞれにシェルを取り付け/ execし、必要なネットワークツール(pingtelnetをインストールすることができ、これらのコンテナ内で使用可能です、 [ベースイメージの特定のディストリビューションに依存docker exec -it JIRA sh、その後#でプロンプト、yum install telnet -yまたはapt instal -y。] ncなど)

あなたは)唯一のIPアドレス(およびないホスト名/名前を使用することができるなら、あなたがする必要があるだろうConfluenceが起動したときにそれを取り出して、nslookup jiraまたは何かを実行してください。ミラール。例は以下の通りです:合流configおよびCONFLUENCEで8080:

~ ᐅ 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で解決できません。Stupid stupid :) – cbll

関連する問題