Ir al contenido

Conceptos 05 - Comandos Docker

Todos los comandos que aparecen en las lecturas prácticas del módulo, organizados por función. Seleccione cualquier comando de un grupo para ver un ejemplo de uso.

  • 2 partes
  • 14 grupos de comandos
  • 3 simuladores
  • Autoevaluación final
Parte 1

Administración básica de Docker

Concepto 1 de 14

Configuración

Preparar el usuario para ejecutar Docker sin sudo.

Agrega el usuario actual al grupo docker para evitar usar sudo.

sudo usermod -aG docker $USER# Cerrar sesión y volver a iniciar para aplicargroupsuser sudo docker

Concepto 2 de 14

Imágenes

Descargar, listar y eliminar imágenes locales.

Descarga una imagen desde Docker Hub.

docker pull nginx:alpineStatus: Downloaded newer image for nginx:alpine

Concepto 3 de 14

Contenedores

Crear e iniciar contenedores en primer plano, en modo interactivo o en segundo plano.

Crea e inicia un contenedor en primer plano.

docker run nginx:alpineready for connections on port 80

Concepto 4 de 14

Inspección y listado

Ver qué contenedores están en ejecución y cuáles están detenidos.

Lista contenedores en ejecución.

docker psCONTAINER ID  IMAGE         STATUS     NAMESb8e2a1c3d4f5  nginx:alpine  Up 2 min   web

Concepto 5 de 14

Control del ciclo de vida

Detener, volver a iniciar y eliminar contenedores.

Detiene el contenedor de forma controlada.

docker stop webweb

Concepto 6 de 14

Ejecución en contenedores

Ejecutar comandos dentro de un contenedor activo o conectarse a su salida.

Ejecuta un comando dentro de un contenedor activo.

docker exec web cat /etc/hostnameb8e2a1c3d4f5

Concepto 7 de 14

Limpieza

Encontrar y eliminar contenedores finalizados, imágenes huérfanas y recursos sin uso.

Filtra contenedores finalizados.

docker ps -a -f status=exitedCONTAINER ID  IMAGE   STATUS                  NAMESc9d0e1f2a3b4  alpine  Exited (0) 5 min ago    test

Concepto 8 de 14

Ayuda

Consultar las opciones disponibles de cualquier comando Docker.

Muestra las opciones disponibles de cualquier comando Docker.

docker run --helpUsage:  docker run [OPTIONS] IMAGE [COMMAND]-d          Run container in background-p          Publish a container's port--name      Assign a name to the container...
Parte 2

docker run en profundidad

Concepto 9 de 14

Verificación inicial

Confirmar que Docker está instalado y que el daemon responde.

Confirma la versión instalada de Docker.

docker --versionDocker version 27.1.0, build abcdef0

Concepto 10 de 14

Ejecución con opciones

Combinar puertos, nombres, volúmenes, variables de entorno y modo interactivo en docker run.

Mapeo de puertos con nombre asignado.

docker run -p 8080:80 --name servidor-web httpdAH00558: httpd: listening on port 80

Activa y desactiva flags sobre la misma orden con postgres:17 y observa cómo cambia el resultado.

Flags de docker run

Concepto 11 de 14

Volúmenes

Crear, inspeccionar y eliminar los volúmenes que persisten datos fuera del contenedor.

Lista los volúmenes gestionados por Docker.

docker volume lsDRIVER  VOLUME NAMElocal   pgdata

Elige dónde se guardan los datos de /data, escribe algo y comprueba qué sobrevive al reinicio y a la recreación del contenedor.

Contenedor #1

/datacapa de escrituravacío

Volumen appdata

vacío

Escribe datos en /data y luego prueba qué sobrevive.

Concepto 12 de 14

Inspección y logs

Revisar configuración, salida, puertos y eventos de los contenedores.

Información detallada en JSON de cualquier objeto Docker.

docker inspect db > salida.jsondocker inspect db | jq '.[0].NetworkSettings.IPAddress'"172.17.0.3"

Concepto 13 de 14

Limpieza completa

Los comandos prune y su alcance, del más específico al más amplio.

Elimina todos los contenedores detenidos.

docker container pruneTotal reclaimed space: 10MB

Elige un comando de limpieza y observa qué recursos de un sistema de ejemplo elimina y cuáles conserva.

  • ContenedorwebEn ejecución
  • ContenedortestDetenido
  • Imagennginx:alpineUsada por web
  • ImagenalpineUsada por test (detenido)
  • Imagenpython:3.12Con tag, sin contenedores
  • Imagen<none>:<none>Huérfana (dangling)
  • RedbridgePredeterminada
  • RedmynetSin contenedores
  • VolumenpgdataNombrado, sin uso
  • Volumen3f9c1e…Anónimo, sin uso
  • Cachébuild cacheSin uso

Comportamiento de Docker Engine 23 o posterior. Inventario de ejemplo.

Concepto 14 de 14

Sistema del host

Diagnosticar en el host los puertos ocupados que impiden publicar un contenedor.

Identifica qué proceso ocupa un puerto en el host.

sudo lsof -i :5432COMMAND  PID     USER  TYPE  NAMEpostgres 1234    pg    IPv4  *:5432

Autoevaluación

Comprueba lo que aprendiste

Cinco preguntas rápidas para verificar las ideas clave de la lectura. Cada respuesta incluye una explicación.

  1. 1Después de ejecutar sudo usermod -aG docker $USER, docker sigue pidiendo sudo. ¿Qué falta?
  2. 2docker ps no muestra un contenedor que se creó hace un momento. ¿Qué es lo más probable?
  3. 3Un contenedor de postgres se elimina con docker rm y se crea otro igual. ¿En qué caso se conservan los datos?
  4. 4¿Para qué sirve --env-file .env en lugar de varias flags -e?
  5. 5docker run -p 5432:5432 falla porque el puerto ya está en uso. ¿Qué conviene hacer primero?

0/5 respuestas correctas