未使用のネットワークを特定するためにネットワークを一覧表示する
このステップでは、Docker ネットワークを一覧表示し、現在どのコンテナにも使用されていないネットワークを特定する方法を学びます。これは、Docker 環境をクリーンアップし、リソースを解放するのに役立ちます。
前のステップですでに docker network ls
コマンドを使用してすべてのネットワークを一覧表示しました。現在の状態を確認するために、もう一度実行してみましょう。
docker network ls
出力には、各ネットワークのネットワーク ID、名前、ドライバー、およびスコープが表示されます。作成した my-network-1
と my-network-2
のネットワークが一覧に表示されていることに注意してください。
未使用のネットワークを特定するには、--dry-run
フラグを使用して docker network prune
コマンドを実行します。このフラグを使用すると、実際にネットワークを削除することなく、どのネットワークが削除されるかを確認できます。
docker network prune --dry-run
このコマンドの出力には、実行中のコンテナに接続されていないネットワークが一覧表示され、これらのネットワークが削除されることになります。my-network-1
または my-network-2
にコンテナを接続していないため、ドライランの出力にこれらのネットワークが表示されるはずです。
my-network-1
に接続された単純なコンテナを実行して、docker network prune --dry-run
の出力にどのような影響があるかを確認しましょう。非常に小さい hello-world
イメージを使用します。まず、イメージを取得します。
docker pull hello-world
次に、このイメージを使用してコンテナを実行し、my-network-1
に接続します。-d
フラグを使用すると、コンテナがデタッチドモード(バックグラウンド)で実行されます。
docker run -d --network my-network-1 hello-world
出力としてコンテナ ID が表示されます。
次に、もう一度 docker network prune --dry-run
コマンドを実行しましょう。
docker network prune --dry-run
今回は、実行中の hello-world
コンテナによって my-network-1
が使用されているため、削除対象のネットワークの一覧には表示されないはずです。使用されていない my-network-2
は、依然として一覧に表示されます。
hello-world
コンテナを停止して削除するには、まず docker ps
を使用してその ID を見つけます。
docker ps
次に、docker stop <container_id>
を使用してコンテナを停止し、docker rm <container_id>
を使用して削除します。<container_id>
を docker ps
の出力に表示される実際の ID に置き換えてください。
docker stop <container_id>
docker rm <container_id>
ここで、もう一度 docker network prune --dry-run
を実行すると、my-network-1
と my-network-2
の両方が削除対象のネットワークとして一覧に表示されるはずです。これは、これらのネットワークがもはや使用されていないためです。