2025年版 Dockerイメージ・コンテナ・ボリューム・ネットワークを一括削除する方法

2025年版 Dockerイメージ・コンテナ・ボリューム・ネットワークを一括削除する方法

DockerイメージはDocker環境の基盤であり、コンテナを作成するためのテンプレートとして機能します。しかし、これらのイメージは時間とともに蓄積し、貴重なディスク容量を消費してシステムを散らかしてしまうことがあります。

Dockerイメージやその他の不要なコンポーネントを削除することは、単に容量を空けるだけではありません。クリーンで効率的、かつ整理されたDocker環境を維持するための大切な習慣でもあります。

本記事では、すべてのDockerイメージと関連コンポーネントを削除するさまざまな方法を解説します。ディスク容量を確保したい場合や、Docker環境を整理したい場合など、目的に応じて必要な知識と実践的な手順を紹介します。

使われていないDockerイメージとその他のリソースを一括削除する方法

Dockerイメージやリソースを削除する前に、PuTTYなどのSSHクライアントを使って仮想専用サーバー(VPS)にログインします。

Docker Image Pruneコマンドの使用

未使用のDockerイメージとは、稼働中または停止中のコンテナに関連付けられていないイメージを指します。基本的な削除コマンドは次のとおりです:

docker image prune

実行すると削除の確認が求められ、承認すると未使用のDockerイメージおよびダングリングイメージが削除されます。

Docker System Pruneコマンドの使用

Docker System Pruneコマンドは、未使用のイメージ、コンテナ、ネットワーク、ビルドキャッシュを削除します。未使用のリソースを削除するには、以下のLinuxコマンドを実行します:

docker system prune

より徹底的なクリーンアップを行い、ボリュームも含めて削除するには、次を使います:

docker system prune -a --volumes

このコマンドは、Dockerイメージ、停止中のコンテナ、未使用のネットワーク、ビルドキャッシュを削除します。この操作は取り消せないため、実行前に本当に削除してよいか確認しましょう。

Dockerイメージを削除する方法

Dockerイメージを削除する前に、まずイメージIDを確認します。システム内のすべてのDockerイメージとそのIDを一覧表示するには、次を実行します:

docker images

ローカル環境でより新しいバージョンのDockerを使用している場合は、代わりにdocker image lsコマンドを使います。

単一のDockerイメージを削除する方法

単一のDockerイメージを削除するのは簡単ですが、削除対象が正しいかを必ず確認してください。

Docker RMIコマンドの使用

単一のDockerイメージを削除する基本コマンドはdocker rmiです(RMIはremove imageの略)。

例えば、IDがa2a15febcdf3のイメージを削除する場合は次を実行します。

docker rmi a2a15febcdf3

指定したイメージが既存コンテナで使用中の場合、このコマンドはエラーを返し、誤って削除するのを防ぎます。

docker rmiコマンドは、イメージIDがなくてもリポジトリ名とタグで指定できます。例:

docker rmi ubuntu:latest

このコマンドは、latestタグが付いたubuntuイメージを削除します。

Docker Image RMコマンドの使用

docker image rmコマンドも同様に動作し、docker rmiと置き換えて使用できます。例:

docker image rm a2a15febcdf3

複数のDockerイメージを削除する方法

特定の状況では、複数のDockerイメージを同時に削除する必要がある場合があります。Dockerでは、この作業を簡単に行えます。

複数のDockerイメージを削除する方法

複数のDockerイメージを削除するには、docker rmiコマンドの後に削除したいイメージIDを並べて指定します。

例:IDがa2a15febcdf3と4bb46517cac3のイメージを削除する場合は、次を実行します:

docker rmi a2a15febcdf3 4bb46517cac3

すべてのDockerイメージを削除する方法

システム上のすべてのDockerイメージを削除するには、次を実行します:

docker rmi $(docker images -q)

docker images -qは、DockerイメージのIDを一覧表示します。これを$()docker rmiに渡すことで、すべてのDockerイメージを削除できます。

削除対象のイメージがコンテナで使用中の場合、そのイメージについては削除に失敗しますが、他のイメージの削除は続行されます。

ダングリングイメージを削除する方法

ダングリングイメージとは、新しいビルドによって古いイメージが置き換えられ、不要になったイメージのことです。

直接的な問題はありませんが、不要なディスク容量を消費するため、定期的に整理しておくと安心です。

ダングリングイメージを確認するには、次のようにdocker imagesコマンドでdangling=trueフィルターを使います:

docker images -f "dangling=true"

確認後は、docker image pruneコマンドを使って不要なダングリングイメージをまとめて削除できます。

パターンに基づいてイメージを削除する方法

Dockerでは、特定の名前のパターンやタグに基づいてイメージを削除できます。

パターンで特定のイメージを探す

パターンに基づいてDockerイメージを探すには、docker imagesコマンドとgrepコマンドを組み合わせて対象を絞り込みます。

例:myprojectに関連するすべてのイメージを表示する場合は、次を実行します:

