Portainer Modernization¶
Fecha¶
2026-05-31
Objetivo¶
- Modernizar Portainer CE para resolver la compatibilidad con Docker
29.xsin afectar OpenClaw, NPM, DNS, firewall ni persistencia
Fuentes oficiales usadas¶
https://docs.portainer.io/start/upgrade/dockerhttps://docs.portainer.io/faqs/known-issues/environments-not-loading-with-docker-engine-29.0.0https://www.portainer.io/blog/new-portainer-2-39-release
Safe point¶
git status -sb:## main...origin/maingit rev-parse HEAD:208914617dad0f9994a1d6139f9b983e9949ab7e
Estado previo confirmado¶
- Host remoto:
srv977009 - Contenedor real:
portainer - Imagen declarada:
portainer/portainer-ce:latest - Version real por binario:
2.33.1 - Volumen real:
portainer_data_new - Puertos host:
8000y9443 - Restart policy:
unless-stopped - Red:
proxy-network - Mount Docker socket:
/var/run/docker.sock:/var/run/docker.sock
Backup¶
- Backup previo existente:
/root/portainer-backups/portainer-data-20260531-000206.tar.gz - Backup nuevo creado:
/root/portainer-backups/portainer-data-20260531-001058.tar.gz - Tamano validado:
37552 bytes sha256:b67c05ae7e95a5a7fc93738fdf78d9e950b1146770aebded85273da024c4326d
Metodo de upgrade usado¶
bash
docker pull portainer/portainer-ce:2.39.2
docker stop portainer
docker rm portainer
docker run -d --name portainer --restart unless-stopped --network proxy-network -p 8000:8000 -p 9443:9443 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data_new:/data portainer/portainer-ce:2.39.2
Resultado¶
- Version final por binario:
2.39.2 - Imagen final:
portainer/portainer-ce:2.39.2 - Digest final:
portainer/portainer-ce@sha256:8d2f5c9fbc5b8490fb3a12efadbad74978e22991911e1db611d8a45871775112 - Migracion de base observada en logs:
2.33.1 -> 2.39.2 - HTTPS local validado en
9443:HTTP/1.1 200 OK - OpenClaw post-upgrade:
running healthy - NPM post-upgrade:
running - Puertos host nuevos:
no - Rollback necesario:
no
Alcance y restricciones respetadas¶
- No se toco OpenClaw
- No se toco NPM
- No se toco DNS
- No se toco firewall
- No se borraron volumenes
- No se borraron imagenes ajenas
- No se tocaron proxy hosts
- No se imprimieron secretos
Validaciones no automatizadas¶
- No se valido en esta sesion la UI autenticada de Portainer con login humano
- No se certifico visualmente
Environment local UPniLive Connectdesde la interfaz, aunque el backend y el servicio HTTPS quedaron sanos
Estado final¶
- Portainer:
VERDE - OpenClaw:
VERDE - NPM:
VERDE
Certificacion operativa posterior¶
- Validacion visual confirmada por Gabi el
2026-05-31: - Portainer navegable
- endpoint
localaccesible - Containers visibles
- Stacks visibles
- Networks visibles
- Volumes visibles
- OpenClaw visible
- NPM visible
- Portainer visible
- Validacion backend por SSH:
docker exec portainer /portainer --version->2.39.2curl -k -I https://127.0.0.1:9443->HTTP/1.1 200 OK
La modernizacion queda certificada no solo por backend sino tambien por validacion visual humana del plano de administracion.
Auditoria Docker post-modernizacion¶
Estado observado¶
- Contenedores activos:
portainernginx-proxy-manageropenclaw-openclaw-gateway-1- Imagen activa real de Portainer:
portainer/portainer-ce:2.39.2 - Volumen activo real de Portainer:
portainer_data_new - Red activa real de Portainer:
proxy-network
Hallazgos de legado¶
- La metadata persistida de Portainer todavia conserva un Compose previo en
portainer_data_new/_data/compose/2/docker-compose.yml. - Ese archivo sigue declarando
portainer/portainer-ce:latest, aunque el contenedor real fue recreado standalone y fijado a2.39.2. - La red
portainer2_defaultsigue existiendo pero no tiene contenedores. - El volumen
portainer_datasigue existiendo conportainer.dby un backup interno historico; no debe borrarse sin backup y confirmacion humana.
Limpieza segura ejecutada¶
docker rmi alpine:latestdocker rmi portainer/portainer-ce:latest
Limpieza diferida¶
- No se borro
portainer_data. - No se borro
portainer2_default. - No se toco
proxy-network. - No se tocaron OpenClaw ni NPM.