Hoja de referencia de Docker

Algunos parámetros de los comandos de docker más frecuentes

Índice

Aquí tienes una hoja de referencia de Docker que cubre los comandos más importantes y conceptos, desde la instalación hasta la ejecución de contenedores y la limpieza:

Logotipo de Docker

Esta guía es parte de Herramientas para desarrolladores: La guía completa para flujos de trabajo modernos.

Instalación

Para una guía completa sobre cómo instalar Docker en Ubuntu —comparando el repositorio APT oficial, docker.io, Snap, el modo sin privilegios de root (rootless) y la configuración del plugin Compose— consulta Instalar Docker en Ubuntu.

Después de la instalación, añade tu usuario al grupo docker si necesitas ejecutar comandos sin sudo:

sudo usermod -aG docker $USER
newgrp docker
docker run hello-world

La guía de instalación también cubre los compromisos de seguridad de pertenecer al grupo docker y las alternativas sin privilegios de root.

Comandos generales de Docker

Versión e información del sistema

docker version          # Muestra las versiones de Docker CLI y del daemon
docker system info      # Lista datos sobre tu entorno de Docker
docker help             # Ver el índice de ayuda
docker <comando> --help # Ver información de ayuda para un comando específico

Iniciar y cerrar sesión

docker login            # Iniciar sesión en Docker Hub
docker logout           # Cerrar sesión en Docker Hub

Gestión de imágenes

Listar imágenes

docker images           # Listar todas las imágenes
docker images -a        # Listar todas las imágenes, incluidas las intermedias

Descargar imágenes

docker pull <nombre-imagen:versión> # Descargar una imagen de Docker Hub

Construir imágenes

docker build -t <nombre-imagen> . # Construir una imagen desde el Dockerfile del directorio actual
docker build -f <ruta-Dockerfile> -t <nombre-imagen> . # Construir una imagen desde un Dockerfile específico
docker build --build-arg foo=bar . # Construir una imagen con argumentos de compilación
docker build --pull . # Descargar versiones actualizadas de las imágenes referenciadas en las instrucciones FROM
docker build --quiet . # Construir una imagen sin mostrar salida

Etiquetar y subir imágenes

docker tag <nombre-imagen-local> <usuario>/<nombre-imagen-preferido>
docker push <usuario>/<nombre-imagen-preferido>

Eliminar imágenes

docker rmi <nombre-imagen>        # Eliminar una imagen específica
docker image prune             # Eliminar imágenes no utilizadas
docker image prune -a          # Eliminar todas las imágenes no utilizadas

Eliminar imágenes huérfanas

docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

Quitar etiqueta a una imagen

docker rmi repositorio/nombre-imagen:etiqueta

Gestión de contenedores

Ejecutar contenedores

docker run -itd --name <nombre-contenedor> <nombre-imagen> # Ejecutar un contenedor en modo desasociado
docker run -it -p <puerto-host>:<puerto-docker> <nombre-imagen> # Ejecutar un contenedor con mapeo de puertos
docker run -it --name <nombre-contenedor> <nombre-imagen> # Ejecutar un contenedor de forma interactiva

Listar contenedores

docker ps                  # Listar contenedores en ejecución
docker ps -a               # Listar todos los contenedores
docker ps -s               # Listar contenedores en ejecución con uso de CPU y memoria

Iniciar, detener y reiniciar contenedores

docker start <nombre-contenedor>   # Iniciar un contenedor detenido
docker stop <nombre-contenedor>    # Detener un contenedor en ejecución
docker restart <nombre-contenedor> # Reiniciar un contenedor

Eliminar contenedores

docker rm <nombre-contenedor>      # Eliminar un contenedor detenido
docker rm -f <nombre-contenedor>   # Eliminar un contenedor de forma forzosa
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) # Eliminar todos los contenedores

Eliminar todos los contenedores detenidos

docker container prune

Adjuntarse a contenedores

docker attach <nombre-contenedor>  # Adjuntarse a un contenedor en ejecución
docker exec -it <nombre-contenedor> bash # Ejecutar un comando en un contenedor en ejecución de forma interactiva

