README · by ansango
← Volver al libro

Comandos básicos de Docker

Referencia rápida de comandos Docker esenciales: gestión de imágenes, contenedores, inspección y limpieza

~1 min de lectura
Resumen

Cheatsheet de los comandos más comunes para trabajar con Docker en el día a día: imágenes, contenedores, inspección y limpieza. Para más detalles, consulta la documentación oficial.

Gestión de imágenes

Ver imágenes descargadas

docker images
docker images --all  # Incluyendo imágenes intermedias
Las imágenes se almacenan localmente en tu máquina. Usa

docker images para verlas todas.

Descargar una imagen

docker pull nombre-imagen
docker pull nombre-imagen:tag  # Versión específica

Crear una imagen desde un Dockerfile

docker build -t nombre-imagen:tag .
docker build -t nombre-imagen:tag -f Dockerfile.custom .  # Dockerfile personalizado

Eliminar una imagen

docker rmi nombre-imagen
docker rmi nombre-imagen:tag
docker rmi -f nombre-imagen  # Fuerza eliminación

Gestión de contenedores

Crear y ejecutar un contenedor

docker run nombre-imagen
docker run -d nombre-imagen  # Ejecutar en background (detached)
docker run --name mi-contenedor nombre-imagen  # Nombrar el contenedor
docker run -p 8080:80 nombre-imagen  # Mapear puertos (host:contenedor)
docker run -v /ruta/host:/ruta/contenedor nombre-imagen  # Montar volumen
docker run -e VAR=valor nombre-imagen  # Variable de entorno
docker run -it nombre-imagen /bin/bash  # Terminal interactiva

-d (detached) ejecuta el contenedor en background. Sin este flag, verás los logs en tu terminal y deberás presionar Ctrl+C para salir.

Combinado (caso común)

Ejecuta en background, nombra el contenedor, mapea el puerto 3000, monta el directorio actual como volumen y define una variable de entorno.

Listar contenedores

docker ps  # Solo contenedores en ejecución
docker ps -a  # Todos los contenedores
docker ps -l  # Último contenedor

Ejecutar comandos en un contenedor en ejecución

docker exec -it mi-contenedor /bin/bash  # Acceder a la shell
docker exec mi-contenedor comando  # Ejecutar comando específico

Ver logs de un contenedor

docker logs mi-contenedor
docker logs -f mi-contenedor  # Mostrar logs en vivo (follow)
docker logs --tail 50 mi-contenedor  # Últimas 50 líneas

Detener / Iniciar / Reiniciar contenedor

docker stop mi-contenedor  # Detener
docker start mi-contenedor  # Iniciar
docker restart mi-contenedor  # Reiniciar

Eliminar un contenedor

docker rm mi-contenedor
docker rm -f mi-contenedor  # Fuerza eliminación (incluso si está en ejecución)

docker rm elimina el contenedor y sus datos locales. Si necesitas persistencia, usa volúmenes.

Inspección y depuración

Inspeccionar contenedor o imagen

docker inspect mi-contenedor  # JSON con detalles completos
docker inspect --format='{{.NetworkSettings.IPAddress}}' mi-contenedor  # Campo específico

Ver estadísticas en vivo

docker stats  # CPU, memoria, red de todos los contenedores
docker stats mi-contenedor  # Solo uno

Ver historial de cambios en un contenedor

docker diff mi-contenedor

Limpieza y mantenimiento

Eliminar contenedores detenidos

docker container prune  # Elimina todos los contenedores detenidos
docker container prune -f  # Sin confirmar

Ver uso de disco

docker system df  # Resumen de imágenes, contenedores, volúmenes

Limpiar todo (cuidado)

docker system prune  # Elimina contenedores, redes y imágenes sin usar
docker system prune -a  # También elimina imágenes con etiqueta
docker system prune --volumes  # También elimina volúmenes sin usar

docker system prune elimina datos permanentemente. Asegúrate de que no necesitas esos recursos antes de ejecutarlo.

Red y volúmenes

Listar volúmenes

docker volume ls

Crear un volumen

docker volume create mi-volumen

Listar redes

docker network ls

Crear una red

docker network create mi-red
docker run --network mi-red --name contenedor1 imagen1

Próximos pasos