DockerDay 4

Docker for Macを使っているとストレージ容量不足になる問題をなんとかする

More than 1 year has passed since last update.


Docker for Macの問題点

Docker for Macを使っていると、ローカルのストレージ容量をどんどん圧迫してくる問題があります。

~/Library/Containers/com.docker.docker/が、イメージやコンテナを削除しても縮小されないのが原因で、

下記のコマンドを実行するとどれだけ容量圧迫しているか確認できます。

$ docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$
$ docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
$
$ # この例だとコンテナやイメージが一切なくても、37GBもストレージを使用されています
$
$ ls -lh ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
-rw-r--r-- 1 ktsujichan staff 37G 12 3 23:39 /Users/ktsujichan/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2

この問題はDocker for MacのGitHubリポジトリでIssueも上げられていますが、

本記事投稿時点ではまだ解決されていません。


とりあえずなんとかする

イメージのキャッシュが保存されているので、起動時に早くなるメリットもありますが、

長期間開発していると無駄なキャッシュが残っていたり、数十GBもストレージを使ってしまうデメリットも大きいので、

定期的にすべて削除するのがよいかと思います。

$ docker rm $(docker ps -a -q)

$ docker rmi $(docker images -q)
$ docker volume rm $(docker volume ls |awk '{print $2}')
$ rm -rf ~/Library/Containers/com.docker.docker/Data/*
$
$ ls -lh ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
-rw-r--r-- 1 ktsujichan staff 320K 12 4 01:15 /Users/ktsujichan/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2

初回起動時はキャッシュがないので若干起動に時間がかかりますが、

ストレージに大幅な空き容量ができるので、定期的に整理するのがオススメです。