Creación de imágenes de Docker personalizadas
Cree su primera imagen de Docker personalizada para una aplicación sencilla y etiquétela y versionela correctamente.
Creación de imágenes de Docker personalizadas es una lección gratuita de Docker & DevOps Fundamentals en CoddyKit. Esta es la lección 2 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 Docker & DevOps Fundamentals, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Docker & DevOps Fundamentals incluye 4 lecciones en total.
Cree su primera imagen de Docker
¿Por qué crear imágenes personalizadas? Le permiten empaquetar su aplicación específica, sus dependencias y su configuración en una sola unidad portátil. Esto es fundamental para mantener la coherencia y facilitar la implementación.
Usted define cómo crear esta imagen mediante un archivo llamado Dockerfile.

Nuestra sencilla aplicación web
Contenedorizaremos una aplicación web muy sencilla de Python Flask. Solo devuelve «Hello from Docker!» cuando visita su dirección web.
Imagine que tenemos estos archivos en un directorio:
app.py: el código de la aplicación Pythonrequirements.txt: enumera las dependencias de PythonDockerfile: instrucciones para crear la imagen
El código de la aplicación Flask
Esta es nuestra aplicación básica de Python con Flask. Escucha en el puerto 5000 y responde con "Hello from Docker!".
Puede ejecutarla localmente (después de instalar Flask) para verla en acción.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello from Docker!'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')Especificación de dependencias
Nuestra aplicación necesita la biblioteca Flask. La incluimos en requirements.txt. Este archivo indica a Docker (y al gestor de paquetes de Python, pip) qué debe instalar.
Esto garantiza que nuestra imagen tenga todas las bibliotecas necesarias para ejecutar la aplicación.
Flask==2.3.2Anatomía de nuestro Dockerfile
Un Dockerfile es un archivo de texto con instrucciones para crear una imagen. Cada instrucción crea una capa. Esto es lo que utilizaremos:
FROM: especifica la imagen base (por ejemplo, Python).WORKDIR: establece el directorio de trabajo dentro del contenedor.COPY: copia archivos de su máquina local a la imagen.RUN: ejecuta comandos (por ejemplo, para instalar dependencias).EXPOSE: informa a Docker sobre los puertos en los que escucha el contenedor.CMD: define el comando predeterminado que se ejecutará cuando se inicie el contenedor.
Creación del Dockerfile
Este es el Dockerfile completo de nuestra aplicación Flask. Coloque este archivo en el mismo directorio que app.py y requirements.txt.
# Use an official Python runtime as a parent image
FROM python:3.9-slim-buster
# Set the working directory in the container
WORKDIR /app
# Copy the current directory contents into the container at /app
COPY requirements.txt .
COPY app.py .
# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# Make port 5000 available to the world outside this container
EXPOSE 5000
# Run app.py when the container launches
CMD ["python", "app.py"]El comando `docker build`
Ahora vamos a crear nuestra imagen. Abra la terminal en el directorio donde se encuentran el Dockerfile y los archivos de la aplicación.
La opción -t etiqueta nuestra imagen con un nombre (my-flask-app) y una versión (1.0). El punto . indica a Docker que utilice el directorio actual como contexto de compilación.
docker build -t my-flask-app:1.0 .
Verificación de la nueva imagen
Cuando finalice la compilación, puede verificar que la nueva imagen existe mostrando una lista de todas las imágenes locales de Docker.
Busque my-flask-app con la etiqueta 1.0 en la salida.
docker images
Inicio del contenedor de la aplicación
Es hora de ver la aplicación en acción. Utilice docker run para crear e iniciar un contenedor a partir de la imagen.
-p 5000:5000 asigna el puerto 5000 de la máquina host al puerto 5000 dentro del contenedor. -d lo ejecuta en modo desacoplado (en segundo plano).
docker run -d -p 5000:5000 my-flask-app:1.0
Visite http://localhost:5000 en el navegador para ver "Hello from Docker!".
Buenas prácticas para etiquetar imágenes
Las etiquetas son fundamentales para gestionar distintas versiones de sus imágenes. Una práctica habitual consiste en utilizar versionado semántico (por ejemplo, 1.0.0, 2.1.5) y también una etiqueta latest.
Puede añadir varias etiquetas a una imagen mediante docker tag:
docker tag my-flask-app:1.0 my-flask-app:latest
Esto permite hacer referencia a la misma imagen con distintos nombres, lo que aporta flexibilidad en las implementaciones.
Comprobación rápida
Considere el siguiente Dockerfile y comando de compilación:
# Dockerfile content
FROM alpine:latest
WORKDIR /app
COPY . .
CMD ["echo", "Hello"]
docker build -t my-app:v1 .¿Cuál de las siguientes afirmaciones es VERDADERA sobre el comando docker build -t my-app:v1 .?
Recapitulación: imágenes personalizadas
¡Excelente trabajo! Ha aprendido a:
- Preparar una aplicación sencilla para contenerizarla.
- Escribir un
Dockerfilebásico utilizando instrucciones clave (FROM,WORKDIR,COPY,RUN,EXPOSE,CMD). - Crear una imagen personalizada de Docker mediante
docker build -t. - Verificar la imagen con
docker images. - Ejecutar un contenedor a partir de la imagen personalizada mediante
docker run -p. - Comprender la importancia de etiquetar y versionar las imágenes.
A continuación, profundizaremos en la estructura de las imágenes de Docker mediante capas y en las técnicas para optimizar su tamaño y los tiempos de compilación.
Preguntas frecuentes
¿La lección «Creación de imágenes de Docker personalizadas» es gratis?
Sí — el texto completo de «Creación de imágenes de Docker personalizadas» 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 Docker & DevOps Fundamentals, actualiza a CoddyKit PRO. El curso de Docker & DevOps Fundamentals incluye 4 lecciones en total.
¿Qué aprenderé en «Creación de imágenes de Docker personalizadas»?
Cree su primera imagen de Docker personalizada para una aplicación sencilla y etiquétela y versionela correctamente. Practicas Docker & DevOps Fundamentals 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 Docker & DevOps Fundamentals?
No se requiere experiencia previa. Docker & DevOps Fundamentals 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 2 de 4.
¿Cuánto tiempo toma la lección «Creación de imágenes de Docker personalizadas»?
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 Docker & DevOps Fundamentals?
Sí. Cada lección de Docker & DevOps Fundamentals 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