Capas y caché de compilación
Cada instrucción de un Dockerfile crea una capa (layer). Docker guarda las capas en una caché, y reutiliza una capa ya lista solo si ella y todo lo que está encima no cambiaron. Por eso el orden importa: se ordenan las instrucciones de lo que menos cambia a lo que más cambia, copiando el manifiesto
Imagina una pila de láminas transparentes, una encima de otra. Cuando cambias una lámina cerca de la parte de arriba, todas las láminas encima de ella se reimprimen — pero las láminas debajo se quedan exactamente como estaban.
- capa
- El resultado de una sola instrucción de un Dockerfile — un cambio diferencial en el sistema de archivos apilado encima de las capas anteriores y guardado en la caché.
- build cache
- El conjunto de capas guardadas de una construcción anterior; Docker las reutiliza para saltarse instrucciones que no cambiaron y acortar el tiempo de construcción.
- invalidación de caché
- El momento en que la entrada de una instrucción cambia (por ejemplo, un archivo que copia), lo que obliga a esa instrucción y a todas las que le siguen a ejecutarse de nuevo en lugar de tomarse de la caché.