
以下は、ネットワークドライバをoverlay
使用するのではなく、UbuntuでSwarmクラスタ用のネットワークドライバを作成するために実行するコマンドです。bridge
$ docker network create -d overlay xyz
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
9c431bc9fec7 bridge bridge local
88a4c6a29fa4 docker_gwbridge bridge local
10a4bc649237 host host local
o79qllmq86xw ingress overlay swarm
417aca5efd6b none null local
nsteeoxfu9b1 xyz overlay swarm
$
$ docker service create --name service_name --network xyz -p 80:80 --repicas 12 <image>
オプションを使用するサービスコマンドの具体的な目的は何ですか--network xyz
?
編集する
これはネットワークネームスペースの仕組みと関係がありますか?ここで言及した...
そして
それでは、各ネットワーク名前空間は、同じホスト上の専用(別々の)TCP-IP-Ethernetレイヤスタックですか?
答え1
Dockerは、さまざまな種類のネットワークドライバを使用して、コンテナと外部ネットワーク間で通信します。デフォルトのネットワークドライバはbridge
ドライバです。このドライバを使用すると、ソフトウェアブリッジを介して同じブリッジに接続されているコンテナが互いに通信できます。異なるブリッジに接続されたコンテナは、互いに分離されています。ブリッジドライバの範囲も単一のホストに制限されているため、異なるホスト上のコンテナは互いに通信できません。
Docker Swarmを使用している場合、通常は複数のホスト設定があり、各ホストでdockerデーモンを実行します。このシナリオで通信を容易にするにはoverlay
ドライバーが必要です。各dockerデーモンは、これらのホスト固有のネットワークの上部(オーバーレイ)にあるbridge
ネットワーク(「docker_gwbridge」という名前)を使用します。overlay
その後、ドライバはoverlay
さまざまなDockerデーモン間の通信を可能にし、Swarm機能を容易にすることができます。
詳細については、次を参照してください。ネットワーキングの Docker ドキュメント。
質問の2つの特定のコマンドは、新しいoverlay
ネットワークを作成して使用します。これドッカーネットワークの作成新しいネットワークを作成するコマンドですoverlay
。これドッカーサービスの作成このコマンドは、新しいサービスを定義し、以前に作成されたネットワークに接続する必要があることを指定しますoverlay
。