🐳 Guia de comandos Docker

Selecciona el comando que necesitas para copiarlo al portapapeles

📦 Gestión de Imágenes

$ docker images
Muestra todas las imágenes descargadas localmente con su tamaño, tag y ID único
$ docker pull [image name]
Descarga una imagen desde Docker Hub o registro personalizado sin crear contenedor
$ docker pull [image name]:[tag]
Descarga versión específica usando tags (ej: nginx:1.21, node:16-alpine)
$ docker pull --platform linux/x86_64 [image name]
Fuerza descarga para arquitectura x86_64, soluciona problemas en Apple M1/M2
$ docker rmi [image name]
Elimina imagen local permanentemente para liberar espacio en disco
$ docker image prune
Elimina automáticamente todas las imágenes sin usar y recupera espacio
$ docker build -t [image name] .
Construye imagen personalizada desde Dockerfile en directorio actual

🚀 Gestión de Contenedores

$ docker create [image name]
Crea contenedor desde imagen pero no lo ejecuta, útil para configurar antes de iniciar
$ docker run [image name]
Comando completo: descarga imagen, crea contenedor y lo ejecuta inmediatamente
$ docker run -d [image name]
Ejecuta contenedor en segundo plano sin bloquear la terminal actual
$ docker run -p27017:27017 --name MiMongo mongo
Mapea puerto 27017 del host al contenedor y asigna nombre personalizado
$ docker start [container id/name]
Reinicia contenedor previamente detenido usando ID o nombre asignado
$ docker stop [container id/name]
Detiene contenedor en ejecución de forma segura enviando señal SIGTERM
$ docker restart [container id/name]
Combina stop y start en un solo comando, útil para aplicar cambios
$ docker rm [container id/name]
Elimina permanentemente contenedor detenido para liberar recursos del sistema

📊 Monitoreo y Logs

$ docker ps
Muestra tabla con contenedores activos: ID, imagen, puertos y estado actual
$ docker ps -a
Lista todos los contenedores incluyendo detenidos, exitosos y fallidos
$ docker logs [container id/name]
Muestra salida completa y errores del contenedor desde su inicio
$ docker logs --follow [container id/name]
Streaming continuo de logs en tiempo real, similar a 'tail -f'
$ docker stats
Monitoreo en vivo de CPU, memoria, red y E/S de todos los contenedores
$ docker inspect [container/image name]
Información técnica completa en JSON: configuración, red, volúmenes y metadatos
$ docker top [container id/name]
Lista procesos ejecutándose dentro del contenedor con PID y uso de recursos

🌐 Gestión de Redes

$ docker network ls
Enumera todas las redes Docker: bridge, host, none y personalizadas
$ docker network create [network name]
Crea red aislada personalizada para comunicación entre contenedores específicos
$ docker network rm [network name]
Elimina red personalizada (no se pueden eliminar redes predeterminadas)
$ docker network inspect [network name]
Muestra configuración detallada: subnet, gateway, contenedores conectados
$ docker network connect [network] [container]
Conecta contenedor existente a red específica sin reiniciarlo
$ docker network disconnect [network] [container]
Desconecta contenedor de red manteniendo otras conexiones activas

💾 Gestión de Volúmenes

$ docker volume ls
Muestra todos los volúmenes persistentes con nombres y drivers utilizados
$ docker volume create [volume name]
Crea volumen nombrado para persistir datos independiente de contenedores
$ docker volume rm [volume name]
Elimina volumen y todos sus datos de forma permanente e irreversible
$ docker volume inspect [volume name]
Información detallada: ubicación física, punto de montaje y metadatos
$ docker volume prune
Elimina automáticamente volúmenes no utilizados por ningún contenedor
$ docker run -v [volume]:[path] [image]
Monta volumen en ruta específica del contenedor para persistir datos

🐙 Docker Compose

$ docker compose up
Inicia todos los servicios definidos en docker-compose.yml de forma coordinada
$ docker compose up -d
Ejecuta stack completo en segundo plano sin mostrar logs en pantalla
$ docker compose down
Detiene y elimina contenedores, redes creadas pero preserva volúmenes
$ docker compose -f [file name] up
Usa archivo compose personalizado en lugar del docker-compose.yml predeterminado
$ docker compose ps
Muestra estado actual de todos los servicios del proyecto compose
$ docker compose logs
Muestra logs agregados de todos los servicios con códigos de color
$ docker compose restart
Reinicia todos los servicios manteniendo configuración y volúmenes

🔧 Acceso y Utilidades

$ docker exec -it [container] bash
Acceso interactivo al contenedor usando shell bash para debugging y administración
$ docker exec -it [container] sh
Shell alternativo más básico, disponible en imágenes minimalistas como Alpine
$ docker cp [container]:/ruta/interna /ruta/externa
Copia archivos desde contenedor al sistema host sin necesidad de volúmenes
$ docker cp /ruta/local [container]:/ruta/interna
Copia archivos desde host hacia contenedor en ejecución o detenido
$ docker attach [container id/name]
Se conecta al proceso principal del contenedor para ver output en vivo
$ docker export [container] > backup.tar
Exporta filesystem completo del contenedor como archivo TAR comprimido
$ docker import backup.tar [image name]
Importa archivo TAR como nueva imagen Docker para crear contenedores

🧹 Limpieza del Sistema

$ docker system prune
Elimina contenedores detenidos, redes no utilizadas e imágenes colgantes automáticamente
$ docker system prune -a
Limpieza agresiva incluyendo todas las imágenes sin contenedores asociados
$ docker container prune
Elimina únicamente contenedores que han terminado su ejecución
$ docker image prune
Remueve imágenes colgantes sin etiquetas para recuperar espacio en disco
$ docker network prune
Elimina redes personalizadas que no tienen contenedores conectados
$ docker volume prune
Remueve volúmenes no montados por ningún contenedor (¡cuidado con datos importantes!)
$ docker system df
Analiza el uso de espacio en disco de imágenes, contenedores y volúmenes

⚡ Comandos Avanzados

$ docker save [image] > image.tar
Exporta imagen completa con todas sus capas como archivo TAR para backup
$ docker load < image.tar
Restaura imagen desde archivo TAR manteniendo historial y metadatos originales
$ docker tag [image] [new name]:[tag]
Asigna nuevo nombre y etiqueta a imagen existente sin duplicar datos
$ docker push [image name]
Sube imagen al registro remoto (Docker Hub, AWS ECR, etc.)
$ docker commit [container] [new image]
Convierte estado actual del contenedor en nueva imagen personalizada
$ docker history [image]
Muestra todas las capas y comandos usados para construir la imagen
$ docker events
Stream en tiempo real de eventos del daemon Docker: start, stop, create, etc.