docker network disconnectコマンドの使い方(実例付)

Docker公式ロゴ3b
©2023 Docker Inc. All rights reserved

 本記事はDocker ver24.0.7の環境で確認しています。

 このコマンドは、コンテナをDockerネットワーク接続から切断する際に使用します。

 dockerネットワークに関しましては、別記事「Dockerネットワークの概要とその作り方の解説」をご参照ください。

docker network disconnectコマンドのフォーマットとオプション

フォーマット

docker network disconnect [オプション] ネットワーク コンテナ

主なオプション一覧

オプション概説
--force, -f対象コンテナを強制的にネットワークから切断する

コマンド例

$ docker network disconnect testnet1 testvm

docker network disconnectコマンドの主な使い方

 以下で実例をまじえたコマンドの使い方を解説していきたいと思います。

実例では、Ubuntuの公式イメージにより起動したコンテナ(testvm)を使用します。

コンテナは「docker run -dit --init --name testvm ubuntu」で起動します。

※「--rm」オプションを付けておりませんので、ご利用後はコンテナ削除をお忘れなく。

基本事項の解説

 docker network disconnectコマンドは、指定したDockerネットワークからコンテナを切り離す場合に使用します。

 通常、コンテナをDockerネットワークからコマンドで切り離すことはほとんどないため、このコマンドが登場する機会は稀だと思います。

指定したネットワークからコンテナを切り離す

 まず、テスト用のネットワークtestnet1を作成します。

$ docker network create -d bridge testnet1

 次に接続テストを行うコンテナtestvmを作成しましょう。

$ docker run -dit --init --name testvm ubuntu

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

$ docker network connect testnet1 testvm

 接続されたことを確認するために、docker network inspectコマンドでtestnet1の詳細情報をみてみましょう。

$ docker network inspect testnet1

 「Containers」の部分のみ確認します。

(省略)
 "Containers": {
     "0b05e7d201c28055dc3bfaa40bf12b2a0fa7ad147c579645d99cf35360a45770": {
         "Name": "testvm",
         "EndpointID": "2642bbcb1737cae4ea3d6dc686d6556b7f976fe1715071f743fbfea5063006de",
         "MacAddress": "02:42:ac:12:00:02",
         "IPv4Address": "172.21.0.2/16",
         "IPv6Address": ""
     }
 }
(省略)

 コンテナtestvmが表示されましたので、接続されていることが確認できました。

 コンテナtestvmに対して、IPアドレス「172.21.0.2」が付与されていることもわかります。

 docker inspectコマンドで、コンテナtestvmの詳細情報も確認してみましょう。

$ docker inspect testvm

 「Networks」の部分のみ確認します。

(省略)
 "Networks": {
(省略)
     "bridge": {
    (省略)
         "IPAddress": "172.17.0.2",
        (省略)
 },
     "testnet1": {
    (省略)
         "IPAddress": "172.21.0.2",
        (省略)
 }
(省略)

 docker network inspectコマンドで確認した際と同様に、ネットワークtestnet1内でIPアドレス「172.21.0.2」が付与されていることが確認できました。

 ちなみに、コンテナtestvmをdocker runコマンドで起動した際に、ネットワークを指定しなかったのでネットワークbridgeにも接続しています。

 では、docker network disconnectコマンドでコンテナtestvmをネットワークtestnet1から切り離してみます。

$ docker network disconnect testnet1 testvm

 切断されたことを確認するために、docker network inspectコマンドでtestnet1の詳細情報をみてみましょう。

$ docker network inspect testnet1

 「Containers」の部分のみ確認します。

"Containers": {},

 先ほどはコンテナtestvmが表示されたのですが、今回は表示されてません。

 docker inspectコマンドで、コンテナtestvmの詳細情報も確認してみましょう。

$ docker inspect testvm

 「Networks」の部分のみ確認します。

(省略)
 "Networks": {
(省略)
     "bridge": {
    (省略)
         "IPAddress": "172.17.0.2",
(省略)

 ネットワークbridgeのみで、testnet1は表示されなくなりました。

 以上より、コンテナtestvmはネットワークtestnet1から切断されたことが確認できました。

おわりに

 以上でdocker network disconnectコマンドの紹介を終わります。

 ご指摘、ご要望などが御座いましたらコメントいただけるとうれしいです。

 他のDockerコマンドの実例付紹介記事は、本サイト内の別記事「Dockerのコマンドの一覧(オリジナルな実例付き)」をご参照ください。

 ご訪問ありがとうございました。

コメント