Compartir comentarios
Las respuestas se generan en base a la documentación.

Laboratorio: Construcción de imágenes de contenedores

Toma un Dockerfile que funciona pero es rudimentario y mejóralo progresivamente hasta convertirlo en una imagen de nivel de producción. Cada sección presenta una técnica, aplicada a una aplicación Python Flask real, para que puedas ver el impacto directamente.

Iniciar el laboratorio

  1. Inicia el labspace:

    $ docker compose -p labspace -f oci://dockersamples/labspace-building-images up -d
    
  2. Abre tu navegador en http://localhost:3030.

  3. Cuando hayas terminado, elimina el labspace:

    $ docker compose -p labspace down
    

Qué aprenderás

Al final de este Labspace, habrás completado lo siguiente:

  • Leer el historial de capas de una imagen y comprender la trampa de la limpieza de capas.
  • Reestructurar un Dockerfile para obtener construcciones incrementales rápidas y eficientes con la caché.
  • Escribir un archivo .dockerignore y ejecutar contenedores como un usuario no raíz (non-root).
  • Utilizar construcciones multi-etapa para ejecutar pruebas como una puerta de validación de construcción y reducir drásticamente el tamaño de la imagen.
  • Elegir la imagen base adecuada para producción, incluyendo las Imágenes Endurecidas de Docker (Docker Hardened Images).
  • Inyectar secretos de forma segura en tiempo de construcción usando --mount=type=secret.

Módulos

#MóduloDescripción
1Bienvenida y tu primera construcciónExplora la aplicación de ejemplo y construye la imagen inicial
2Comprendiendo las capas de la imagenInspeccionar las capas con docker history y ver la trampa de la limpieza de capas
3Mejores prácticas de DockerfileCorregir el orden de la caché, agregar .dockerignore y cambiar a un usuario no raíz
4Construcciones multi-etapaEjecutar pruebas como una puerta de validación y usar una base delgada para la etapa de producción
5Elegir una imagen baseComparar imágenes delgadas, Alpine e Imágenes Endurecidas de Docker
6Secretos de construcciónMostrar por qué ARG filtra secretos y usar --mount=type=secret de forma segura
7CierreRevisar la lista completa de mejores prácticas y los siguientes pasos