同じネットワーク内に複数のドッキング・コンテナがあります。私は、container01のcurlを使ってtest01.dockerコンテナのAPIから結果を取得しようとしています。ドッキング・コンテナ:コンテナ間のカールが機能しない
私は、コンテナAに、このコマンドを実行します。
curl -s test-01.docker:8031/app?status -v
次のように出力されている:
* Hostname was NOT found in DNS cache
* Trying 172.19.0.24...
* connect to 172.19.0.24 port 8031 failed: Connection refused
* Failed to connect to test-01.docker port 8031: Connection refused
* Closing connection 0
私は、次のコマンドを使用してcontainerAからのping test01.dockerにしようとすると:
をping test-01.docker
成功です。
ドッカーpsを実行すると、次の情報が表示されます。私の中で
43823212be7e mytestimage "/docker-entrypoint.s" 53 seconds ago Up 47 seconds 22/tcp, 2812/tcp, 5060-5061/tcp, 6970-6971/tcp, 8002/tcp, 8030-8031/tcp, 8033/tcp, 8071/tcp, 8888/tcp, 9020-9023/tcp containerA
これは、ポート8031が公開されていることを示しています。私はカールがなぜこれで失敗しているのか理解できません。私はテスト01.dockerで以下のコマンドを実行すると、それは私に正しい出力を与える:
curl -s localhost:8031/app?status
その同じネットワーク内の他のコンテナから働いていない理由はわかりません。私が何かを逃しているかどうか教えてください。
アップデート:私のドッキングウィンドウ-コンファイルは次のようになります。
version: '2'
services:
test-01.docker:
image: ##############
expose:
- 22
- 2812
- 8031
hostname: test-01
domainname: docker
を試してみてください、あなたの内部ドッカーネットワーク。ポート8031は、ドッカーコンテナが互いに通信するために使用するインタフェースとは異なるインタフェースを介して、ホストマシンに公開されます。 – ffledgling
Dockerfiles/docker-compose.ymlを共有できますか? – johnharris85
@ffledglingドッカーコンテナで使用されているのと同じインタフェースを介して、ポート8031をホストマシンに公開するにはどうすればよいですか? –