dockerのイメージキャッシュを無効にする方法【docker入門】
Sal
docker Dockerは、イメージの構築を高速化するために、各レイヤーもキャッシュします。このcachingは効率的なワークフローにとって非常に重要ですが、やや不便な場面もあります。

dockerのイメージキャッシュを無効にする方法【docker入門】

  1. dockerのキャッシュの仕組み
  2. dockerのキャッシュの問題点
  3. dockerのキャッシュを無効にする方法1
  4. dockerのイメージキャッシュを無効にする方法2
  5. 備考
## dockerのキャッシュの仕組み
Dockerは、イメージの構築を高速化するために、各レイヤーもキャッシュします。 このcachingは効率的なワークフローにとって非常に重要ですが、やや不便な場面もあります。 キャッシュは次の場合に命令に使用されます。 - 前の命令がキャッシュで見つかる。 - キャッシュ内に、まったく同じ命令と親レイヤーを持つレイヤーがあります(スプリアススペースでさえキャッシュを無効にします)。 また、COPYおよびADD命令の場合、次の場合にキャッシュが無効になります。 - いずれかのファイルのチェックサムが変更 - またはメタデータが変更されました。 これは、**同じ結果が保証されていないRUN命令を意味します。**
## dockerのキャッシュの問題点
dockerのキャッシュの仕組みにより**同じ結果が保証されていないRUN命令を意味します。** dockerでは複数の呼び出しにわたって、引き続きキャッシュされます。 あなたがdocker buildのコマンドを実行する場合は特にこれに注意してください。(キャッシュを無効にしたdocker buildを行わない限り、致命的な変更が放置されてしまいます。) 例えば、以下の命令をdockerfile内部でRUNしたとします。 - ファイルをダウンロードする - apt-get updateを実行する - ソースリポジトリのクローンを作成します。 これらの命令に一度成功した後、docker buildを行わない限りはキャッシュが保存されてしまいます。 その結果、半年後に新しい環境でdocker buildの実行時に動かなくなることもなくはないのです・
## dockerのキャッシュを無効にする方法1
キャッシュを無効にする必要がある場合は、-no-cacheを使用してdocker buildを実行できます。

docker build --no-chache ~~~
## dockerのイメージキャッシュを無効にする方法2
dockerfileに次の命令を追加または変更することでもキャッシュの無効化ができます

ENV UPDATED_ON "14:12 17 February 2015"
RUN git clone....
しかし、後のユーザーを混乱させる傾向があるため、この手法の使用はお勧めしません。 特に、イメージレイヤーが線が示唆するのとは異なる日付で作成された場合。
## 備考
title:dockerのイメージキャッシュを無効にする方法【docker入門】 description:Dockerは、イメージの構築を高速化するために、各レイヤーもキャッシュします。このcachingは効率的なワークフローにとって非常に重要ですが、やや不便な場面もあります。 img:https://www.oreilly.co.jp/books/images/picture_large978-4-87311-776-8.jpeg category_script:True