~/questoes/devops
Docker organiza imagens em camadas, onde cada instrução do Dockerfile cria uma nova camada. Quando você faz um novo build, Docker verifica se as camadas anteriores já existem no cache e as reutiliza, evitando reprocessar trabalho que já foi feito.
Docker reutiliza camadas em cache para acelerar builds subsequentes. Se você executar o build novamente e nenhuma instrução mudou, Docker não precisa refazer aquela camada, economizando tempo de processamento significativamente.
Esta é a razão principal. Cada instrução no Dockerfile cria uma camada, e Docker verifica o cache antes de processar. Se a instrução e seus inputs não mudaram, a camada em cache é reutilizada, tornando builds subsequentes muito mais rápidos.
O cache não é um mecanismo de segurança ou verificação de integridade. Docker usa assinaturas criptográficas para garantir que as camadas em cache não foram alteradas, mas essa não é a razão principal para reutilizar o cache.
Múltiplos containers já conseguem rodar a mesma imagem simultaneamente sem precisar do cache. O cache de camadas está relacionado ao processo de build, não à execução de containers.
O cache não remove instruções do Dockerfile. Ele apenas armazena o resultado de cada instrução já processada. Se você quer reduzir tamanho, precisa otimizar as instruções manualmente, não através do cache.