Dockerイメージ、コンテナ、ボリュームを削除する方法

0 株式
0
0
0
0

導入

Dockerを使えば、アプリケーションやサービスをコンテナに簡単にパッケージ化できるので、どこでも実行できます。しかし、Dockerを使い続けるうちに、未使用のイメージ、コンテナ、データボリュームが大量に蓄積され、出力が乱雑になり、ディスク容量を圧迫してしまうことも珍しくありません。Dockerは、コマンドラインからシステムをクリーンアップするために必要なツールをすべて提供しています。このチートシート形式のガイドでは、未使用のDockerイメージ、コンテナ、ボリュームを削除することでディスク容量を解放し、システムを整理するのに役立つコマンドを素早く参照できます。.

このガイドの使い方:
  • このガイドは、スタンドアロンのコマンドライン スニペットを含むチートシートの形式になっています。.
  • 完了したいタスクに関連する各セクションに移動します。.

すべてのイメージ、コンテナ、ボリュームを削除します

Docker は、イメージ、コンテナ、ボリューム、ネットワークなどのリソースをクリーンアップする単一のコマンドを提供します。

docker system prune

停止したコンテナと未使用のイメージをすべて削除するには、コマンドに -a を追加します。

docker system prune -a

Dockerイメージを削除する

削除したいイメージのIDを見つけるには、docker imagesコマンドに-aオプションを付けて実行します。これにより、中間レイヤーを含む各イメージが表示されます。削除したいイメージが見つかったら、そのIDまたはタグをdocker rmiに渡します。

リスト:

docker images -a

除去:

docker rmi Image Image

ぶら下がっている画像を削除する

Dockerイメージは複数のレイヤーで構成されています。ダングリングイメージとは、タグ付けされたイメージとは何の関係もないレイヤーのことです。これらはもはや役に立たず、ディスク容量を消費しています。これらのレイヤーを見つけるには、docker imagesコマンドに-fフィルターとdangling=trueの値を追加してください。これらのレイヤーを削除したい場合は、docker image pruneコマンドを使用してください。

リスト:

docker images -f dangling=true

除去:

docker image prune

パターンに基づいて画像を削除する

docker imagesとgrepを組み合わせることで、パターンに一致するすべてのイメージを見つけることができます。満足のいく結果が得られたら、awkを使ってIDをdocker rmiに渡すことで、それらを削除します。これらのツールはDockerが提供するものではなく、すべてのシステムで利用できるとは限りません。

リスト:

docker images -a | grep "pattern"

除去:

docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi

すべての画像を削除します。

システム上のすべてのDockerイメージは、以下を追加することで追加できます。 -あ docker imagesコマンドですべてのイメージを一覧表示します。すべて削除してもよろしいか確認したら、 -q イメージIDをdockerに渡すために追加します rmi 送信:

リスト:

docker images -a

除去:

docker rmi $(docker images -a -q)

削除(テンプレートを削除):

削除するコンテナの名前または ID を見つけるには、docker ps コマンドに -a を付けて使用します。

リスト:

docker ps -a

除去:

docker rm ID_or_Name ID_or_Name

すべての出力形式を削除する

コンテナは docker ps -a ステータス(作成済み、再起動済み、実行中、一時停止中、終了済み)でコンテナを検索し、フィルタリングします。終了したコンテナのリストを確認するには、-f オプションを使用してステータスでフィルタリングします。これらのコンテナを削除することを確認したら、-q オプションを使用してコンテナの識別子を docker rm コマンドに渡します。

リスト:

docker ps -a -f status=exited

除去:

docker rm $(docker ps -a -f status=exited -q)

複数のフィルタを使用してテンプレートを削除する

Dockerフィルターは、フィルターに値を追加することで組み合わせることができます。これにより、各条件を満たすコンテナのリストが生成されます。例えば、created(コンテナが無効なコマンドで実行されたときに発生する状態)またはexited(終了)とマークされているコンテナをすべて削除したい場合は、次の2つのフィルターを使用できます。

リスト:

docker ps -a -f status=exited -f status=created

除去:

docker rm $(docker ps -a -f status=exited -f status=created -q)

型紙に沿って型を切ります。

docker ps と grep を組み合わせて使用すると、パターンに一致するすべてのコンテナを検索できます。削除したいコンテナのリストが完成したら、awk と xargs を使用して、そのIDを docker rm に渡します。これらのツールはDockerが提供するものではなく、すべてのシステムで利用できるとは限らないことに注意してください。

リスト:

docker ps -a | grep "pattern”

除去:

docker ps -a | grep "pattern" | awk '{print $1}' | xargs docker rm

すべてのテンプレートを停止して削除します。

システム上のコンテナは docker ps で確認できます。-a を追加するとすべてのコンテナが表示されます。コンテナを削除する場合は、 docker stop コマンドと docker rm コマンドに -q を追加して識別子を指定します。

リスト:

docker ps -a

除去:

docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)

ボリュームを削除する

1つまたは複数の特定のボリュームを削除する – Docker 1.9以降

ボリュームはコンテナとは独立して存在することを想定しているため、テンプレートを削除してもボリュームは自動的には削除されません。ボリュームが存在し、どのコンテナにも接続されていない状態は、ダングリングボリュームと呼ばれます。これらのボリュームの位置を確認し、削除するかどうかを確認するには、docker volume ls コマンドにフィルターを適用し、結果をダングリングボリュームのみに絞り込みます。リストに問題がなければ、docker volume prune ですべて削除できます。

リスト:

docker volume ls -f dangling=true

除去:

docker volume prune

テンプレートとそのボリュームを取得します。

名前のないボリュームを作成した場合、-v オプションを使用してコンテナと同時に削除できます。ただし、これは名前のないボリュームでのみ機能します。ボリュームが正常に削除されると、そのボリュームのIDが表示されます。削除されるボリュームについては何も表示されません。名前が付いていないボリュームは、システムから自動的に削除されます。名前が付いているボリュームは、自動的に残ります。.

除去:

docker rm -v container_name

結果

このガイドでは、Dockerでイメージ、コンテナ、ボリュームを削除する際によく使われるコマンドをいくつか紹介します。これらのコマンドには、他にも多くの組み合わせやフラグが用意されています。利用可能なコマンドの包括的なガイドについては、Dockerのシステムプルーニングに関するドキュメントをご覧ください。 docker、docker rmidocker-rm そして docker ボリューム rm ご覧ください。ガイドに掲載してほしい一般的な掃除作業があれば、コメント欄で質問や提案をしてください。.

コメントを残す

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

あなたも気に入るかもしれない