Docker Compose でビルドする際のキャッシュを削除する方法
Docker Compose を使っていると、必ずと言っていいほど遭遇する、
ビルドイメージや、ビルドキャッシュの削除方法についてまとめます。
ディスク容量
現在、Dockerが使用しているディスク容量は、以下のコマンドで確認することができます。
$ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 17 17 6.767GB 1.352GB (19%)
Containers 17 0 769MB 769MB (100%)
Local Volumes 16 9 28.84GB 301.8MB (1%)
Build Cache 584 0 21.07GB 21.07GB
参考)https://docs.docker.com/reference/cli/docker/system/df/
上記のうち、RECLAIMABLE
の部分が、再利用可能(削除可能)となります。
Linuxでは、デフォルトでrootパーティションは100GB未満となっていることが多いですが、DockerのImageが格納される領域もデフォルトで、/var/lib/docker/
となっているため、長く使っていると、ディスク容量は問題ないのに、rootパーティションだけいっぱいになってしまうことがあります。
Imagesの削除方法
そんなときに使うコマンドがこちらです。
$ docker image prune -a
参考)https://docs.docker.com/reference/cli/docker/image/prune/
また、docker compose up --build
とすることで、コンテナ起動時にビルドを強制することもできますが、このときビルドキャッシュの使用を制限することはできません。つまり、Dockerfileに変更がなければ、すべてキャッシュから再利用されてしまいます。
Build Cache の削除方法
ビルドした際に、常にCACHEDとなってしまうとき、キャッシュを使用せず実行するためには、以下のコマンドでキャッシュを削除することが可能です。
$ docker builder prune -a
参考)https://docs.docker.com/reference/cli/docker/builder/prune/
今回は、Volumesの削除については触れていません。
誤って重要なデータを削除されることのないようご注意ください。