Docker は、近年の組織において最も人気のある製品の1つです。コンテナ内でのアプリケーション管理プロセスを非常に容易にします。Dockerはコンテナを使用するため、アプリケーションにポータビリティ、パフォーマンス、アジリティ、スケーラビリティ、および分離性を提供します。コンテナは仮想マシンよりもポータブルで、必要なリソースも少なくて済みます。Dockerを使用していると、未使用のイメージ、ボリューム、コンテナが過剰に蓄積されがちです。これらのリソースは出力を乱雑にし、多くのディスク容量を消費します。このチュートリアルでは、Dockerリソースをクリーンアップし、サーバーを整理する方法を学びます。
すべてをパージ
イメージ、停止したコンテナ、ボリューム、ネットワークを含むすべてのDockerリソースを、単一のコマンドでクリーンアップできます。以下のオプションから1つを選択できます:
参考: 宙ぶらりん(Dangling)なリソースとは、実行中のどのコンテナにも関連付けられていないリソースのことです。
オプション 1:
|
1 |
docker system prune |
– すべての停止したコンテナ
– 少なくとも1つのコンテナで使用されていないすべてのネットワーク
– すべての宙ぶらりん(dangling)なイメージ
– すべての宙ぶらりん(dangling)なビルドキャッシュ
オプション 2:
|
1 |
docker system prune -a |
– すべての停止したコンテナ
– 少なくとも1つのコンテナで使用されていないすべてのネットワーク
– 少なくとも1つのコンテナに関連付けられていないすべてのイメージ
– すべてのビルドキャッシュ
オプション 3:
|
1 |
docker system prune -a --volumes |
– すべての停止したコンテナ
– 少なくとも1つのコンテナで使用されていないすべてのネットワーク
– 少なくとも1つのコンテナで使用されていないすべてのボリューム
– 少なくとも1つのコンテナに関連付けられていないすべてのイメージ
– すべてのビルドキャッシュ

Dockerイメージの削除
特定のイメージを削除するには、そのイメージIDを知る必要があります。DockerコンテナのイメージIDは、“docker images”コマンドを使用して確認できます。これについては、次のチュートリアルで説明しています:UbuntuでDockerをインストール & 操作する方法.
イメージの一覧表示:
|
1 |
docker images |
イメージの削除:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
docker rmi <Image ID> 例: docker rmi 1d622ef86b13 出力: Untagged: ubuntu:latest Untagged: ubuntu@sha256:747d2dbbaaee995098c9792d99bd333c6783ce56150d1b11e333bbceed5c54d7 Deleted: sha256:1d622ef86b138c7e96d4f797bf5e4baca3249f030c575b9337638594f2b63f01 Deleted: sha256:279e836b58d9996b5715e82a97b024563f2b175e86a53176846684f0717661c3 Deleted: sha256:39865913f677c50ea236b68d81560d8fefe491661ce6e668fd331b4b680b1d47 Deleted: sha256:cac81188485e011e56459f1d9fc9936625a1b62cacdb4fcd3526e5f32e280387 Deleted: sha256:7789f1a3d4e9258fbe5469a8d657deb6aba168d86967063e9b80ac3e1154333f |
宙ぶらりん(Dangling)なイメージの削除:
Dockerイメージをビルドすると、通常は複数のイメージレイヤーが作成されます。宙ぶらりん(Dangling)なイメージとは、タグ付けされたどのイメージとも関連性のないレイヤーのことです。これらはディスク容量を消費するだけで、何の役にも立ちません。次のコマンドを使用して一覧表示できます:
|
1 |
docker images -f dangling=true |
次のコマンドを実行することで、これらのイメージを削除できます:
|
1 |
docker image prune |
パターンに基づいたイメージの削除
“grep”コマンドを使用して特定のパターンに基づいてイメージを簡単に見つけ、それを“awk”を使用して“docker rmi”コマンドに渡すことで削除できます。以下のコマンドを使用し、それぞれの“pattern”部分を置き換えてください:
一覧表示:
|
1 |
docker images -a | grep "pattern" |
削除:
|
1 |
docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi |
すべてのイメージを削除する
次のコマンドを使用して、すべてのDockerイメージを一覧表示できます。
|
1 |
docker images -a |
すべて削除することを決定した場合は、次のコマンドを使用してすべて削除できます。
|
1 |
docker images -a -q | xargs docker rmi |
コンテナの削除:
不要なイメージをすべてクリアしたので、次は不要なコンテナをいくつか削除します。
コンテナを一覧表示するには、次のコマンドを使用します。
|
1 |
docker ps -a |
コンテナを削除するには、次のコマンドを使用します。
|
1 |
docker rm <<コンテナ名/コンテナID>> |
コンテナを一時的に実行する
コンテナを1回だけ実行したい場合は、終了時にコンテナを自動的に削除するように選択できます。これを行うには、次のコマンドを使用します。
|
1 |
docker run --rm <<イメージ名>> |
終了したコンテナの削除
終了したコンテナは、“-f”引数を使用してフィルタリングできます。次のコマンドを使用して、終了したコンテナを一覧表示します。
|
1 |
docker ps -a -f status=exited |
フィルタリングしたら、次のコマンドを使用して削除します。
|
1 |
docker rm $(docker ps -a -f status=exited -q) |
パターンに基づいてコンテナを削除する
“grep”コマンドを使用して特定のパターンに基づいてコンテナを簡単に見つけ、それを“awk”を使用して“docker rm”コマンドに渡すことで削除できます。次のコマンドを使用し、それぞれの“pattern”を置き換えてください。
一覧表示:
|
1 |
docker ps -a | grep "pattern" |
削除:
|
1 |
docker ps -a | grep "pattern" | awk '{print $1}' | xargs docker rm |
すべてのコンテナの停止と削除
実行する前に、サーバー上のすべてのコンテナを一覧表示して確認してください。本当に削除してもよいと確信した場合のみ、次のコマンドを実行します。
確認のためにコンテナを一覧表示する:
|
1 |
docker ps -a |
停止と削除:
|
1 2 |
docker stop $(docker ps -a -q) docker rm $(docker ps -a -q) |
ボリュームの削除
特定のボリュームを削除する
特定のボリュームを削除するには、ボリューム名を知る必要があります。それを確認するには、ボリュームを一覧表示します。
一覧表示:
|
1 |
docker volume ls |
削除:
|
1 |
docker volume rm <<ボリューム名>> |
ダングリングボリュームの削除
コンテナを削除しても、そこにアタッチされていたボリュームは自動的には削除されません。このようなボリュームはダングリングボリュームと呼ばれます。そのようなボリュームを見つけるには、コマンドでフィルター引数を使用します。
|
1 |
docker volume ls -f dangling=true |
そのようなダングリングボリュームをすべて削除するには、次のコマンドを使用します。
|
1 |
docker volume prune |
コンテナと名前なしボリュームを削除する
コンテナの実行中に匿名または名前なしのボリュームを作成した場合、1つのコマンドでコンテナと一緒に削除できます。ただし、ボリュームに名前がある場合は、コンテナのみが削除されます。
|
1 |
docker rm -v <<コンテナ名>> |
このチートシートを手に入れたので、サーバー上で不要になったDockerリソースをクリーンアップする準備が整ったはずです。
快適なコンピューティングを!


コメント
コメントはまだありません。最初のコメントを投稿しましょう。