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

あるいは、 docker run --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)・再起動・停止しても、ネットワークに接続したままです。中断したコンテナはネットワークに接続し続けており、 network inspect で確認できます。コンテナを停止(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

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

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

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