Comandos de Docker para Operaciones con Contenedores e Imágenes

  1. Autenticación en registros de Docker

Para interactuar con registros privados de Docker, se utilizan los comandos docker login y docker logout. Estos permiten gestionar las credenciales de acceso.

# Ejemplo de autenticación con datos de usuario y registro
docker login --username usuario_prueba --password contrasena_segura 10.0.0.50:5000
docker login --username operador --password clave#456 10.0.0.50:5000

# Para finalizar la sesión, se debe especificar la dirección del registro
docker logout 10.0.0.50:5000

  1. Gestión de imágenes Docker

2.1 Listar imágenes disponibles

El comando docker images muestra las imágenes almacenadas localmente. Se puede filtrar con herramientas como grep.

# Listar imágenes que contengan 'nginx' en su nombre
docker images | grep nginx
# Ejemplo de salida:
# nginx  stable  a1b2c3d4e5f6  2 days ago  125MB
# nginx  latest  b2c3d4e5f6a1  1 week ago  125MB

2.2 Construir imágenes desde Dockerfile

La creación de imágenes se realiza con docker build, usando un archivo Dockerfile como referencia.

# Sintaxis para construir una imagen con etiqueta y contexto de construcción
docker build -t nombre_imagen:tag -f ruta/Dockerfile directorio_contexto

2.3 Buscar, descargar y subir imágenes

Para encontrar imáganes en registros remotos, se emplea docker search. La descarga se hace con docker pull y la subida con docker push.

# Buscar imágenes relacionadas con 'mysql' en Docker Hub
docker search mysql

# Descargar una imagen específica
docker pull nginx:1.25
# Nota: si se omite la etiqueta, se usa 'latest' por defecto.

# Subir una imagen a un registro privado (requiere etiquetado previo)
docker push 10.0.0.50:5000/mi_app:version1

2.4 Asignar etiquetas a imágenes

Las etiquetas permiten versionar imágenes o asociarlas a registros. Se usan con docker tag.

# Etiquetar una imagen con una nueva versión
docker tag nginx:latest nginx:version_beta

# Etiquetar para un registro privado
docker tag nginx:latest 10.0.0.50:5000/nginx
# Verificar los cambios
docker images | grep nginx

2.5 Eliminar imágenes

El comando docker rmi borra imágenes del sistema local, siempre que no estén en uso por contenedores activos.

# Eliminar una imagen por su etiqueta
docker rmi nginx:version_beta
# Confirmar la eliminación
docker images | grep nginx

2.6 Inspeccionar detalles de imágenes

docker inspect proporciona información detallada en formato JSON sobre una imagen, como su configuración y metadatos.

# Inspeccionar una imagen por su nombre o ID
docker inspect nginx:latest

  1. Operaciones con contenedores

3.1 Listar contenedores

docker ps muestra contenedores en ejecución. Con la opción -a, se incluyen todos los estados.

# Listar todos los contenedores, extrayendo columnas específicas
docker ps -a --format "table {{.ID}}\t{{.Status}}\t{{.Names}}"

# Ejemplo de filtrado por nombre
docker ps -a | grep app_web

3.2 Ejecutar un contenedor

El comando docker run inicia un contenedor con diversas opciones de configuración.

# Ejecutar un contenedor en segundo plano con mapeo de puertos y volúmenes
docker run -d \
  --name mi_contenedor \
  -p 8080:80 \
  -v /datos/host:/app/datos \
  nginx:1.25
# Descripción de flags:
# -d: ejecución en background
# --name: asigna un nombre único
# -p: mapea puertos (host:contenedor)
# -v: monta volúmenes de almacenamiento

3.3 Controlar el ciclo de vida de contenedores

Se pueden detener, iniciar, reiniciar y elmiinar contenedores con comandos específicos.

# Detener un contenedor por nombre o ID
docker stop mi_contenedor

# Iniciar un contenedor detenido
docker start mi_contenedor

# Reiniciar un contenedor
docker restart mi_contenedor

# Eliminar un contenedor detenido
docker rm mi_contenedor
# Nota: un contenedor debe estar detenido para poder eliminarse.

3.4 Acceder al interior de un contenedor

Para interactuar con un contenedor en ejecución, se usa docker exec.

# Abrir una shell interactiva dentro del contenedor
docker exec -it mi_contenedor /bin/bash

3.5 Crear una imagen a partir de un contenedor

El comando docker commit permite guardar el estado de un contenedor como una nueva imagen, aunque se recomienda usar Dockerfile para reproducibilidad.

# Guardar el contenedor como imagen con etiqueta
docker commit mi_contenedor mi_nueva_imagen:v1

3.6 Inspeccionar contenedores

docker inspect también se aplica a contenedores, revelando información como red, montajes y configuración.

# Obtener detalles JSON de un contenedor
docker inspect mi_contenedor
# Ejemplo de extracción de rutas de logs:
docker inspect mi_contenedor | grep -i logpath

3.7 Visualizar logs de contenedores

Los logs de un contenedor se gestionan con docker logs, útil para depuración y monitoreo.

# Mostrar logs de un contenedor
docker logs mi_contenedor

# Seguir logs en tiempo real (similar a tail -f)
docker logs -f mi_contenedor
# Nota: los logs se almacenan en el sistema de archivos del host; la ruta se puede obtener con docker inspect.

  1. Comandos auxiliares de Docker

4.1 Información y versión del sistema

docker info brinda detalles del sistema Docker, y docker version muestra las versioens del cliente y servidor.

# Ver información general de Docker
docker info

# Consultar versiones instaladas
docker version

4.2 Transferencia de archivos entre host y contenedor

El comando docker cp facilita la copia de archivos entre el sistema host y un contenedor.

# Copiar desde el host al contenedor
docker cp /ruta/host/archivo.txt mi_contenedor:/ruta/contenedor/

# Copiar desde el contenedor al host
docker cp mi_contenedor:/ruta/contenedor/datos.log /ruta/host/backup/

Etiquetas: Docker contenedores Imágenes Docker CLI Docker Registros de Contenedores

Publicado el 7-19 17:30