はじめに
Dockerコンテナの履歴が溜まると、ストレージを圧迫する原因になります。特に Exited
状態のコンテナや不要なイメージを削除することで、ディスク容量を節約できるそうです。
あまりにもコンテナの履歴がたまりすぎて、正直何が何なのか、ブラックボックス状態だったので一度整理したいと思ったのが、今回記事をかこうと思ったきっかけです💦
どんなコマンドを使用すればいいのかを簡単にまとめてみました。
Dockerのストレージを整理する方法
① Exited
したコンテナを削除
まずは不要なコンテナを削除
以下のコマンドで、終了した (Exited
) コンテナを一括削除 できます。
docker container prune
✅ 確認メッセージ が出るので、y
を入力すると削除されます。
② 使っていないDockerイメージを削除
Dockerはコンテナの元となる「イメージ」も保存 しており、不要なものが溜まるとディスク容量を圧迫します!!
まず、現在のイメージ一覧を確認:
docker images
<none>
となっているイメージ(未使用のイメージ)があれば、以下で削除できます
docker image prune
全く使っていないイメージをすべて削除する場合は
docker image prune -a
⚠️ ただし、-a
は現在のコンテナで使っているイメージも消す可能性があるので注意!
③ 使っていないボリュームを削除
Dockerはデータを保持するために「ボリューム」を使います。
使われていないボリュームを削除するには
docker volume prune
④ 使っていないネットワークを削除
Dockerのネットワークも不要なものを削除可能です。
docker network prune
*⑤ 全ての不要データを一括削除
以下のコマンドを実行すると、コンテナ・イメージ・ボリューム・ネットワークを一括で削除 できます。
docker system prune -a
⚠️ ただし、実行前に本当に不要なものか確認してください!
ディスク使用量を確認する方法
削除前後のストレージ使用状況を確認したい場合は、以下のコマンドを実行します
docker system df
どれだけ容量を削減できたか確認できます。
まとめ
やりたいこと | コマンド |
---|---|
終了したコンテナを削除 | docker container prune |
未使用のイメージを削除 | docker image prune |
すべての未使用イメージを削除 | docker image prune -a |
使っていないボリュームを削除 | docker volume prune |
使っていないネットワークを削除 | docker network prune |
すべて一括で削除 | docker system prune -a |
ストレージ使用量を確認 | docker system df |
本来であれば定期的に確認整理するのがベストだと思います。
コンテナの名前を指定したりするとより管理もしやすいのでしょうが、いかんせん、名前の付け方など、まだDocker周りの知識が不十分なので、、
公式や記事を読み漁りたいと思います。