ネットワーキング¶
Docker Swarm は Docker 1.9 で追加された新しいネットワーキング・モデルと完全に互換性があります。
セットアップ¶
マルチホスト・ネットワーキングを使うには、Docker エンジンを --cluster-store
と --cluster-advertise
のオプションをドキュメントが示すように付けて起動する必要があります。
ネットワークの一覧¶
次の例は、クラスタ上に2のノード node-1
と node-1
があるものとします。
$ docker network ls
NETWORK ID NAME DRIVER
3dd50db9706d node-0/host host
09138343e80e node-0/bridge bridge
8834dbd552e5 node-0/none null
45782acfe427 node-1/host host
8926accb25fd node-1/bridge bridge
6382abccd23d node-1/none null
このように、各ネットワーク名の接頭語がノード名になっています。
ネットワークの作成¶
デフォルトでは、Swarm はネットワーク全体を範囲とする overlay
ネットワーク・ドライバを使います。
$ docker network create swarm_network
42131321acab3233ba342443Ba4312
$ docker network ls
NETWORK ID NAME DRIVER
3dd50db9706d node-0/host host
09138343e80e node-0/bridge bridge
8834dbd552e5 node-0/none null
42131321acab node-0/swarm_network overlay
45782acfe427 node-1/host host
8926accb25fd node-1/bridge bridge
6382abccd23d node-1/none null
42131321acab node-1/swarm_network overlay
ここで表示されているように、2つのノード上に同じ ID があります。これは同じネットワークだからです。
ローカルな範囲でネットワークを作成したい場合は(例えば、ブリッジ・ドライバを使いたい時)、 <ノード名>/<名前>
の形式でなければ、ランダムに選んだノード上でネットワークを作成します。
$ docker network create node-0/bridge2 -b bridge
921817fefea521673217123abab223
$ docker network create node-1/bridge2 -b bridge
5262bbfe5616fef6627771289aacc2
$ docker network ls
NETWORK ID NAME DRIVER
3dd50db9706d node-0/host host
09138343e80e node-0/bridge bridge
8834dbd552e5 node-0/none null
42131321acab node-0/swarm_network overlay
921817fefea5 node-0/bridge2 brige
45782acfe427 node-1/host host
8926accb25fd node-1/bridge bridge
6382abccd23d node-1/none null
42131321acab node-1/swarm_network overlay
5262bbfe5616 node-1/bridge2 bridge
ネットワークの削除¶
ネットワークの削除は、ネットワーク ID か ネットワーク名を使えます。異なる2つのネットワークが同じ名前の場合は、 <ノード名>/<名前>
を使えます。
$ docker network rm swarm_network
42131321acab3233ba342443Ba4312
$ docker network rm node-0/bridge2
921817fefea521673217123abab223
$ docker network ls
NETWORK ID NAME DRIVER
3dd50db9706d node-0/host host
09138343e80e node-0/bridge bridge
8834dbd552e5 node-0/none null
45782acfe427 node-1/host host
8926accb25fd node-1/bridge bridge
6382abccd23d node-1/none null
5262bbfe5616 node-1/bridge2 bridge
swarm_network
は各ノードから削除されましたが、 bridge2
は node-0
からのみ削除されました。