Cómo usar docker create: qué es, para qué sirve y diferencia con docker run

| Última modificación: 1 de junio de 2026 | Tiempo de Lectura: 5 minutos
Premios Blog KeepCoding 2025

Contribuyo a acercar la realidad del sector tecnológico a nuevos profesionales, combinando conocimiento práctico, visión de mercado y experiencia directa en procesos de transformación profesional.

La mayoría de los desarrolladores que empiezan con Docker aprenden docker run y lo usan para todo. Tiene sentido: en el 90% de los casos es el comando correcto. Pero entender que docker run es en realidad la combinación de tres operaciones distintas, y que se puede ejecutar cada una por separado, abre un nivel de control sobre el ciclo de vida de los contenedores que resulta útil en escenarios concretos.

El comando docker create es uno de esos tres pasos. Esta guía explica qué hace exactamente, cuándo tiene sentido usarlo y cómo se relaciona con el resto de comandos del ciclo de vida de un contenedor.

Para entender el contexto completo donde encaja docker create, el artículo sobre qué es Docker cubre la arquitectura de contenedores e imágenes desde los fundamentos.


docker run = docker pull + docker create + docker start

Este es el concepto más importante para entender docker create. Cuando ejecutas docker run, Docker realiza tres operaciones en secuencia:

Las tres fases de docker run
Fase Comando equivalente Qué ocurre
1. Obtención docker pull Descarga la imagen si no existe localmente
2. Creación docker create Prepara el contenedor: asigna ID, configura red, volúmenes y variables de entorno. No consume CPU ni RAM.
3. Arranque docker start Arranca el proceso principal del contenedor. Empieza a consumir recursos.

docker create ejecuta únicamente la segunda fase. El contenedor queda preparado en disco con toda su configuración pero sin arrancarse, sin consumir CPU ni RAM. El proceso principal no se ejecuta hasta que se llama a docker start.

Qué es docker create

docker create

docker create crea un nuevo contenedor a partir de una imagen y lo deja en estado Created. Es como preparar todos los ingredientes de una receta antes de ponerlos al fuego: todo está listo, pero el proceso de cocción todavía no ha empezado.

🔴 ¿Quieres entrar de lleno al mundo DevOps & Cloud Computing? 🔴

Descubre el DevOps & Cloud Computing Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en DevOps & Cloud Computing por una semana

La sintaxis es idéntica a docker run, con las mismas opciones disponibles:

docker create [opciones] imagen [comando] [argumentos]

# Ejemplo básico
docker create --name mi-contenedor nginx:alpine

# Con mapeo de puertos y variables de entorno
docker create \
  --name mi-app \
  -p 3000:3000 \
  -e NODE_ENV=production \
  -v datos:/app/data \
  miapp:latest

Al ejecutarse, docker create devuelve el ID completo del contenedor creado:

$ docker create --name mi-contenedor nginx:alpine
a3f5c8e9d2b14f7a6c0e1d3b5f8a2c4e6d8f0b2a4c6e8d0f2b4a6c8e0d2f4b6

El ciclo de vida completo: create, start, stop, rm

Entender docker create es entender el ciclo de vida completo de un contenedor. Los estados por los que pasa un contenedor son:

Estados del contenedor

Created: configurado, no arrancado.

Running: proceso principal en ejecución.

Paused: proceso suspendido.

Stopped/Exited: proceso terminado.

Removed: eliminado del sistema.

Comandos de transición

docker create → Created

docker start → Running

docker stop → Stopped

docker pause → Paused

docker rm → Removed

Un contenedor en estado Created es visible con docker ps -a pero no aparece en docker ps (que solo muestra los que están en estado Running).

# Crear el contenedor
docker create --name mi-app -p 3000:3000 miapp:latest

# Verificar que está en estado Created
docker ps -a
# CONTAINER ID  IMAGE         STATUS    NAMES
# a3f5c8e9d2b1  miapp:latest  Created   mi-app

# Arrancarlo
docker start mi-app

# Verificar que está en Running
docker ps
# CONTAINER ID  IMAGE         STATUS        NAMES
# a3f5c8e9d2b1  miapp:latest  Up 2 seconds  mi-app

Diferencia entre docker create y docker run

La diferencia práctica más importante:

docker create vs docker run
Característica docker create docker run
¿Arranca el contenedor? No — estado Created Sí — estado Running
Consume CPU/RAM No
Devuelve ID del contenedor Output del proceso
Necesita docker start Sí para ejecutarse No — ya está en marcha
Cuándo usar Control granular del arranque Caso general: crear y arrancar inmediatamente

Cómo arrancar un contenedor creado con docker start

Una vez creado el contenedor con docker create, se arranca con docker start:

# Arrancar por nombre
docker start mi-contenedor

# Arrancar por ID (el ID devuelto por docker create)
docker start a3f5c8e9d2b1

# Arrancar y adjuntar la salida estándar (ver logs en tiempo real)
docker start -a mi-contenedor

# Arrancar en modo interactivo con terminal
docker start -ai mi-contenedor

El flag -a (attach) conecta la terminal actual a la salida estándar del contenedor, equivalente al comportamiento por defecto de docker run sin el flag -d.

Cuándo usar docker create en lugar de docker run

En la práctica, docker create tiene casos de uso específicos donde aporta valor sobre docker run.

