Saltar a contenido

Docker Cleanup Audit

Fecha

  • 2026-05-31

Alcance

  • Auditoria del entorno Docker del VPS openclaw-vps
  • Validacion post-modernizacion de Portainer
  • Limpieza solo de elementos 100% seguros

Safe point inicial

  • git status -sb: ## main...origin/main
  • git rev-parse HEAD: 8af6e1b563157aa0d70d7287db2228cab8f653ce

Estado general Docker

  • Contenedores activos:
  • portainer -> portainer/portainer-ce:2.39.2
  • nginx-proxy-manager -> jc21/nginx-proxy-manager:latest
  • openclaw-openclaw-gateway-1 -> ghcr.io/openclaw/openclaw:2026.5.5
  • Estado de servicio:
  • portainer -> Up
  • nginx-proxy-manager -> Up
  • openclaw-openclaw-gateway-1 -> Up (healthy)
  • docker compose ls:
  • nginx-proxy-manager
  • openclaw
  • Portainer activo no aparece en docker compose ls porque hoy corre standalone, no como Compose.

Mapeo de uso real

  • portainer
  • imagen activa: portainer/portainer-ce:2.39.2
  • volumen activo: portainer_data_new
  • bind mount activo: /var/run/docker.sock:/var/run/docker.sock
  • red activa: proxy-network
  • puertos publicados: 8000, 9443
  • nginx-proxy-manager
  • imagen activa: jc21/nginx-proxy-manager:latest
  • bind mounts activos:
    • /docker/nginx-proxy-manager/data:/data
    • /docker/nginx-proxy-manager/letsencrypt:/etc/letsencrypt
  • redes activas:
    • nginx-proxy-manager_default
    • proxy-network
  • puertos publicados: 80, 81, 443
  • openclaw-openclaw-gateway-1
  • imagen activa: ghcr.io/openclaw/openclaw:2026.5.5
  • bind mounts activos:
    • /opt/stacks/openclaw/config:/home/node/.openclaw
    • /opt/stacks/openclaw/workspace:/home/node/.openclaw/workspace
    • /opt/stacks/openclaw/auth-profile-secrets:/home/node/.config/openclaw
  • redes activas:
    • openclaw_openclaw_internal
    • proxy-network
  • puertos publicados al host: ninguno
  • health: healthy

Analisis de posibles residuos

Elemento Tipo En uso Riesgo Accion recomendada
alpine:latest imagen no bajo borrar ahora
portainer/portainer-ce:latest imagen no bajo borrar ahora
portainer_data volumen no activo, pero con datos medio conservar, requiere backup previo y confirmacion humana
portainer_data_new volumen si alto conservar
portainer2_default red no, sin contenedores medio-bajo documentar como legado, borrar mas adelante
proxy-network red si alto conservar
openclaw_openclaw_internal red si alto conservar
nginx-proxy-manager_default red si alto conservar

Evidencia clave

  • docker ps -a --filter ancestor=alpine:latest no devolvio contenedores
  • docker ps -a --filter ancestor=portainer/portainer-ce:latest no devolvio contenedores
  • docker inspect portainer confirma:
  • imagen portainer/portainer-ce:2.39.2
  • volumen portainer_data_new
  • red proxy-network
  • docker volume inspect portainer_data muestra volumen creado el 2025-07-28 con mountpoint propio
  • du -sh del contenido:
  • portainer_data: 360K
  • portainer_data_new: 620K
  • Backup interno observado:
  • portainer_data/_data/backups/portainer.db.bak
  • portainer_data_new/_data/backups/portainer.db.bak
  • Metadata persistida de stacks en Portainer:
  • compose/1/docker-compose.yml -> nginx-proxy-manager
  • compose/2/docker-compose.yml -> portainer
  • compose/2/docker-compose.yml todavia declara portainer/portainer-ce:latest; esto explica el legado visual del stack y la red portainer2_default, pero no el runtime real del contenedor activo.

Limpieza ejecutada

  • docker rmi alpine:latest
  • docker rmi portainer/portainer-ce:latest

Validacion post-limpieza

  • docker ps:
  • portainer -> Up
  • nginx-proxy-manager -> Up
  • openclaw-openclaw-gateway-1 -> Up (healthy)
  • docker images final:
  • ghcr.io/openclaw/openclaw:2026.5.5
  • jc21/nginx-proxy-manager:latest
  • portainer/portainer-ce:2.39.2
  • curl -k -I https://127.0.0.1:9443 -> HTTP/1.1 200 OK
  • curl -I http://127.0.0.1:81 -> HTTP/1.1 200 OK
  • docker inspect -f '{{.State.Health.Status}}' openclaw-openclaw-gateway-1 -> healthy
  • curl -I https://openclaw.alpuntodeventa.com.ar -> HTTP/2 200
  • docker exec openclaw-openclaw-gateway-1 curl -I http://127.0.0.1:18789/ -> HTTP/1.1 200 OK
  • docker exec nginx-proxy-manager curl -I http://openclaw-gateway:18789/ -> HTTP/1.1 200 OK

Interpretacion del check al gateway

  • curl -I http://127.0.0.1:18789/ desde el host falla.
  • Ese resultado es consistente con la topologia vigente:
  • OpenClaw no publica 18789 ni 18790 al host
  • NPM sigue siendo el unico punto de entrada publico
  • el gateway responde correctamente dentro de la red Docker
  • No se requiere correccion mientras se mantenga esa politica.

Estado Portainer UI

  • Backend HTTPS de Portainer: OK
  • Contenedor local de Portainer: UP
  • Metadata de stacks visible en UI: consistente con los archivos persistidos en /data/compose
  • Validacion visual autenticada de local UP en la UI: no automatizada en esta sesion

Decision final

  • Limpieza segura completada solo sobre imagenes sin referencias.
  • Persistencia y redes de legado quedan conservadas hasta una ventana futura.
  • OpenClaw, NPM y Portainer activo quedaron sin cambios funcionales.
  • Estado Docker final: VERDE