Comprensión de los Dockerfiles
Aprenda la sintaxis y las instrucciones habituales de los Dockerfiles para definir cómo se crea una imagen.
Comprensión de los Dockerfiles es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 1 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.
¿Qué es un Dockerfile?
Imagine que tiene una receta para hornear un pastel. ¡Un Dockerfile es muy parecido! Es un archivo de texto sin formato que contiene todas las instrucciones que Docker necesita para crear automáticamente una imagen de Docker.
En lugar de mezclar ingredientes, le indica a Docker qué sistema operativo base utilizar, qué software instalar y cómo configurar su aplicación dentro de la imagen.

Ventajas: automatización de compilaciones
Los Dockerfiles aportan muchas ventajas a su flujo de trabajo de desarrollo:
- Automatización: ¡Se acabaron los pasos manuales! Docker crea las imágenes de forma coherente cada vez.
- Control de versiones: Los Dockerfiles son código, por lo que puede realizar un seguimiento de los cambios mediante Git.
- Reproducibilidad: Cualquiera que tenga el Dockerfile puede crear exactamente la misma imagen.
- Transparencia: Puede ver exactamente qué contiene una imagen.
Estructura básica de un Dockerfile
Un Dockerfile es una lista de instrucciones que se ejecutan en orden, de arriba abajo. Cada instrucción crea una nueva capa en la imagen.
La sintaxis básica es sencilla:
INSTRUCTION argumentsLos comentarios comienzan con #, igual que en muchos lenguajes de programación. Las instrucciones de Docker no distinguen entre mayúsculas y minúsculas, pero por convención se escriben en mayúsculas.
Elegir una imagen base con FROM
Todo Dockerfile debe comenzar con la instrucción FROM. Esta especifica la imagen base sobre la que se creará la nueva imagen. Normalmente, esta imagen base contiene un sistema operativo, como Alpine Linux, y en ocasiones software preinstalado.
Considérela como el punto de partida: un lienzo en blanco o uno que ya tiene algunos colores básicos.
FROM alpine:latestEjecutar comandos con RUN
La instrucción RUN se utiliza para ejecutar comandos durante el proceso de creación de la imagen. Aquí puede instalar paquetes, crear directorios o compilar código.
Cada comando RUN crea una nueva capa, por lo que combinar comandos con && puede ayudar a reducir el tamaño de la imagen.
RUN apk update && apk add gitComando predeterminado con CMD
La instrucción CMD proporciona comandos o argumentos predeterminados para un contenedor en ejecución. A diferencia de RUN, los comandos CMD se ejecutan cuando un contenedor se inicia, no durante la compilación.
Si especifica un comando al ejecutar un contenedor (por ejemplo, docker run my-image ls), ese comando reemplazará la instrucción CMD.
CMD ["echo", "Hello from container!"]Añadir archivos con COPY
La instrucción COPY copia archivos o directorios nuevos desde su máquina host, donde está creando la imagen, al sistema de archivos de la imagen de Docker en una ruta especificada.
Por lo general, se prefiere a ADD porque es más transparente y solo copia archivos locales.
COPY ./app /usr/src/appDirectorio de trabajo y variables de entorno
WORKDIR establece el directorio de trabajo para las instrucciones RUN, CMD, ENTRYPOINT, COPY y ADD que aparecen después. Esto hace que el Dockerfile sea más claro.
ENV establece variables de entorno. Estas variables están disponibles para las instrucciones posteriores del Dockerfile y también para el contenedor en ejecución.
WORKDIR /app
ENV PORT=8080Informar sobre los puertos con EXPOSE
La instrucción EXPOSE informa a Docker de que el contenedor escucha en los puertos de red especificados durante la ejecución. En realidad, no publica el puerto.
Considérela como documentación. Para hacer que el puerto sea accesible desde fuera del contenedor, debe utilizar la opción -p con docker run.
EXPOSE 80
EXPOSE 443Su primer Dockerfile sencillo
¡Vamos a reunirlo todo! Este es un Dockerfile básico que configura una imagen de Alpine Linux, instala un paquete y define un comando predeterminado.
Para compilarlo, guárdelo como Dockerfile en un directorio vacío y ejecute docker build -t my-simple-app . en su terminal.
FROM alpine:latest
LABEL maintainer="CoddyKit"
RUN apk update && apk add --no-cache bash
WORKDIR /app
CMD ["bash", "-c", "echo 'Hello from my custom Alpine image!' && sleep 3600"]Cuestionario sobre las instrucciones de Dockerfile
¡Ponga a prueba sus conocimientos! ¿Cuáles de estas instrucciones se ejecutan durante el proceso de creación de la imagen y modifican directamente su contenido o estructura?
Repaso: conceptos esenciales de Dockerfile
¡Ha dado un gran paso para comprender las imágenes de Docker! Hemos aprendido que los Dockerfiles son archivos de texto con instrucciones para crear imágenes y que ofrecen grandes ventajas, como automatización y reproducibilidad.
Estas son las instrucciones principales:
FROM: define la imagen base.RUN: ejecuta comandos durante la compilación.CMD: establece el comando predeterminado para un contenedor en ejecución.COPY: añade archivos del host a la imagen.WORKDIR,ENV,EXPOSE: configuran la imagen y el entorno del contenedor.
Preguntas frecuentes
¿La lección «Comprensión de los Dockerfiles» es gratis?
Sí — el texto completo de «Comprensión de los Dockerfiles» 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 «Comprensión de los Dockerfiles»?
Aprenda la sintaxis y las instrucciones habituales de los Dockerfiles para definir cómo se crea una imagen. 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 1 de 4.
¿Cuánto tiempo toma la lección «Comprensión de los Dockerfiles»?
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