network connect

使い方: docker network connect [オプション] ネットワーク コンテナ
コンテナをネットワークに接続 --alias=[] コンテナ用のネットワーク範囲エイリアスを追加 --help 使い方の表示 --ip IPv4 アドレス --ip6 IPv6 アドレス --link=[] 他のコンテナに対するリンクを追加 --link-local-ip=[] IPv4/IPv6 リンク・ローカル・アドレス

コンテナをネットワークに接続(connect)します。コンテナの接続はコンテナ名かコンテナ ID を使います。接続後は、同一ネットワーク上にある他のコンテナと通信可能になります。

$ docker network connect multi-host-network container1

あるいは、 dockerrun--net=<ネットワーク名> オプションを使えば、コンテナ起動時に直ちにネットワークに接続します。

$ docker run -itd --net=multi-host-network busybox

コンテナのインターフェースに任意の IP アドレスを割り当て可能です。

$ docker network connect --ip 10.10.36.122 multi-host-network container2

--link オプションを使うことで、他のコンテナを任意のエイリアス名でリンクできます。

$ docker network connect --link container1:c1 multi-host-network container2

--alias オプションを使うことで、ネットワークを接続したコンテナ間での名前解決に使う別名を指定できます。

$ docker network connect --alias db --alias mysql multi-host-network container2

コンテナを中断(pause)・再起動・停止しても、ネットワークに接続したままです。中断したコンテナはネットワークに接続し続けており、 networkinspect で確認できます。コンテナを停止(stop)すると、再起動するまではネットワーク上に表示されません。

停止しているコンテナを再起動する時に IP アドレスを指定できます。もしも IP アドレスが使えなければ、コンテナは起動に失敗します。IP アドレスを確実に割り当てるためには、ネットワーク作成時に --ip-range (IPアドレスの範囲)を指定しておき、その範囲内外にある静的な IP アドレスを割り当てる方法があります。そうしておけば、コンテナが対象のネットワークに所属していない間でも、他のコンテナに IP アドレスを使われる心配はありません。

$ docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 multi-host-network
$ docker network connect --ip 172.20.128.2 multi-host-network container2

コンテナがどこに接続しているかを確認するには、 dockernetworkinspect コマンドを使います。 dockernetworkdisconnect はコンテナをネットワークから切り離します。

ネットワークに接続したら、コンテナは他のコンテナの IP アドレスや名前を使って通信できるようになります。 overlay ネットワークやカスタム・プラグインは複数のホスト間の接続性(multi-host connectivity)をサポートしています。コンテナは同じマルチホスト・ネットワーク上で接続できるだけではありません。異なったエンジンによって起動されていたとしても、同様に通信できます。

コンテナは複数のネットワークにも接続できます。ネットワークは同じ種類でなくても構いません。例えば、コンテナ・ブリッジとオーバレイ・ネットワークの両方に接続できます。