Inspeccionar contenedores

docker inspect <nombre-contenedor> # Inspeccionar un contenedor
docker logs <nombre-contenedor>    # Ver los registros de un contenedor
docker port <nombre-contenedor>    # Mostrar los mapeos de puertos de un contenedor

Gestión de redes

docker network ls            # Listar todas las redes
docker network create <nombre-red> # Crear una nueva red
docker network rm <nombre-red>    # Eliminar una red

Gestión de volúmenes

docker volume ls             # Listar todos los volúmenes
docker volume create <nombre-volumen> # Crear un nuevo volumen
docker volume rm <nombre-volumen>    # Eliminar un volumen
docker run -v <ruta-host>:<ruta-contenedor> <nombre-imagen> # Montar un volumen

Docker Compose

Para pilas de múltiples contenedores y comandos diarios de Compose, consulta la Hoja de referencia de Docker Compose. Cuando un proyecto de Compose debe iniciarse en el arranque y sobrevivir a los reinicios en un servidor Linux, Ejecutar Docker Compose como un servicio de Linux con systemd cubre archivos de unidad y hábitos operativos.

Comandos básicos

docker-compose up           # Iniciar servicios definidos en docker-compose.yml
docker-compose up -d        # Iniciar servicios en modo desasociado
docker-compose down         # Detener y eliminar servicios
docker-compose ps           # Listar servicios en ejecución
docker-compose logs         # Ver registros de servicios
docker-compose start        # Iniciar servicios
docker-compose stop         # Detener servicios
docker-compose pause        # Pausar servicios
docker-compose unpause      # Reanudar servicios

Comandos de Dockerfile

Construir imagen desde Dockerfile

docker build -t <nombre-imagen> <ruta-Dockerfile> # Construir una imagen desde un Dockerfile

Ejemplo de Dockerfile

FROM <imagen-base>
RUN <comando>
COPY <origen> <destino>
EXPOSE <puerto>
CMD ["<comando>", "<argumento>"]

Seguridad y secretos

Secretos de Docker

docker secret create <nombre-secreto> <archivo> # Crear un secreto
docker secret ls                         # Listar todos los secretos
docker secret rm <nombre-secreto>          # Eliminar un secreto

Seguridad de Docker

  • Utiliza los secretos de Docker para gestionar datos sensibles de forma centralizada y transmitirlos de manera segura a los contenedores.
  • Los secretos están cifrados durante la transmisión y en reposo en un swarm de Docker.

Limpieza

Eliminar recursos no utilizados

docker system prune          # Eliminar datos no utilizados (imágenes, contenedores, redes, volúmenes)
docker image prune           # Eliminar imágenes no utilizadas
docker container prune       # Eliminar contenedores no utilizados
docker network prune         # Eliminar redes no utilizadas
docker volume prune          # Eliminar volúmenes no utilizados

Eliminar imágenes sin etiqueta

A veces, después de una compilación grande, aparece una imagen como esta desde el comando docker images:

Muchas imágenes sin etiqueta

para eliminar esas imágenes con etiquetas :```bash docker rmi $(docker images –filter “dangling=true” -q –no-trunc)


lo anterior es antiguo e incompatible. El parámetro dangling=true es obsoleto. Usa

```bash
docker system prune

te preguntará:

¡ADVERTENCIA! Esto eliminará:
	- todos los contenedores detenidos
	- todos los volúmenes no utilizados por al menos un contenedor
	- todas las redes no utilizadas por al menos un contenedor
	- todas las imágenes huérfanas

Podrías decidir decir Sí a esta advertencia…

Esta hoja de referencia cubre los comandos y conceptos esenciales necesarios para gestionar contenedores, imágenes, redes, volúmenes y más de Docker. Para una inmersión más profunda, consulta las guías y tutoriales detallados disponibles en línea.

Enlaces útiles

Suscribirse

Recibe nuevas publicaciones sobre sistemas, infraestructura e ingeniería de IA.