3
  1. A と B の 2 つのコンテナーを作成する docker-compose.yml があります。
  2. B はポート 8000 で実行されている Web サーバーであり、docker-compose ファイルでポート 8000 を公開しています
  3. A は、私の docker-compose-file に B へのリンクを持っています。

しかし、B で GET リクエストを行うと、エラーが発生しました。

GET http://localhost:8000 dial tcp 127.0.0.1:8000 refused

どうすれば修正できますか?

docker-compose ps は、 8000/tcpであるポートを教えてくれます

4

1 に答える 1

4

docker-compose.yml ファイルを見せてもらえますか? 2 つのコンテナー間のリンクに使用される名前は、実際には接続先のエイリアスを作成localhost127.0.0.1ます

localhostしたがって、GET リクエストで経由して接続するべきではありません。代わりに、サービス B へのリンクで使用されている名前を使用し、その後にポートを付けます。適切な GET 要求 URL を含む構成ファイルの例を次に示します。

docker-compose.yml:

service_a:
    image: service_a_image
    ports:
        - 7000 # maps port to host
    links:
        - service_b
service_b:
    image: serivce_b_image
    expose:
        - 8000 # exposes port to other containers

サービス A から B への URL を取得します。

http://service_b:8000

お役に立てれば!

于 2015-07-20T01:17:52.150 に答える