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の削除については触れていません。
誤って重要なデータを削除されることのないようご注意ください。