Etiquetas

Docker (comados)

 

Aquí tienes una lista de comandos para gestionar Docker Compose y optimizar su funcionamiento.

Gestión Básica de Contenedores

Iniciar contenedores

docker-compose up -d # Inicia en modo demonio (en segundo plano) docker-compose up # Inicia y muestra logs en tiempo real

Ver contenedores en ejecución

docker-compose ps # Lista los contenedores activos de este proyecto

Detener contenedores

docker-compose stop # Detiene los contenedores sin eliminarlos docker-compose down # Detiene y elimina los contenedores, redes y volúmenes

Reiniciar contenedores

docker-compose restart # Reinicia todos los contenedores docker-compose restart postgres # Reinicia solo PostgreSQL


Logs y Debugging

Ver logs de los contenedores

docker-compose logs -f # Logs en tiempo real de todos los servicios docker-compose logs postgres # Logs solo del servicio PostgreSQL

Obtener una sesión interactiva en un contenedor

docker exec -it postgres bash # Abrir terminal dentro del contenedor

Ver errores recientes

docker-compose logs --tail=50 # Últimos 50 logs

 Optimización y Rendimiento

Ver consumo de recursos (CPU/RAM)

docker stats # Muestra uso en tiempo real de cada contenedor

Gestión de Redes

Ver redes activas

docker network ls

Inspeccionar detalles de una red

docker network inspect postgres_network

Crear una nueva red y conectar contenedores

docker network create my_network docker network connect my_network postgres

Gestión de Datos y Volúmenes

Listar volúmenes

docker volume ls

Inspeccionar un volumen

docker volume inspect postgres_data

Eliminar volúmenes no utilizados

docker volume prune

Seguridad y Acceso a PostgreSQL

Acceder a la base de datos desde la terminal

docker exec -it postgres psql -U admin -d gisdb

Respaldar la base de datos

docker exec -t postgres pg_dump -U admin gisdb > backup.sql

Restaurar un respaldo

docker exec -i postgres psql -U admin -d gisdb < backup.sql


ista de comandos intermedios para gestionar Docker Compose y optimizar su funcionamiento.

Estos comandos van más allá de lo básico e incluyen opciones para administración eficiente,

troubleshooting y optimización.

Administración y Configuración Avanzada


Ver información detallada de los servicios


docker-compose config # Verifica y muestra la configuración del archivo docker-compose.yml


Ejecutar un comando dentro de un contenedor


docker-compose exec postgres psql -U admin -d gisdb # Acceder a PostgreSQL desde Docker Compose

Ver los procesos en ejecución dentro de un contenedor

docker top postgres # Muestra procesos activos dentro del contenedor PostgreSQL

Inspeccionar detalles completos de un contenedor


docker inspect postgres # Información completa del contenedor PostgreSQL

Optimización de Recursos


Eliminar contenedores detenidos y recursos innecesarios


docker system prune -a # Limpia contenedores, imágenes y volúmenes no utilizados

Recrear contenedores sin detener el servicio


docker-compose up -d --force-recreate # Recrea los contenedores sin detener el servicio completo

Redes y Conectividad

Ver detalles de la red de un servicio


docker network inspect postgres_network # Muestra información sobre la red

Desconectar un contenedor de una red

docker network disconnect my_network postgres




lista de comandos avanzados para gestionar Docker Compose y optimizar su funcionamiento.

Estos comandos están enfocados en seguridad, automatización, debugging, monitoreo y

optimización de recursos.

Gestión Avanzada de Contenedores

Forzar la recreación de contenedores con imágenes nuevas

docker-compose up -d --force-recreate --no-deps postgres

Recrea PostgreSQL sin afectar los demás servicios.

Actualizar contenedores sin detener todo el stack

docker-compose pull # Descarga las versiones más recientes de las imágenes docker-compose up -d --no-deps postgres # Reinicia solo PostgreSQL con la nueva imagen

Evita downtime innecesario al actualizar servicios individualmente.

Comprobar dependencias entre servicios

docker-compose config --services

Muestra todos los servicios definidos y su estado de dependencia.

Debugging y Logs Detallados

Ver variables de entorno activas en un contenedor

docker-compose exec postgres env

Ayuda a verificar configuraciones y errores de variables de entorno.

Habilitar logs detallados en tiempo real

docker-compose logs --tail=100 --follow

Útil para debugging sin perder el historial de eventos recientes.

Ver logs de PostgreSQL filtrando solo errores

docker-compose logs postgres | grep ERROR

Extrae errores sin ruido innecesario.

Optimización de Recursos

Monitorear el consumo de CPU, RAM y red

docker stats --no-stream

Muestra uso de recursos en un solo snapshot, útil para scripts automatizados.

Limitar consumo de CPU y RAM en docker-compose.yml


deploy: resources: limits: cpus: "1.5" memory: "1GB" reservations: cpus: "1.0" memory: "512MB"


Redes y Seguridad

Ver puertos abiertos en todos los contenedores


docker-compose ps --services --filter "status=running"

Permite auditar qué servicios están accesibles desde el exterior.

Restringir acceso a una red específica


networks: postgres_network: driver: bridge internal: true

Impide que los servicios sean accesibles desde fuera de la red de Docker.

Listar reglas de firewall activas en contenedores

iptables -L -n -v

Revisa qué conexiones están permitidas y bloqueadas en Docker.

Manejo Avanzado de Volúmenes y Datos

Hacer un respaldo comprimido de PostgreSQL


docker exec postgres pg_dump -U admin gisdb | gzip > backup.sql.gz

Ahorra espacio al guardar respaldos comprimidos.

Restaurar un respaldo comprimido

gunzip -c backup.sql.gz | docker exec -i postgres psql -U admin -d gisdb

Restaura bases de datos de forma eficiente.

Mover datos de un volumen a otro

docker run --rm -v old_volume:/data -v new_volume:/backup alpine sh -c "cp -r /data/* /backup/"

Permite migrar datos entre volúmenes sin perder información.

Auditoría y Seguridad

Escanear vulnerabilidades en imágenes de Docker

docker scan postgis/postgis

Detecta problemas de seguridad en las imágenes de Docker.

Eliminar imágenes antiguas de Docker

docker image prune -a

Libera espacio eliminando imágenes no utilizadas.

Evitar que contenedores se ejecuten con permisos de root

services: postgres: user: "1001:1001"

Mejora la seguridad evitando que los contenedores tengan privilegios elevados.

Automatización y Tareas Programadas

Ejecutar comandos dentro de un contenedor desde cron

echo "0 3 * * * docker exec postgres pg_dump -U admin gisdb >
/backups/backup_$(date +\%Y\%m\%d).sql" | crontab -

Programa backups automáticos todos los días a las 3 AM.

Reiniciar servicios automáticamente en caso de fallo

restart: unless-stopped

Garantiza que los servicios se reinicien tras un error o un reinicio del servidor.

Monitoreo Avanzado

Instalar y conectar Prometheus con Docker Compose


services: prometheus: image: prom/prometheus ports: - "9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml

Monitorea métricas de rendimiento de los contenedores en tiempo real.

Ver eventos de Docker en vivo

docker events

Muestra eventos en tiempo real, útil para troubleshooting en producción.