docker images | grep 'myproject'

絞り込み結果に基づいてイメージを削除する

特定のイメージが確認できたら、コマンドを組み合わせて削除します。

例:名前にmyprojectを含むDockerイメージを削除する場合は、次を実行します:

docker rmi $(docker images | grep 'myproject' | awk '{print $3}')

grep ‘myproject’は対象のイメージを絞り込み、awk ‘{print $3}’はそのイメージIDを取り出します。取得したIDリストをdocker rmiコマンドに渡すことで削除が行われます。

Dockerコンテナを削除する方法

コンテナは、Dockerイメージを基にプロセスとして動作するインスタンスです。Dockerコンテナを削除する前に、まずdocker psコマンドでシステム内のコンテナを確認します。

docker ps

このコマンドは、稼働中のコンテナのみを表示します。停止中のコンテナも含めてすべて確認する場合は、-aオプションを追加します:

docker ps -a

特定のコンテナを削除する方法

不要なコンテナは、コンテナIDを確認してから削除できます。

Docker RM Commandコマンドの使用

特定のコンテナを削除する基本コマンドはdocker rmです。

例:

docker rm 4e5021d210f6

4e5021d210f6は実際のコンテナIDに置き換えてください。

実行中のコンテナを強制削除する

システムでDockerコンテナが実行中の場合は、次のコマンドを使用してコンテナを停止し、その後削除します:

docker rm -f 4e5021d210f6

または、docker stopコマンドでコンテナを停止してからdocker rmで削除する方法もあります。

停止中のすべてのコンテナを削除する方法

停止中のコンテナとは、タスクを完了したか、手動で終了させたコンテナのことです。

すべての停止中コンテナを削除するには、次のようにdocker container pruneコマンドを使います:

docker container prune

このコマンドは、ステータスが停止中のすべてのコンテナをクリーンアップして削除します。

–filterフラグを使うと、特定の期間内に停止したコンテナだけを選択的に削除できます。例:

docker container prune --filter "until=24h"

コンテナ終了時に自動削除する方法

テスト環境など、コンテナの作成と削除が頻繁に行われる場面では、コンテナを終了時に自動削除する設定が便利です。

これを行うには、docker runコマンドで–rmフラグを付けて実行します。例:

docker run --rm <your_image>

この<your_image>は、使用したいイメージ名に置き換えてください。

Dockerボリュームを削除する方法

ボリュームは、Dockerコンテナで生成・使用される永続データを保存します。

ボリュームを削除する前に、まずdocker volume lsコマンドで一覧を確認します:

docker volume ls

特定のボリュームを削除する方法

削除したいボリュームを特定したら、docker volume rmコマンドの後にそのボリューム名を指定して実行します。例:

docker volume rm my_volume

使われていないすべてのボリュームを削除する方法

未使用のDockerボリュームをすべて削除してディスク容量を確保するには、次を実行します:

docker volume prune

ラベル付きボリュームを削除する方法

ラベル付きボリュームとは、1つ以上のラベルが割り当てられているボリュームのことです。ラベルを利用すると、特定のプロジェクトや環境などに絞って削除対象を指定できます。

ラベルでボリュームを検索して削除する

特定のラベルを持つボリュームを一覧表示するには、docker volume lsコマンドにラベルを使ったフィルターを指定します。例:

docker volume ls -f "label=project=myproject"

削除したいボリュームが特定できたら、docker volume rmコマンドで個別に削除します。Dockerでは、1回のコマンドで複数のボリュームをまとめて削除することはできません。

ラベルに基づくボリューム削除の自動化

より自動化した方法として、xargsのようなコマンドラインツールを使うこともできます。次の例では、ラベルを基にボリュームを一覧表示し、その結果を削除コマンドに渡しています:

docker volume ls -qf "label=project=myproject" | xargs docker volume rm

このコマンドは、project=myprojectというラベルを持つすべてのボリューム名を取得し、それらをdocker volume rmコマンドに渡して削除します。

Dockerネットワークを削除する方法

Dockerネットワークは、コンテナ間の通信を可能にします。

システム内のすべてのDockerネットワークとそのIDを一覧表示するには、次を実行します:

docker network ls

特定のネットワークを削除する方法

特定のDockerネットワークを削除するには、docker network rmコマンドの後にネットワークIDまたは名前を指定します。例:

docker network rm 3cf8fbf4f034

または、次のようにネットワーク名を指定して削除することもできます:

docker network rm mynetwork

使われていないすべてのネットワークを削除する方法

未使用のDockerネットワークをすべて削除するには、次を実行します:

docker network prune

このコマンドを実行すると、これらのネットワークに関連する設定や構成が完全に削除されます。元に戻せないため、実行時は注意してください。

特定の期間に基づいてネットワークを削除する方法

特定の期間内に使われていないDockerネットワークを削除するには、docker network pruneコマンドに–filterオプションを付けて実行します。例:

docker network prune --filter "until=24h"

複数のフィルターを同時に適用することも可能です。例えば、過去30日(720時間)利用されていないネットワークを削除するには次を実行します:

