タイガーラック クリエイティブブログ
2024
November
22

Docker容量不足の解決

はじめに

Dockerは以下の要素で構成されています。
– Images (イメージ)
– Containers (コンテナ)
– Volumes (ボリューム)

Images (イメージ)を元に作成したContainers (コンテナ)でVolumes (ボリューム)のデータをやりとりする感じで運用します。

複数のサイトの運用を一台のPCで行うため、PCの中には不要なDockerの要素が溜まっていきます。
普段から整理整頓していても、気づかないうちに溜まっていたりします。

エラー文

no space left on device

例えばdocker-compose up -dとかした時に、このエラー文が出て立ち上がらない時があります。
Dockerの容量不足です。

Docker容量の確認

以下のコマンドで確認できます。

docker system df

現在、ぼくのPCで容量不足は起こっていないのでアレなんですけど、こちらが結果です。

// docker system dfをたたいた結果
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          46        5         22.99GB   21.49GB (93%)
Containers      8         8         60.82kB   0B (0%)
Local Volumes   60        5         14.15GB   11.77GB (83%)
Build Cache     207       0         294MB     294MB

Dockerのどの要素にどれだけ容量を割いているかがわかるので、不足している箇所を整理することで解決できます。

Dockerコンテナの整理

落とすことを忘れているコンテナがあったりします。
以下のコマンドですべてのコンテナを表示し、不要なコンテナの削除を行います。

// aオプションの指定で、実行中のコンテナだけでなくすべてのコンテナを表示
docker ps -a

// 不要なコンテナのIDを指定して削除
docker rm <CONTAINER ID>

Dockerイメージの整理

もう使っていないイメージがけっこう溜まっていたりします。
以下のコマンドでDockerイメージ一覧を表示して、不要なイメージの削除を行います。

// Dockerイメージ一覧の表示
docker images

// 不要なイメージの削除
docker rmi <IMAGE ID>

Dockerボリュームの整理

コンテナを消してもデータは残るようにボリュームでDB管理しています。
ボリュームを不用意に消してしまうと、またデータ作成や流し込みからしないといけないので慎重に整理します。
以下のコマンドでDockerボリューム一覧を表示して、不要なボリュームの削除を行います。

// Dockerボリューム一覧の表示
docker volume ls

// Dockerボリュームの削除
docker volume rm <VOLUME NAME>

一気に削除する

docker system pruneという一括削除系のコマンドがあります。
docker system pruneはDocker のバージョンによって動作が異なるそうです。
docker docs – docker system prune
https://docs.docker.com/engine/reference/commandline/system_prune/

// 停止して24時間経過したコンテナと、使っていないイメージおよびネットワークを消す
docker system prune -a --filter "until=24h"

Docker Desktopで消す

GUIを使用して消すのも、わかりやすくていいかもしれないです。

まとめ

以上、Dockerの容量不足の解決方法(要素の整理)についてまとめてみました。
普段の業務で自分はめったにdocker system pruneとか使わないですが
記事書くにあたって調べてると結構使われてそうなので勉強になりました。

このカテゴリの最新記事

関連記事

SHOP LIST

タイガーラック株式会社

〒577-0056
大阪府東大阪市長堂1-3-14 TOKUYASU Bld.