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)をサポートしています。コンテナは同じマルチホスト・ネットワーク上で接続できるだけではありません。異なったエンジンによって起動されていたとしても、同様に通信できます。
コンテナは複数のネットワークにも接続できます。ネットワークは同じ種類でなくても構いません。例えば、コンテナ・ブリッジとオーバレイ・ネットワークの両方に接続できます。