26

同じホスト内の異なるネットワークにコンテナを作成して通信する可能性はありますか? 現時点では docker-compose を使用していないことに注意してください。

以下は、私が行ったことの要約です。次のコマンドを使用して 2 つのネットワークを作成しました

docker network create --driver bridge mynetwork1   
docker network create --driver bridge mynetwork2

次に、コマンドを使用して、これらの作成されたネットワークのそれぞれで 2 つのコンテナーを実行しました。

docker run --net=mynetwork1 -it name=mynet1container1 mycontainerimage
docker run --net=mynetwork1 -it name=mynet1container2 mycontainerimage
docker run --net=mynetwork2 -it name=mynet2container1 mycontainerimage
docker run --net=mynetwork2 -it name=mynet2container2 mycontainerimage

次に、作成したネットワークから各コンテナーの IP アドレスを特定しました。

docker network inspect mynetwork1
docker network inspect mynetwork2

それらを使用して、同じネットワーク内のコンテナー間で通信できましたが、ネットワークを介したコンテナー間で通信できませんでした。コンテナを同じネットワークに追加するだけで通信が可能になりました。

どうもありがとう...

4

3 に答える 3

6

問題

同じネットワーク上にないため、2 つのコンテナーが通信できません。

解決策 a)

1 つのコンテナーを他のネットワーク オーバーレイに接続します (これは、制約を満たさない場合があります)。

解決策 b)

3 番目のネットワークを作成し、両方のコンテナーをこのネットワークに接続します。

方法

このコマンドdocker runは、オプションの 1 つのオカレンスのみを受け入れます--net。実行する必要があるのはdocker start、コンテナーに対して、次にdocker network connectそれらを共有ネットワークに対して行うことです。


あなたが探している答えはここにあります: https://stackoverflow.com/a/34038381/5321002

于 2016-03-17T07:43:38.347 に答える
1

Docker Docs によるとContainers can only communicate within networks but not across networks、コンテナを 2 つのネットワークに接続して、その方法で通信できます。

編集:その時点で、そもそもなぜ2つのネットワークがあるのですか。

リンクは次のとおりです。

https://docs.docker.com/engine/userguide/networking/dockernetworks/

-ブルース

于 2016-03-16T15:06:47.717 に答える