2

ホスト マシン上の次のセットアップで 2 つの Docker コンテナーがあります。

  • コンテナー 1 - UDP ポート 5043 はホスト ポート 5043 (0.0.0.0:5043:5043) にマップされます
  • コンテナ 2 - ポート 5043 で UDP としてコンテナ 1 にデータを送信する必要があります。

シナリオ 1

  1. コンテナ 1 を起動し、その IP アドレスを取得します。
  2. この IP アドレスを使用してコンテナ 2 を構成し、起動します。
  3. コンテナ 2 は、次の呼び出しによって UDP データをコンテナ 1 に送信できます。udp://Container_1_IP:5043

すべてが機能します!!

シナリオ 2

  1. 5043 UDP ポートをホストの 5043 ポートにマッピングして、コンテナー 1 を開始します ( 0.0.0.0:5043:5043)
  2. 「 」を使用してコンテナ 2 とコンテナ 1 をリンクし--linksます。
  3. これで、コンテナー 2 が URL を呼び出すudp://Container_1_IP:5043と、エラーがスローされます " Connection refused"。
  4. IP を使用して、コンテナ 2 内からコンテナ 1 に ping できることを確認しました。

シナリオ2を機能させるための助けをいただければ幸いです!!

4

1 に答える 1

1

Docker リンクで述べたように:

Docker は、ソース コンテナーによって公開される各ポートの一連の環境変数も定義します。
各変数には、次の形式の一意のプレフィックスがあります。

<name>_PORT_<port>_<protocol>

このプレフィックスのコンポーネントは次のとおりです。

  • --link パラメータで指定されたエイリアス (例: webdb)
  • <port>露出した数
  • a<protocol>は TCP または UDP のいずれかです

つまり、Container1 が適切なプロトコル (この場合は UDP) で適切なポートを公開していることを確認する必要があります

于 2015-04-10T07:13:17.213 に答える