はじめに Docker イメージをビルドしていく上で、イメージサイズ軽量化や並列実行はどこの環境でビルドするか気にしないで行うことができました。 しかし、キャッシュの仕組みは環境によっても異なるなど複雑です。 本記事では、キャッシュの種類について紹介します。 レイヤーキャッシュ Docker イメージは層が重なることによってできています。 RUN hogeの層の上にCOPY fugaの層があり、その上にENTRYPOINT piyoの層があるという風になっています。 イメージのレイヤー構造はdocker history で確認できます。 例えば、マルチステージビルドでビルドしたadachikun/qiitatohatenaは以下のようになります。 さまざまなレイヤーが重なってイメージが構成されていることが分かります。 $ docker history 4a57f4eb178a IMAGE
![Dockerイメージのビルドで使うキャッシュの種類 - レイヤーキャッシュ、BuildKitの--mount=type=cache - 🤖](https://cdn-ak-scissors.b.st-hatena.com/image/square/79d20f215f94ff2393e59450c1b28a418e6337b7/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fkotaroooo0%2F20200620%2F20200620172849.png)