Contenido

Tutorial de comandos de Docker: guía rápida para trabajar con contenedores e imágenes

Esta página reúne los comandos de Docker más usados a diario y se basa en Docker 29. Para ver la explicación detallada y la salida real de cada comando, selecciona el enlace de su sección. La última sección reúne los errores frecuentes detectados al probar este tutorial.

Contenedores

ComandoDescripción
docker run -d --name web -p 8080:80 nginx:1.30Ejecutar un contenedor en segundo plano y asignar un puerto
docker run -it --rm ubuntu:26.04 bashEjecutarlo de forma interactiva y eliminarlo automáticamente al terminar
docker psMostrar los contenedores en ejecución
docker ps -aMostrar todos los contenedores
docker stop webDetener un contenedor
docker start webIniciar un contenedor detenido
docker restart webReiniciar un contenedor
docker rm webEliminar un contenedor detenido
docker rm -f webForzar la eliminación de un contenedor en ejecución
docker logs -f webSeguir los registros del contenedor
docker logs --tail 100 webMostrar las últimas 100 líneas de los registros
docker exec -it web shAbrir el shell del contenedor
docker cp web:/path/file .Copiar un archivo del contenedor al host
docker inspect webConsultar los detalles del contenedor
docker statsVer el uso de recursos en tiempo real
docker top webMostrar los procesos del contenedor
docker port webConsultar la asignación de puertos
docker update --restart unless-stopped webCambiar la política de reinicio
docker run --init ...Usar un init pequeño como PID 1 para reenviar correctamente las señales de detención

Más información: Opciones de docker run, Ciclo de vida de los contenedores, Consultar registros y depurar

Imágenes

ComandoDescripción
docker imagesMostrar las imágenes locales
docker images --treeMostrar las plataformas incluidas en imágenes multiplataforma
docker pull nginx:1.30Descargar una imagen
docker tag myapp user/myapp:1.0Añadir un nombre o una etiqueta
docker push user/myapp:1.0Enviar la imagen a un Registry
docker rmi nginx:1.30Eliminar una imagen
docker history nginx:1.30Consultar las capas
docker buildx imagetools inspect nginx:1.30-alpineConsultar las plataformas compatibles con una imagen remota
docker save -o img.tar myappExportar a un archivo
docker load -i img.tarImportar desde un archivo
docker login / docker logoutIniciar sesión / cerrar sesión en un Registry

Más información: Imágenes, Enviar una imagen a Docker Hub

Compilación

ComandoDescripción
docker build -t myapp .Construir una imagen con el Dockerfile de la carpeta actual
docker build -f Dockerfile.prod -t myapp .Especificar el Dockerfile
docker build --no-cache -t myapp .No usar la caché
docker build --pull -t myapp .Volver a descargar la imagen base
docker build --target dev -t myapp:dev .Construir solo hasta una etapa concreta
docker build --build-arg VERSION=1.2 .Pasar un argumento de compilación (no lo uses para pasar contraseñas)
docker build --secret id=token,env=TOKEN .Pasar un secreto para la compilación; no quedará en la imagen
docker build --progress plain .Mostrar toda la salida de la compilación
docker buildx build --platform linux/amd64,linux/arm64 -t user/app --push .Construir para varias plataformas y enviar la imagen

Más información: Referencia de instrucciones de Dockerfile, Caché de compilación y optimización, Compilaciones multietapa, Imágenes multiplataforma

Volume

ComandoDescripción
docker volume create dataCrear un Volume
docker volume lsMostrar los Volume
docker volume inspect dataConsultar los detalles
docker volume rm dataEliminar un Volume
docker run -v data:/app/data myappMontar un Volume con nombre
docker run -v "$(pwd):/app" myappMontar la carpeta actual

Más información: Volume y persistencia de datos

Redes

ComandoDescripción
docker network create appnetCrear una red personalizada
docker network lsMostrar las redes
docker network inspect appnetConsultar los contenedores de la red
docker run --network appnet --name db postgres:18Conectar un contenedor a la red
docker network connect appnet webConectar un contenedor en ejecución a la red
docker network rm appnetEliminar una red

Más información: Redes y comunicación entre contenedores

Docker Compose

ComandoDescripción
docker compose up -dIniciar todos los servicios en segundo plano
docker compose up -d --buildReconstruir y luego iniciar los servicios
docker compose up -d --waitEsperar a que todos los servicios estén healthy antes de terminar
docker compose up -d appActualizar o reconstruir un solo servicio
docker compose downDetener y eliminar los contenedores y las redes
docker compose down -vEliminar también los Volume
docker compose psConsultar el estado de los servicios
docker compose logs -f appSeguir los registros de un servicio
docker compose exec app shAbrir el contenedor del servicio
docker compose run --rm app npm testEjecutar un comando puntual
docker compose pullDescargar las imágenes más recientes
docker compose restart appReiniciar el servicio (no aplica los cambios de configuración)
docker compose watchSincronizar o reconstruir automáticamente cuando cambien los archivos (para desarrollo)
docker compose --profile tools up -dIniciar también los servicios del perfil
docker compose configComprobar la configuración final

Más información: Introducción a Docker Compose, Comandos de docker compose

Limpieza

ComandoDescripción
docker system dfConsultar el espacio utilizado
docker container pruneEliminar los contenedores detenidos
docker image prune -aEliminar las imágenes sin usar
docker builder pruneLimpiar la caché de compilación
docker builder prune --filter until=168hLimpiar solo la caché de compilación que no se ha usado en más de 7 días
docker volume pruneEliminar los Volume anónimos sin usar
docker volume prune -aEliminar todos los Volume sin usar, incluidos los datos de bases de datos con nombre
docker system pruneLimpiar varios recursos (sin incluir Volume)
docker system prune --volumesLimpiar varios recursos y añadir los Volume anónimos (desde Docker 23 no incluye los Volume con nombre)

Más información: Liberar espacio en disco

Información del sistema

ComandoDescripción
docker versionVersiones del cliente y del servidor
docker infoInformación del sistema Docker
docker eventsEventos en tiempo real
docker context lsMostrar los entornos Docker a los que puedes conectarte

Resumen de opciones frecuentes

OpciónSignificado
-dEjecutar en segundo plano
-itModo interactivo + terminal
-p host:contenedorAsignación de puertos
-v origen:ruta-en-contenedorMontaje
-e KEY=VALUEVariable de entorno
--nameNombre del contenedor
--rmEliminar automáticamente al terminar
--networkEspecificar la red
--restartPolítica de reinicio
-fForzar (rm, rmi) o seguir (logs)

Errores frecuentes (detectados al probar este tutorial)

SíntomaCausa y soluciónSección
docker stop tarda 10 segundosEl programa es PID 1 y no procesa SIGTERM. Procésala en el programa o añade --initAplicación Node.js
Al usar el nombre de contenedor web, la conexión va a 127.0.53.53.web es un dominio de nivel superior y el nombre se resuelve como un dominio externo. Usa otro nombreOpciones de docker run
postgres:18 se cierra al iniciarseLa versión 18 requiere montar /var/lib/postgresql, no /var/lib/postgresql/dataPostgreSQL
Se informa que la base de datos está healthy antes de estar listaAñade -h 127.0.0.1 a pg_isready y mysqladmin pingMySQL, PostgreSQL
La comprobación de estado sigue pasando aunque la contraseña de Redis sea incorrectaCuando redis-cli ping falla, el código de salida sigue siendo 0; añade | grep -q PONGRedis
Cambiar MYSQL_ROOT_PASSWORD no tiene efectoLa variable de contraseña solo se usa durante la inicialización inicialMySQL
El archivo de configuración cambió, pero el contenedor sigue teniendo la versión antiguaAl montar un solo archivo, el editor lo reemplaza al guardar. Reinicia el contenedor o monta la carpetaNginx
Los valores de --env-file incluyen comillasdocker run --env-file no quita las comillas; env_file de Compose síVariables de entorno
El secreto eliminado con rm sigue en la imagenCada capa conserva el contenido; ARG y ENV también son visibles. Usa --secretPrácticas recomendadas de seguridad
exec format errorLa arquitectura de CPU no coincide; usa --platform o una compilación multiplataformaImágenes multiplataforma

Preguntas frecuentes

¿Qué hago si no consigo recordar tantos comandos?

Empieza por recordar run, ps, logs, exec, stop, rm, build y compose up/down; cuando necesites los demás, consulta esta página o docker comando --help.

¿Dónde encuentro todos los parámetros de cada comando?

Encontrarás los parámetros completos y ejemplos de los comandos más usados en la categoría «Referencia de comandos», por ejemplo, [docker build](/es/docker/docker-build/) y [docker ps](/es/docker/docker-ps/).

Actualizado 14 de octubre de 2026