docker network prune --filter "unused=true" --filter "until=720h"

Dockerイメージを削除するおすすめの方法

Dockerイメージの削除は、環境を整理し、誤った削除によるデータ損失を防ぐためにも、いくつかの基本方針に沿って行うと安心です。

Kodeeを活用する

Docker環境の運用では、効率と正確性が重要です。HostingerのAIアシスタントKodeeを使うと、Dockerイメージの保管最適化や削除手順をスムーズに確認できます。

KodeeはすべてのHostinger VPSホスティングプランで利用でき、Dockerに関する質問に特化しています。Dockerイメージを効率的に削除するための手順案内やコマンド、スクリプトも提供できます。

AIアシスタントを利用するには、次の手順に従います:

  • Hostingerアカウントにログインします。
  • VPSダッシュボードで対象サーバーを選択します。
  • 左側のメニューから「Kodee」を開きます。

「How do I remove unused Docker images?(未使用のDockerイメージを削除する方法は?)」のように、Dockerイメージ管理に関する質問を入力します。Kodeeが関連するコマンドやスクリプトを含めた詳細な回答を返します。

別の例として、サーバー上で利用可能なすべてのDockerイメージを一覧表示するようKodeeに依頼することもできます:

Dockerイメージにタグとバージョンを付ける

適切なタグ付けとバージョン管理は、Dockerイメージの保管を効率化するうえで重要です。以下は効果的なタグ付けの戦略です:

  • 意味のあるタグを使用するlatestのようなあいまいなタグではなく、より説明的なタグを使います。例:myapp:2.5.1 は、myappイメージのバージョン2.5.1を示します。
  • イメージIDにバージョンを付ける – イメージをビルドするときは、意味のあるバージョン番号でタグを付けます。例えば、docker build -t myimage:1.0を使うと、そのイメージにバージョン1.0のタグが付きます。
  • セマンティックバージョニング – 明確さと一貫性のために、major.minor.patchの形式によるセマンティックバージョニング方式を採用します。例えば、バグ修正を行う更新ではpatch番号を増やし、バージョンをmyapp:2.5.2に変更します。

重要なイメージをバックアップする

イメージをバックアップしておくことは、誤って削除してしまった場合や予期せぬトラブル時に、安全に保管し簡単に復元できるようにするために重要です。

Dockerイメージをバックアップする方法はいくつかあります:

  • イメージのエクスポート – Dockerでは、イメージをtarball形式でエクスポートできます。これを安全に保管しておけば、必要なときにオフラインからDockerに再読み込みできます。
  • Docker saveコマンドを使う – イメージをエクスポートするにはdocker saveコマンドを使います。例えば、myapp:latestという名前のイメージを保存する場合は、docker save myapp:latest > myapp_latest.tarを実行します。
  • 安全な保存場所を選ぶ – エクスポートしたイメージのtarballは、安全で信頼性の高い環境に保管することが大切です。クラウドストレージ、外付けハードディスク、安全かつアクセス可能なオフサイト環境などが選択肢になります。

イメージの依存関係を確認する

イメージの依存関係とは、複数のDockerイメージ間の関連性を指します。依存関係を考慮せずにイメージを削除すると、コンテナが正常に動作しなくなったり、リンクされたボリューム内のデータが失われたりする可能性があります。

イメージの依存関係を特定し、適切に管理するために、次の方法を検討してください:

  • イメージの関係をドキュメント化する – Dockerイメージとその相互関係について、明確で最新のドキュメントを維持します。これにより、依存関係を一目で把握できます。
  • タグを戦略的に使う – 重要なイメージや依存関係を示すためにタグを活用します。これにより、誤って重要なイメージを削除してしまうのを防げます。
  • 定期的な依存関係チェック – 大規模なクリーンアップや更新を行う前には特に、Docker環境内の依存関係の変化を定期的に確認します。

まとめ

このガイドでは、Dockerイメージやその他のコンポーネントを整理するためのさまざまな方法を紹介しました。

また、HostingerのAIアシスタントであるKodeeの活用や、誤ったデータ削除を防ぐためのDockerイメージの定期的な確認とドキュメント化など、いくつかのおすすめの方法についても取り上げました。

これらの役立つ方法やテクニックを実践することで、Dockerイメージやコンテナをより効果的に管理でき、よりクリーンで効率的かつ信頼性の高いシステムを維持できます。

Author
著者

Yukako Washisaka

こんにちは、Yukaです。バイリンガルの翻訳者として15年以上活動しています。アメリカではグラフィックデザインを学び、そこから翻訳の道に進みました。言葉を通じて文化と人をつなぐことにやりがいを感じていて、「伝わる」翻訳を大切にしています。 プライベートでは、家族とドライブに出かけたり、美しい景色を写真に収めたり、愛犬のトイプードルとのんびりお散歩するのが好きです。 このプロジェクトに関われることをうれしく思っています。私の翻訳が少しでもお役に立てれば光栄です。