2016-08-01 9 views
0

私は2つのコンテナc1とc2を実行しています。 C1は、ポート2181でリッスンして さドッカーコンテナが別のドッカーコンテナによって開かれたポートに接続できません

C2は、ポート2181に接続されて

問題は、C2は上のC1への接続に失敗しているポートを言って、私はなぜわかりません。

コンテナにC1に接続するコードを実行すると、正常に動作します。だから私はC1が動作していることを知って、ポートが正しく公開されています。アプリケーションを自分のコンテナにドロップすると、ポートはもう表示されなくなります。

私はC2の中からlsofを試しましたが、それはリストには載っていません。なぜそれが失敗するのかは理解できます。

私が次に見なければならないところの手掛かりは感謝します。私は、コンテナは、デフォルトでは、同じネットワークグループにする必要がありますので、ドッキングウィンドウ、作曲使用していた

:イニシエータは、URIのローカルホストを使用している、C1で

version: '2' 
services: 
    c1: 
    build: . 
    volumes: 
     - .:/code 
    depends_on: 
     - c2 
    c2: 
    image: jplock/zookeeper 
    ports: 
     - "2181:2181" 
     - "2888:2888" 
     - "3888:3888" 

は、ここに私のコンファイルです: 2181

+1

コードを表示しますか?すべてではありませんが、問題を正確に再現するのに十分です。具体的には、2番目のコンテナに接続するためにどのアドレスを使用していますか? – larsks

+0

ああ、ホスト名の代わりに作成ファイルに記載されているコンテナの名前を使うべきだと読んだだけです。私はまだlocalhostを参照しています。私はそれを試し、あなたに知らせるでしょう。 – JamesC

+0

ありがとうございますLarsksは私がそこに行くのを手伝った。 – JamesC

答えて

1

この記事を見れば、これは役に立ちます。ドッキングウィンドウ-コンを使用して

、コンテナがドッキングウィンドウのコンポーズファイルでサービス別名に一致するホスト名を設定します、ここではドキュメントを参照してください。

https://docs.docker.com/compose/networking/

このユースケース

に合わせて見積もりを修正

各コンテナはホスト名(つまりc2)を検索し、適切なコンテナのIPアドレスを取得できるようになりました。たとえば、c1アプリケーションコードはURL // c2:2181に接続できます。

関連する問題