docker network connect

読む時間の目安: 2 分

説明

コンテナーをネットワークに接続します。

API 1.21 以上  このコマンドを利用するには、クライアントとデーモンの API はともに、最低でも 1.21 である必要があります。 クライアント上においてdocker versionコマンドを実行して、クライアントとデーモンの API バージョンを確認してください。

利用方法

$ docker network connect [オプション] NETWORK CONTAINER

追加説明

コンテナーをネットワークに接続します。 コンテナーの接続は、コンテナー名またはコンテナー ID を使って行います。 接続を行うと、同一ネットワーク内の他のコンテナーとの通信が可能になります。

本コマンドの利用例については、以下に示す 利用例の節 を参照してください。

オプション

名前/省略形 デフォルト 説明
--alias コンテナーに対してネットワーク限定のエイリアスを追加します。
--driver-opt ネットワークドライバーのオプション。
--ip IPv4 アドレスを指定します。(たとえば 172.30.100.104 など)
--ip6 IPv6 アドレスを指定します。(たとえば 2001:db8::33 など)
--link 別コンテナーへのリンクを追加します。
--link-local-ip コンテナーに対してリンクローカルアドレスを追加します。

利用例

実行中コンテナーのネットワークへの接続

$ docker network connect multi-host-network container1

コンテナー起動時のネットワークへの接続

docker run --network=<network-name> のようにオプションをつけてコンテナーを起動すれば、起動直後にネットワークに接続することができます。

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

ネットワーク内で利用する IP アドレスの指定

コンテナーのインターフェースに割り振りたい 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

コンテナーの停止、一時停止、再起動に伴うネットワークへの影響

ネットワークに接続しているコンテナーの一時停止、再起動、停止を行うことができます。 コンテナーの起動時には、設定されているネットワークへの接続を行います。

コンテナーに IP アドレスが指定されている場合、停止コンテナーが再起動する際には、IP アドレスが再割り当てされます。 その IP アドレスが利用できない場合、コンテナーは起動に失敗します。 IP アドレスの取得を確実にするために、ネットワーク生成時に --ip-range を指定する方法があります。 そしてコンテナーの IP アドレスには、そこで指定した 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 ネットワークやカスタムプラグインを使ったマルチホスト接続に対応している場合、コンテナーがマルチホスト対応ネットワークに接続し、かつ異なる Engine から起動されたものであっても、そのようなやりとりを通じてコンテナー間の通信が可能です。

1 つのコンテナーは複数のネットワークに接続することができます。 その場合のネットワークは同一タイプである必要はありません。 たとえば 1 つのコンテナーを、bridge と overlay のネットワークに接続することができます。

上位コマンド

コマンド 説明
docker network ネットワークを管理します。
コマンド 説明
docker network connect コンテナーをネットワークに接続します。
docker network create ネットワークを生成します。
docker network disconnect ネットワークからコンテナーを切断します。
docker network inspect 1 つまたは複数ネットワークの詳細情報を表示します。
docker network ls ネットワークを一覧表示します。
docker network prune 未使用のネットワークをすべて削除します。
docker network rm 1 つまたは複数のネットワークを削除します。