docker network rmコマンドの使い方(実例付)CE対応


 docker network rmコマンドの使い方の紹介ページです。Docker CE ver17.12.1に対応しております。

 このコマンドは、Dockerネットワークを削除する際に使用します。

 コンテナが接続されているネットワークは削除できません。ネットワークの削除を行う場合は、接続されているコンテナを停止、または削除してから行う必要があります。

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

それでは、以下で詳細に解説いたします。

 

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

フォーマット

docker network rm [削除ネットワーク名 or ID] ...

 

主なオプション一覧

なし

■ 本記事の目次に戻る ■

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

指定したDockerネットワークを削除する

 現状のネットワークの一覧を出力してみます。

$ docker network ls
NETWORK ID    NAME    DRIVER  SCOPE
3abe6d83703c  bridge  bridge  local
8a9d400abb35  host    host    local
9b510d65ac45  none    null    local

 この状態で、Dockerネットワークtestnet1とtestnet2を作成します。

$ docker network create -d bridge testnet1
$ docker network create -d bridge testnet2

 確認してみます。

$ docker network ls
NETWORK ID    NAME     DRIVER   SCOPE
3abe6d83703c  bridge   bridge   local
8a9d400abb35  host     host     local
9b510d65ac45  none     null     local
75347c72c897  testnet1 bridge   local
ee208368e1a2  testnet2 bridge   local

 では、以下のコマンドでtestnet1を削除してみましょう。

$ docker network rm testnet1

 確認です。

$ docker network ls
NETWORK ID    NAME      DRIVER  SCOPE
3abe6d83703c  bridge    bridge  local
8a9d400abb35  host      host    local
9b510d65ac45  none      null    local
ee208368e1a2  testnet2  bridge  local

 testnet1は削除されました。

 

コンテナが接続されているネットワークは削除できないことを確認する

 前項のネットワークtestnet2にコンテナを接続してみます。

$ docker run -d --name vmtest1 --net testnet2 centos init

 これで、コンテナvmtest1は、testnet2に接続された状態で起動されました。

 この状態でネットワークtestnet2を削除してみましょう。

$ docker network rm testnet2

 以下のようなエラーが発生してしまいました。

Error response from daemon: network testnet2 has active endpoints

 ネットワークtestnet2に何かが接続されている旨のエラーですね。

 docker network inspectコマンドでtestnet2の状態を確認してみます。

$ docker network inspect testnet2

 「Containers」の部分のみ見てみましょう。

(省略)
 "Containers": {
 "4ce1dd213fa9e14fc8e38946609404772a146f80df81230dd8eece60056dec6d": {
 "Name": "vmtest1",
 "EndpointID": "6fcbdc34a4dbc453358de40b9ceca027ce80fb3233937a355ab7fbd654818243",
 "MacAddress": "02:42:ac:13:00:02",
 "IPv4Address": "172.19.0.2/16",
 "IPv6Address": ""
 }
 },
(省略)

 Containersの部分には、接続されているコンテナが出力されます。

 出力内容を見てみますと、コンテナvmtest1が接続されていることが確認できました。

 ではこのコンテナvmtest1を停止してみます。

$ docker stop vmtest1

 再度docker network inspectコマンドでtestnet2の状態を確認してみます。

$ docker network inspect testnet2

 「Containers」の部分のみ表示します。

"Containers": {},

 先ほど表示されていたvmtest1が消えていますね。

 では、ネットワークtestnet2を削除します。

$ docker network rm testnet2

 今度はエラーは出ませんでした。

 ネットワークの一覧を出力してみましょう。

$ docker network ls
NETWORK ID    NAME    DRIVER  SCOPE
3abe6d83703c  bridge  bridge  local
8a9d400abb35  host    host    local
9b510d65ac45  none    null    local

 ネットワークtestnet2は削除されていることが確認できました。

 

ネットワークIDを指定して削除する

 ネットワークの削除は、ネットワークIDを指定しても実行可能です。

 以下のようにネットワークtestnet10を作成しています。

$ docker network ls
NETWORK ID    NAME      DRIVER  SCOPE
3abe6d83703c  bridge    bridge  local
8a9d400abb35  host      host    local
9b510d65ac45  none      null    local
126b7bb42100  testnet10 bridge  local

 この状態で、ネットワークIDを指定してtestnet10を削除してみます。

 指定するネットワークIDは、testnet10の左に表示されている「126b7bb42100」ですね。

$ docker network rm 126b7bb42100

 確認します。

$ docker network ls
NETWORK ID    NAME    DRIVER  SCOPE
3abe6d83703c  bridge  bridge  local
8a9d400abb35  host    host    local
9b510d65ac45  none    null    local

 削除できました。

 

複数のネットワークを一度に削除する

 ネットワークの削除は複数並べて指定することで一度に行うことが可能です。

 以下のようにネットワークtestnet100、testnet200、testnet300を作成しています。

$ docker network ls
NETWORK ID    NAME       DRIVER  SCOPE
3abe6d83703c  bridge     bridge  local
8a9d400abb35  host       host    local
9b510d65ac45  none       null    local
4f1cccaf6aaf  testnet100 bridge  local
20d8afeaada2  testnet200 bridge  local
5e9d7fdf0b6a  testnet300 bridge  local

 この状態で、testnet100とtestnet200とtestnet300を並べて指定して一度に削除します。

 試しに、testnet200だけはネットワークID「20d8afeaada2」を指定してみます。

$ docker network rm testnet100 20d8afeaada2 testnet300

 確認します。

$ docker network ls
NETWORK ID    NAME    DRIVER  SCOPE
3abe6d83703c  bridge  bridge  local
8a9d400abb35  host    host    local
9b510d65ac45  none    null    local

 削除できました。

 

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

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

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

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


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください