Chuleta de Docker — Comandos y Compose

Los comandos de Docker y Docker Compose que usas cada semana, explicados en una línea. Define una vez tu imagen, contenedor, puertos y servicio: cada comando se actualiza y queda listo para copiar.

Actualizado el
Tus valoresCada ejemplo de abajo se actualiza mientras escribes

Imágenes

10
docker pull node:22-alpine

Descarga una imagen desde un registro.

docker image ls

Lista las imágenes locales con su tamaño.

docker build -t myapp:1.0 .

Construye una imagen a partir del Dockerfile de la carpeta actual.

docker build -t myapp:1.0 -f Dockerfile.prod .

Construye con otro Dockerfile.

docker build --no-cache -t myapp:1.0 .

Reconstruye todas las capas desde cero.

docker buildx build --platform linux/amd64,linux/arm64 -t ghcr.io/acme/myapp:1.0 --push .

Construye para Intel y ARM (p. ej. Apple Silicon, Graviton) y sube ambas.

docker tag myapp:1.0 ghcr.io/acme/myapp:1.0

Asigna a una imagen un nombre de registro antes de subirla.

docker push ghcr.io/acme/myapp:1.0

Sube una imagen a un registro.

docker history myapp:1.0

Muestra las capas de una imagen y su tamaño.

docker rmi myapp:1.0

destructivo Elimina una imagen local.

Ejecutar contenedores

8
docker run -d --name web -p 8080:3000 myapp:1.0

Ejecuta en segundo plano y publica el puerto {{cport}} del contenedor en el puerto {{hport}} del host.

docker run --rm -it node:22-alpine sh

Abre una shell interactiva temporal; el contenedor se elimina al salir.

docker run -d --restart unless-stopped --name web myapp:1.0

Se reinicia automáticamente tras fallos y reinicios del sistema.

docker run --env-file .env -e NODE_ENV=production myapp:1.0

Pasa variables de entorno desde un archivo y desde la línea de comandos.

docker run -v app-data:/data myapp:1.0

Monta un volumen con nombre para que los datos sobrevivan a la eliminación del contenedor.

docker run --rm -v "$(pwd)":/app -w /app node:22-alpine npm test

Monta la carpeta actual y ejecuta un comando dentro.

docker run --memory 512m --cpus 1.5 myapp:1.0

Limita la memoria y la CPU.

docker run -d --network app-net --name web myapp:1.0

Conéctalo a una red definida por el usuario para que los contenedores se encuentren por nombre.

Gestionar contenedores

10
docker ps -a

Lista todos los contenedores, incluidos los detenidos.

docker logs -f --tail 100 web

Sigue las últimas 100 líneas del log.

docker exec -it web sh

Abre una shell en un contenedor en ejecución (usa bash si la imagen lo incluye).

docker stop web

Detén de forma ordenada (SIGTERM y, tras 10 s, SIGKILL).

docker restart web

Reinicia un contenedor.

docker cp web:/app/logs ./logs

Copia archivos desde un contenedor (invierte los argumentos para copiar hacia dentro).

docker stats

Uso en tiempo real de CPU, memoria, red y disco de los contenedores en ejecución.

docker inspect -f '{{.State.Health.Status}}' web

Lee un campo de los detalles del contenedor; aquí, el estado del health check.

docker port web

Muestra qué puertos del host apuntan al contenedor.

docker rm -f web

destructivo Detiene y elimina un contenedor.

Docker Compose

12
docker compose up -d

Inicia todos los servicios en segundo plano.

docker compose up -d --build

Reconstruye las imágenes y luego inicia.

docker compose ps

Lista los servicios y su estado.

docker compose logs -f api

Sigue los logs de un servicio.

docker compose exec api sh

Abre una shell en un servicio en ejecución.

docker compose run --rm api npm run migrate

Ejecuta un comando puntual en un contenedor nuevo para un servicio.

docker compose restart api

Reinicia un servicio.

docker compose pull

Descarga las últimas imágenes de todos los servicios.

docker compose config

Valida el archivo e imprime la configuración final combinada.

docker compose -f compose.yml -f compose.prod.yml up -d

Aplica un archivo de sobrescritura sobre el archivo base.

docker compose down

Detiene y elimina contenedores y redes (los volúmenes se conservan).

docker compose down -v

destructivo Elimina también los volúmenes: tus bases de datos se perderán.

Volúmenes y redes

6
docker volume ls

Lista los volúmenes.

docker volume inspect app-data

Muestra dónde está almacenado un volumen en el host.

docker run --rm -v app-data:/data -v "$(pwd)":/backup alpine tar czf /backup/app-data.tar.gz -C /data .

Haz una copia de seguridad de un volumen en un .tar.gz en la carpeta actual.

docker network create app-net

Crea una red para contenedores que necesitan comunicarse entre sí.

docker network connect app-net web

Conecta un contenedor en ejecución a una red.

docker volume rm app-data

destructivo Elimina un volumen y sus datos.

Liberar espacio en disco

5
docker system df

Muestra cuánto espacio ocupan imágenes, contenedores, volúmenes y caché de build.

docker builder prune

Elimina la caché de build no utilizada.

docker image prune -a

destructivo Elimina todas las imágenes que no usa ningún contenedor.

docker system prune

destructivo Elimina contenedores detenidos, redes sin usar, imágenes huérfanas y caché de build.

docker system prune -a --volumes

