- 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
- 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
- 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.
- 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/