Dockerチートシート

前書き

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

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

このガイドの使用方法:

  • このガイドは、自己完結型のコマンドラインスニペットを含むチートシート形式です。

  • 完了しようとしているタスクに関連するセクションにジャンプします。

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

未使用またはダングリングのすべてのイメージ、コンテナ、ボリューム、およびネットワークのパージ

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

docker system prune

停止しているコンテナとすべての未使用のイメージ(ダングリングイメージだけでなく)をさらに削除するには、コマンドに `+ -a +`フラグを追加します。

docker system prune -a

Dockerイメージの削除

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

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

リスト:

docker images -a

削除する:

docker rmi

ぶら下がり画像を削除する

Dockerイメージは複数のレイヤーで構成されています。 ダングリングイメージは、タグ付けされたイメージとは関係のないレイヤーです。 それらはもはや目的を果たさず、ディスク容量を消費します。 それらは、フィルタフラグ、「-dangling = true +」の値を持つ「 -f 」を「 docker images 」コマンドに追加することで見つけることができます。 本当に削除したい場合は、 ` docker images purge +`コマンドを使用できます:

リスト:

docker images -f dangling=true

削除する:

docker images purge

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

+ docker images +`とhttps://www.digitalocean.com/community/tutorials/using-grep-regular-expressions-to-search-for-text-の組み合わせを使用して、パターンに一致するすべての画像を見つけることができますpattern-in-linux [+ grep `]。 満足したら、IDを ` docker rmi `に渡すために ` awk +`を使用してそれらを削除できます。 これらのユーティリティはDockerによって提供されているわけではなく、必ずしもすべてのシステムで利用できるわけではないことに注意してください。

リスト:

docker images -a |  grep ""

削除する:

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

すべての画像を削除

システム上のすべてのDockerイメージをリストするには、「+ docker images 」コマンドに「 -a 」を追加します。 それらをすべて削除したいと確信したら、 ` -q `フラグを追加して、イメージIDを ` docker rmi +`に渡すことができます。

リスト:

docker images -a

削除する:

docker rmi $(docker images -a -q)

コンテナの削除

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

`+ -a `フラグを指定した ` docker ps +`コマンドを使用して、削除するコンテナーの名前またはIDを見つけます。

リスト:

docker ps -a

削除する:

docker rm

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

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

実行および削除:

docker run --rm

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

`+ docker ps -a `を使用してコンテナを見つけ、そのステータス(作成、再起動、実行、一時停止、または終了)でフィルタリングできます。 終了したコンテナのリストを確認するには、ステータスに基づいてフィルタリングするために ` -f `フラグを使用します。 これらのコンテナを削除することを確認したら、 ` -q `を使用してIDを ` 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 `とhttps://www.digitalocean.com/community/tutorials/using-grep-regular-expressions-to-search-for-text-の組み合わせを使用して、パターンに一致するすべてのコンテナーを見つけることができますパターン-in-linux [grep]。 削除したいリストがあることに満足したら、 ` awk `と ` xargs `を使用してIDを ` docker rmi +`に提供できます。 これらのユーティリティはDockerによって提供されているわけではなく、必ずしもすべてのシステムで利用できるわけではないことに注意してください。

リスト:

docker ps -a |  grep "”

削除する:

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

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

`+ docker ps `でシステム上のコンテナを確認できます。 ` -a `フラグを追加すると、すべてのコンテナが表示されます。 それらを削除したい場合は、 ` -q `フラグを追加して、IDを ` docker stop `および ` docker rm +`コマンドに提供できます。

リスト:

docker ps -a

削除する:

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

ボリュームの削除

1つ以上の特定のボリュームを削除する-Docker 1.9以降

`+ docker volume ls `コマンドを使用して、削除するボリューム名を見つけます。 それから、 ` docker volume rm +`コマンドで1つ以上のボリュームを削除できます:

リスト:

docker volume ls

削除する:

docker volume rm

宙ぶらりんのボリュームを削除する-Docker 1.9以降

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

リスト:

docker volume ls -f dangling=true

削除する:

docker volume prune

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

名前のないボリュームを作成した場合は、 `+ -v +`フラグを使用してコンテナと同時に削除できます。 これは_unnamed_ボリュームでのみ機能することに注意してください。 コンテナが正常に削除されると、そのIDが表示されます。 ボリュームの削除については言及されていないことに注意してください。 名前が付けられていない場合は、システムから静かに削除されます。 名前が付けられている場合、静かに存在し続けます。

削除する:

docker rm -v

結論

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