ITメモベース

Python・開発環境まわりの「つまずきポイント」を整理するITメモ


Dockerでvolumeが肥大化する原因と安全な削除方法(Mac)


Dockerを使い続けていると、

  • ディスク容量が急に減る
  • Docker Desktopが重くなる
  • 何が容量を使っているのか分からない

といった状況になることがあります。

原因を調べてみると、
Docker volume が知らないうちに肥大化しているケースは非常に多いです。

この記事では、Dockerでvolumeが肥大化する主な原因と、データを失わずに安全に削除・整理する方法を、Mac環境向けに解説します。

※ 本記事は Mac + Docker Desktop を前提に説明します。

この記事でわかること

  • Docker 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 が溜まりやすくなります。

volume削除前に必ず確認すること

1. 本当に不要なvolumeか

volumeは データそのものです。

削除すると、

  • DBデータ
  • アップロードファイル

などが消える可能性があります。

2. 使用中のコンテナがないか

docker ps -a

で、
volumeを使っているコンテナが残っていないか確認します。

現在のvolume一覧を確認する

docker volume ls

不要なvolume名を確認します。

volumeがどのコンテナで使われているか確認

docker volume inspect ボリューム名

MountpointContainers を確認し、
本当に未使用かを判断します。

安全な削除方法① 個別に削除する(推奨)

不要と判断できたvolumeを、
一つずつ削除します。

docker volume rm ボリューム名

👉 最も安全な方法です。

安全な削除方法② 未使用volumeをまとめて削除

完全に未使用のvolumeだけを削除したい場合:

docker volume prune

※ 使用中のvolumeは削除されません。

docker compose 利用時の注意点

Compose環境でvolumeも一緒に削除したい場合:

docker compose down -v

⚠️ DBデータも消えるため、慎重に実行してください。

やってはいけない対処法

  • 何に使われているか分からないまま削除
  • sudo を付けて無理に削除
  • volumeとイメージを混同する

👉 volumeは 「データ」 である点を忘れないことが重要です。

それでも容量が減らない場合

  • 未使用イメージ
  • 停止中コンテナ
  • キャッシュ

も同時に整理します。

docker system prune

※ 実行前に削除内容を必ず確認してください。

まとめ

Dockerでvolumeが肥大化する原因は、

  • コンテナ削除後もvolumeが残る
  • DB・ログデータが溜まり続ける
  • down時にvolumeを削除していない

のいずれかです。

削除前に用途を確認し、未使用と判断できたものだけを整理することで、
安全にディスク容量を回復できます。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

PAGE TOP