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とか使わないですが
記事書くにあたって調べてると結構使われてそうなので勉強になりました。
このカテゴリの最新記事
2024.11.22
2024.10.23
2023.04.24
2023.07.19