Dockerを使い続けていると、
- ディスク容量が急に減っている
- Docker Desktopが重くなった
- 何が容量を圧迫しているのか分からない
といった状況に直面することがあります。
その原因として非常に多いのが、
Docker volume が知らないうちに肥大化しているケースです。
この記事では、Dockerでvolumeが肥大化する主な原因と、
データを消さずに安全に削除・整理する方法を分かりやすく解説します。
この記事でわかること
- Docker volume の基本的な役割
- volume が肥大化する典型的な原因
- 削除前に必ず確認すべきポイント
- 安全にvolumeを削除・整理する手順
Docker volumeとは?
Docker volumeは、
コンテナの外にデータを永続化する仕組みです。
- コンテナ削除後もデータが残る
- DBやログ保存に使われる
という特性があるため、
意識して管理しないと容量が増え続けます。
volumeが肥大化する主な原因
原因① コンテナ削除後もvolumeが残る
Dockerでは、
docker rm コンテナ名
を実行しても、
volumeは自動で削除されません。
その結果、
- コンテナは消えた
- volumeだけが残り続ける
という状態が積み重なります。
原因② DB・ログデータが増え続ける
次のような用途のvolumeは、特に肥大化しやすいです。
- MySQL / PostgreSQL
- Redis
- アプリケーションログ
ログローテーションを行っていない場合、
数GB単位で増えることもあります。
原因③ docker compose down でvolumeを削除していない
docker compose down
では、
volumeは削除されません。
そのため、
Composeを使っている環境ほど volume が溜まりやすくなります。
削除前に必ず確認すべきこと
1. 本当に不要なvolumeか
volumeを削除すると、
- DBのデータ
- アップロードファイル
などが 完全に消えます。
用途が分からない場合は、
削除しないのが安全です。
2. 使用中のコンテナがないか
docker ps -a
で、
volumeを使っているコンテナが残っていないか確認します。
現在のvolume一覧を確認する
docker volume ls
ここで不要そうなvolume名を確認します。
volumeの使用状況を確認する
docker volume inspect ボリューム名
以下を確認します。
- Containers が空か
- どの用途で使われていたか
安全な削除方法① 個別に削除する(推奨)
不要と判断できたvolumeを、
一つずつ削除します。
docker volume rm ボリューム名
👉 最も安全で確実な方法です。
安全な削除方法② 未使用volumeをまとめて削除
未使用のvolumeだけを削除する場合:
docker volume prune
※ 使用中のvolumeは削除されません。
docker compose利用時の注意点
volumeも含めて削除したい場合:
docker compose down -v
⚠️ DBデータも消えるため、実行前に必ず確認してください。
やってはいけない対処法
- 何に使われているか分からないまま削除
- sudoを付けて強制削除
- volumeとイメージを混同する
volumeは データ本体 である点に注意が必要です。
それでも容量が減らない場合
volume以外にも、次が溜まっている可能性があります。
- 未使用イメージ
- 停止中コンテナ
- キャッシュ
docker system prune
※ 実行前に削除内容を必ず確認してください。
まとめ
Dockerでvolumeが肥大化する原因は、
- コンテナ削除後もvolumeが残る
- DB・ログデータが溜まり続ける
- down時にvolumeを削除していない
ことがほとんどです。
用途を確認し、未使用と判断できたvolumeだけを整理することで、
安全にディスク容量を回復できます。
コメントを残す