destructivo Elimina todo lo no utilizado, incluidos los volúmenes. Último recurso.

Depuración

5
docker run --rm -it --entrypoint sh myapp:1.0

Arranca una imagen con una shell en lugar de su comando habitual; útil para imágenes que fallan al iniciar.

docker logs web 2>&1 | grep -i error

Busca en los logs de un contenedor (stdout y stderr).

docker exec web env

Muestra las variables de entorno que realmente ve un contenedor.

docker compose exec api wget -qO- localhost:3000/health

Llama a un endpoint de salud desde dentro del servicio.

docker events --since 10m

Muestra en tiempo real los eventos recientes de Docker: inicios, paradas, cierres por OOM y cambios de salud.

Tus datos nunca salen de tu ordenador. Todo se procesa localmente en tu navegador.

Cómo usar: Chuleta de Docker

  1. Escribe tus propios valores (imagen, contenedor, puertos, servicio) en los campos de arriba: cada ejemplo de la página se actualiza al instante.
  2. Busca o salta a una sección para encontrar el comando que necesitas.
  3. Haz clic en Copiar para copiar una línea lista para ejecutar, o en Copiar sección para obtener un bloque comentado.
  4. Los comandos marcados como destructivos eliminan o sobrescriben datos: lee la nota antes de ejecutarlos.

Imágenes, contenedores, volúmenes y redes

Una imagen es un sistema de archivos empaquetado con su comando de arranque, creado a partir de un Dockerfile. Un contenedor es una copia en ejecución de una imagen. Todo lo que escribe un contenedor desaparece al eliminarlo, a menos que vaya a un volumen. Los contenedores que comparten una red definida por el usuario se encuentran entre sí por nombre, y así es como los servicios de Compose se comunican con su base de datos.

Cómo leer -p y -v

Ambos flags usan el formato host:contenedor. -p 8080:3000 significa «las peticiones al puerto 8080 de mi máquina van al puerto 3000 del contenedor». -v app-data:/data monta el volumen con nombre app-data en /data; -v "$(pwd)":/app monta en cambio tu carpeta actual, que es la forma de tener recarga de código en vivo durante el desarrollo.

Imágenes pequeñas y builds rápidos

  • Parte de bases ligeras como -alpine o -slim, y usa builds multi-stage para que los compiladores no lleguen a producción.
  • Copia primero los archivos de dependencias e instálalas antes de copiar el resto del código, para que la capa de instalación se mantenga en caché.
  • Añade un .dockerignore para node_modules, .git y la salida de build.

Crea tus archivos Compose con el generador de Docker Compose, y configura CI con el generador de GitHub Actions.

También se busca como: chuleta docker, comandos docker, comandos docker compose, lista de comandos docker, docker run, docker exec, docker prune, referencia docker.

Herramientas que combinan con: Chuleta de Docker

  • Chuleta de comandos Linux — Los comandos de Linux y bash que usan los desarrolladores en servidores y portátiles: archivos, búsqueda, permisos, procesos, logs, redes y SSH.
  • Chuleta de Git — Todos los comandos de Git que usas a diario, y los que necesitas cuando algo sale mal, explicados en una línea.
  • Generador de configuraciones de Nginx — Elige qué quieres que haga Nginx —servir una página web estática o una SPA, actuar como proxy para una aplicación de Node/Python o ejecutar PHP— y marca las opciones adicionales.
  • Prompts de IA para Desarrolladores — Prompts probados para las tareas de programación del día a día: depuración, revisiones, tests, refactorización, SQL, mensajes de commit y documentación.

Preguntas frecuentes

¿Cuál es la diferencia entre una imagen y un contenedor?
Una imagen es una plantilla de solo lectura creada a partir de un Dockerfile. Un contenedor es una instancia en ejecución (o detenida) de una imagen, con su propia capa escribible. Una misma imagen puede ejecutarse en muchos contenedores.
¿Cómo libero espacio en disco que usa Docker?
Revisa el uso con docker system df, después elimina la caché de build con docker builder prune y las imágenes sin usar con docker image prune -a. docker system prune elimina más de una vez: lee antes qué borra.
¿Se escribe docker compose o docker-compose?
Usa docker compose (con espacio). Es Compose v2, integrado en el CLI de Docker. La herramienta separada docker-compose v1 está obsoleta.
¿Por qué mis contenedores no se encuentran entre sí?
Los contenedores de la red bridge por defecto no se resuelven por nombre. Ponlos en una red definida por el usuario (docker network create) o en el mismo proyecto de Compose, y luego usa el nombre del servicio o del contenedor como hostname.
¿Puedo instalar Chuleta de Docker como aplicación web y utilizarla sin conexión?
Sí. Chuleta de Docker es una aplicación web instalable (PWA): se instala desde el navegador, no se descarga desde una tienda de aplicaciones. Haz clic en «Instalar aplicación» en la parte superior de esta página en Chrome o Edge (Windows, macOS, Linux, ChromeOS) o, en Android, utiliza «Compartir» → «Añadir a la pantalla de inicio» en iPhone y iPad, o «Archivo» → «Añadir al Dock» en Safari 17+ en un Mac. A continuación, se abrirá en su propia ventana con su propio icono y, como se ejecuta íntegramente en tu navegador, seguirá funcionando sin conexión. Firefox en el ordenador de sobremesa no permite instalar aplicaciones web. Cómo funciona la instalación.

Herramientas relacionadas