Capas y optimización de imágenes
Descubra cómo se estructuran por capas las imágenes de Docker y aplique técnicas para optimizar su tamaño y los tiempos de compilación.
Capas y optimización de imágenes es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp incluye 4 lecciones en total.
Capas de imagen: bloques de construcción
Las imágenes de Docker no son un único archivo enorme. En su lugar, se construyen a partir de una serie de capas de solo lectura. Imagine estas capas como transparencias apiladas.
Cada capa representa un cambio en la imagen, lo que hace que las imágenes sean eficientes y flexibles. Esta estructura en capas es fundamental para el funcionamiento de Docker.

Instrucciones de Dockerfile y capas
Cuando escribe un Dockerfile, casi todas las instrucciones crean una capa nueva sobre la anterior. Instrucciones como FROM, RUN, COPY y ADD contribuyen a crear nuevas capas.
Docker ejecuta estas instrucciones secuencialmente y crea cada capa nueva a partir del estado de la anterior.
Inspección del historial de la imagen
Puede ver las capas que componen una imagen mediante el comando docker history. Este comando muestra cada instrucción, su tamaño y cuándo se creó, lo que le ayuda a comprender cómo creció la imagen.
Es una herramienta muy útil para depurar problemas relacionados con el tamaño de las imágenes.
docker history my-image:latestEl poder de la caché de capas
Docker utiliza una caché de compilación inteligente. Si una instrucción de su Dockerfile y su contexto (por ejemplo, los archivos que se copian) no han cambiado desde la última compilación, Docker reutiliza la capa existente.
Esta reutilización acelera considerablemente las compilaciones posteriores, ya que Docker no necesita volver a ejecutar los pasos que no han cambiado.
Optimización 1: orden inteligente de las capas
El orden de las instrucciones en su Dockerfile es crucial para aprovechar la caché. Coloque al principio las instrucciones que cambian con poca frecuencia (como la instalación de dependencias del sistema).
Las instrucciones que cambian a menudo (como la copia del código de la aplicación) deben colocarse más abajo. De este modo, si solo cambia el código, Docker puede reutilizar las capas en caché correspondientes a las dependencias estables.
Ejemplo: optimización del orden de las capas
Compare estos dos fragmentos de Dockerfile. El orden correcto coloca primero las dependencias estables, lo que permite que Docker las almacene en caché y solo vuelva a crear las capas correspondientes al código de la aplicación que cambia.
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["node", "server.js"]Optimización 2: consolidación de comandos RUN
Cada comando RUN suele crear una capa nueva. Puede reducir el número de capas y, a menudo, el tamaño final de la imagen combinando varios comandos en una sola instrucción RUN.
Utilice el operador && \ para encadenar comandos y convertirlos en parte de una única capa atómica.
Ejemplo: encadenamiento de comandos RUN
En lugar de utilizar varios comandos RUN, encadénelos con && \. Así creará una única capa más eficiente para todas estas operaciones.
FROM ubuntu:latest
RUN apt-get update && \
apt-get install -y curl && \
rm -rf /var/lib/apt/lists/*
CMD ["bash"]Optimización 3: limpieza de archivos
Limpie siempre los archivos que solo sean necesarios durante el proceso de compilación. Por ejemplo, las cachés de los gestores de paquetes (como apt-get clean) o los artefactos temporales de compilación pueden aumentar considerablemente el tamaño de las capas de la imagen.
Limpiarlos dentro del mismo comando RUN que los creó garantiza que no persistan en una capa anterior.
Comprobación rápida: optimización de imágenes
Considere el siguiente fragmento de Dockerfile:
FROM alpine:latest
COPY . /app
RUN apk add --no-cache git
RUN apk add --no-cache make
CMD ["sh"]¿Cuál de los siguientes cambios optimizaría mejor este Dockerfile para reducir el tamaño de la imagen y posiblemente acelerar las reconstrucciones?
Recapitulación: imágenes más ligeras y rápidas
Ha aprendido que las imágenes de Docker se construyen en capas y que cada instrucción suele crear una nueva. Comprender esto es fundamental para optimizarlas.
- Ordene las instrucciones cuidadosamente para maximizar los aciertos de la caché de compilación.
- Combine varios comandos
RUNen uno para reducir el número de capas. - Limpie los archivos temporales dentro de los comandos
RUNcorrespondientes para mantener las capas pequeñas.
Estas técnicas ayudan a crear imágenes de Docker más pequeñas y rápidas de compilar, esenciales para realizar implementaciones eficientes.
Preguntas frecuentes
¿La lección «Capas y optimización de imágenes» es gratis?
Sí — el texto completo de «Capas y optimización de imágenes» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp incluye 4 lecciones en total.
¿Qué aprenderé en «Capas y optimización de imágenes»?
Descubra cómo se estructuran por capas las imágenes de Docker y aplique técnicas para optimizar su tamaño y los tiempos de compilación. Practicas DevOps Bootcamp con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar DevOps Bootcamp?
No se requiere experiencia previa. DevOps Bootcamp en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Capas y optimización de imágenes»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de DevOps Bootcamp?
Sí. Cada lección de DevOps Bootcamp incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Comprensión de los Dockerfiles
- Creación de imágenes de Docker personalizadas
- Capas y optimización de imágenes
- Builds multietapa e imágenes más pequeñas