序章

Docker を使用すると、アプリケーションとサービスをコンテナーに簡単にラップできるため、どこでも実行できます。 ただし、Dockerを使用する場合、出力を乱雑にし、ディスク領域を消費する未使用のイメージ、コンテナー、およびデータボリュームを過剰に蓄積することも簡単です。

Dockerは、コマンドラインからシステムをクリーンアップするために必要なすべてのツールを提供します。 このチートシートスタイルガイドは、ディスクスペースを解放し、未使用のDockerイメージ、コンテナー、およびボリュームを削除してシステムを整理するのに役立つコマンドのクイックリファレンスを提供します。

このガイドの使用方法:

  • このガイドは、自己完結型のコマンドラインスニペットを含むチートシート形式です。
  • 完了しようとしているタスクに関連するセクションにジャンプします。

注:コマンド置換構文、 command $(command)コマンドで使用される、は、 bash zsh WindowsPowershellなどの多くの一般的なシェルで使用できます。

未使用またはぶら下がっているすべてのイメージ、コンテナ、ボリューム、およびネットワークをパージする

Dockerは、ぶら下がり(タグ付けされていない、またはコンテナーに関連付けられていない)のリソース(イメージ、コンテナー、ボリューム、ネットワーク)をクリーンアップする単一のコマンドを提供します。

  1. docker system prune

停止したコンテナとすべての未使用の画像(ぶら下がっている画像だけでなく)をさらに削除するには、 -a コマンドへのフラグ:

  1. docker system prune -a

Dockerイメージの削除

1つ以上の特定の画像を削除する

使用 docker images とのコマンド -a フラグを立てて、削除する画像のIDを見つけます。 これにより、中間画像レイヤーを含むすべての画像が表示されます。 削除する画像を見つけたら、そのIDまたはタグをに渡すことができます docker rmi:

リスト:

  1. docker images -a

削除する:

  1. docker rmi Image Image

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

Dockerイメージは複数のレイヤーで構成されています。 ぶら下がっている画像は、タグ付けされた画像とは関係のないレイヤーです。 それらはもはや目的を果たさず、ディスクスペースを消費します。 フィルタフラグを追加することで見つけることができます -f の値で dangling=truedocker images 指図。 それらを削除することが確実な場合は、 docker image prune 指図:

注:タグ付けせずにイメージを作成すると、タグ付けされたイメージとの関連付けがないため、そのイメージはぶら下がっているイメージのリストに表示されます。 この状況を回避するには、ビルド時にタグを提供し、 dockertagコマンドを使用してイメージに遡及的にタグを付けることができます。

リスト:

  1. docker images -f dangling=true

削除する:

  1. docker image prune

パターンに従って画像を削除する

の組み合わせを使用して、パターンに一致するすべての画像を見つけることができます docker images およびgrep。 満足したら、awkを使用してIDをに渡すことでそれらを削除できます docker rmi. これらのユーティリティはDockerによって提供されているわけではなく、必ずしもすべてのシステムで利用できるわけではないことに注意してください。

リスト:

  1. docker images -a | grep "pattern"

削除する:

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

すべての画像を削除する

システム上のすべてのDockerイメージは、追加することで一覧表示できます -adocker images 指図。 それらをすべて削除することを確認したら、追加できます -q 画像IDを渡すフラグ docker rmi:

リスト:

  1. docker images -a

削除する:

  1. docker rmi $(docker images -a -q)

コンテナの削除

1つ以上の特定のコンテナを削除します

使用 docker ps とのコマンド -a 削除するコンテナの名前またはIDを見つけるためのフラグ:

リスト:

  1. docker ps -a

削除する:

  1. docker rm ID_or_Name ID_or_Name

終了時にコンテナを削除します

コンテナを作成しているときに、完了したらコンテナを保持したくないことがわかっている場合は、次のコマンドを実行できます。 docker run --rm 終了時に自動的に削除するには:

実行および削除:

  1. docker run --rm image_name

終了したすべてのコンテナを削除します

を使用してコンテナを見つけることができます docker ps -a ステータスでフィルタリングします。 created, restarting, running, paused、 また exited. のリストを確認するには exited コンテナ、使用 -f ステータスに基づいてフィルタリングするフラグ。 これらのコンテナを削除することを確認したら、次を使用します。 -q IDをに渡すには docker rm 指図:

リスト:

  1. docker ps -a -f status=exited

削除する:

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

複数のフィルターを使用してコンテナーを削除します

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

リスト:

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

削除する:

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

パターンに従ってコンテナを削除します

の組み合わせを使用して、パターンに一致するすべてのコンテナを見つけることができます docker ps およびgrep。 削除したいリストがあることに満足したら、awkxargs IDをに提供する docker rm. これらのユーティリティはDockerによって提供されているわけではなく、必ずしもすべてのシステムで利用できるわけではないことに注意してください。

リスト:

  1. docker ps -a | grep "pattern

削除する:

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

すべてのコンテナを停止して削除します

システム上のコンテナを確認するには、 docker ps. 追加する -a フラグはすべてのコンテナを表示します。 それらを削除することが確実な場合は、 -q IDをに提供するフラグ docker stopdocker rm コマンド:

リスト:

  1. docker ps -a

削除する:

  1. docker stop $(docker ps -a -q)
  2. docker rm $(docker ps -a -q)

ボリュームの削除

1つ以上の特定のボリュームを削除します-Docker1.9以降

使用 docker volume ls 削除する1つまたは複数のボリューム名を見つけるためのコマンド。 次に、を使用して1つ以上のボリュームを削除できます。 docker volume rm 指図:

リスト:

  1. docker volume ls

削除する:

  1. docker volume rm volume_name volume_name

ぶら下がっているボリュームを削除する-Docker1.9以降

ボリュームのポイントはコンテナーから独立して存在するため、コンテナーが削除されても、ボリュームが同時に自動的に削除されることはありません。 ボリュームが存在し、どのコンテナにも接続されていない場合、それはダングリングボリュームと呼ばれます。 それらを見つけて削除することを確認するには、 docker volume ls 結果をぶら下がっているボリュームに制限するフィルターを使用したコマンド。 リストに満足したら、次のコマンドですべて削除できます。 docker volume prune:

リスト:

  1. docker volume ls -f dangling=true

削除する:

  1. docker volume prune

コンテナとそのボリュームを削除します

名前のないボリュームを作成した場合は、コンテナと同時に削除できます。 -v 国旗。 これは、名前のないボリュームでのみ機能することに注意してください。 コンテナが正常に削除されると、そのIDが表示されます。 ボリュームの削除については言及されていないことに注意してください。 名前がない場合は、システムからサイレントに削除されます。 名前が付けられている場合は、黙って存在し続けます。

削除する:

  1. docker rm -v container_name

結論

このガイドでは、Dockerを使用してイメージ、コンテナー、およびボリュームを削除するために使用される一般的なコマンドのいくつかについて説明します。 それぞれで使用できる他の多くの組み合わせとフラグがあります。 利用可能なものの包括的なガイドについては、 docker system prune docker rmi docker rm 、および docker volumermのDockerドキュメントを参照してください。 ]。 ガイドに表示したい一般的なクリーンアップタスクがある場合は、コメントで質問または提案してください。

Dockerコンテナーのさまざまなコンポーネントの詳細については、 Dockerエコシステム:一般的なコンポーネントの概要をご覧ください。