Obtener el ID antes de arrancar

En scripts de automatización a veces se necesita el ID del contenedor para configuraciones adicionales antes de arrancarlo:

# Obtener el ID del contenedor creado
CONTAINER_ID=$(docker create --name mi-app miapp:latest)
echo "Contenedor creado: $CONTAINER_ID"

# Hacer algo con el ID (copiar archivos, configurar, etc.)
docker cp ./config.json $CONTAINER_ID:/app/config.json

# Arrancarlo cuando esté listo
docker start $CONTAINER_ID

Copiar archivos al contenedor antes de arrancarlo

El comando docker cp funciona con contenedores en estado Created. Esto permite inyectar archivos de configuración en el contenedor antes de su primer arranque, sin necesidad de incluirlos en la imagen:

docker create --name mi-app miapp:latest
docker cp ./configuracion-produccion.json mi-app:/app/config.json
docker start mi-app

Pre-crear contenedores en pipelines

En pipelines de CI/CD complejos, crear los contenedores en una fase y arrancarlos en otra permite paralelizar el proceso de preparación y reducir los tiempos de ejecución.

Opciones principales de docker create

docker create acepta las mismas opciones que docker run. Las más usadas:

docker create \
  --name nombre-contenedor \      # Nombre del contenedor
  -p 3000:3000 \                   # Mapeo de puertos (host:contenedor)
  -e VARIABLE=valor \              # Variables de entorno
  -v volumen:/ruta/contenedor \    # Volúmenes
  -v $(pwd):/app \                 # Bind mount
  --network nombre-red \           # Red Docker
  --restart unless-stopped \       # Política de reinicio
  --memory 512m \                  # Límite de memoria
  imagen:tag

Gestión de contenedores creados: ver, eliminar y reutilizar

# Ver todos los contenedores (incluidos los en estado Created)
docker ps -a

# Filtrar solo los contenedores en estado Created
docker ps -a -f status=created

# Eliminar un contenedor en estado Created
docker rm mi-contenedor

# Eliminar todos los contenedores detenidos o en Created
docker container prune

Un contenedor en estado Created ocupa espacio en disco aunque no consuma CPU ni RAM. Si ya no se necesita, es buena práctica eliminarlo. Para una guía completa sobre eliminación de contenedores, el artículo sobre cómo usar docker rm cubre todas las variantes del comando.

Para el despliegue completo de aplicaciones incluyendo la gestión del ciclo de vida, el artículo sobre despliegue de aplicaciones locales con Docker cubre el proceso de extremo a extremo.

Conoce la historia de Esther López
«

Esther llegó al Bootcamp DevOps de KeepCoding desde la psicología y los recursos humanos, sin base técnica previa. Necesitaba entender desde dentro cómo funcionan los contenedores Docker: no solo los comandos, sino el modelo mental detrás de cada uno.

Hoy trabaja como DevOps Engineer en un proyecto bancario de gran escala. Lo que más valoró fue que el programa le enseñó a pensar en términos de infraestructura como código, no solo a memorizar comandos.

«
Leer el caso de éxito completo de Esther López

Cómo aprender Docker a nivel profesional

docker create

Entender la diferencia entre docker create y docker run es entender el ciclo de vida de un contenedor. Ese conocimiento marca la diferencia entre usar Docker como una caja negra y entender qué ocurre realmente en cada paso: cuándo el contenedor existe en disco sin consumir recursos, cuándo empieza a ejecutarse y cómo se gestiona ese ciclo en entornos de producción con orquestadores como Kubernetes.

Sobre el Bootcamp DevOps de KeepCoding: Docker y el ciclo de vida completo de los contenedores son módulos fundamentales del programa. Los alumnos aprenden a gestionar contenedores en todos sus estados e integrar ese conocimiento en pipelines CI/CD reales. Los profesores son ingenieros DevOps en activo. Duración 6 meses, tasa de empleabilidad del 100%.

Para aprender Docker con proyectos reales y profesores en activo, el DevOps y Cloud Computing Full Stack Bootcamp de KeepCoding cubre el recorrido completo en 6 meses.



Conclusión

bootcamp devops

docker create es la mitad de docker run: crea el contenedor con toda su configuración pero sin arrancarlo. Es un comando de uso menos frecuente que docker run, pero entenderlo es entender el ciclo de vida completo de un contenedor Docker. DevOps y Cloud Computing Full Stack Bootcamp de KeepCoding.

Su utilidad práctica principal es cuando se necesita el ID del contenedor antes de arrancarlo, cuando se quieren copiar archivos al contenedor antes de su primer arranque o cuando el arranque depende de condiciones externas que todavía no se han cumplido.

En el día a día, docker run sigue siendo el comando para la gran mayoría de los casos. Pero saber que docker run = docker create + docker start cambia la forma en que se entiende lo que Docker hace internamente

La referencia oficial de docker create con todas sus opciones disponibles está en docs.docker.com/reference/cli/docker/container/create/.

Noticias recientes del mundo tech

¡CONVOCATORIA ABIERTA!

Bootcamp devops & cloud computing

Clases en Directo | Acceso a +600 empresas | Empleabilidad de 99,36%

Descárgate también el informe de tendencias en el mercado laboral 2026.

Fórmate con planes adaptados a tus objetivos y logra resultados en tiempo récord.
KeepCoding Bootcamps
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.