Hola a tod@s,
En este post vamos a ver como Actualizar Nginx Proxy Manager con Docker.
- Lo primero que vamos a ver es que versión de Nginx Proxy Manager tenemos instalada, para ello, ejecutamos docker exec nginxpm cat package.json | grep version:
- Ahora actualizamos a la versión más reciente.
- cd /opt/docker/nginxpm
- docker compose pull nginxproxymanager
- docker compose up -d
- Descarga la nueva versión
- Detiene el contenedor actual
- Lo recrea con la nueva imagen, manteniendo toda la configuración, certificados, bases de datos, etc…
porque están montados como volúmenes: - volumes:
- /opt/docker/nginxpm/data:/data
- /opt/docker/nginxpm/data/letsencrypt:/etc/letsencrypt
- /opt/docker/nginxpm/certs:/opt/custom-certs:ro
- Volvemos a ejecutar docker exec nginxpm cat package.json | grep version y vemos que tenemos actualizada a la última versión disponible de Nginx Proxy Manager:
- Si hacemos un docker images vemos las imágenes disponibles en nuestro sistema y con docker ps -a vemos la imagen que está en uso para nuestro Nginx Proxy Manager:
- Con docker rmi imageID podemos eliminar las imágenes que ya no están en uso, en este caso eliminamos la imagen antigua de Nginx Proxy Manager que ya no utilizamos:
- Cuando actualizamos la versión de Nginx Proxy Manager, nos podemos encontrar con este error al renovar nuestros certificados de Let´s Encrypt, Internal error:
- El problema viene dado por las versiones de certbot, que utilizan las nuevas versiones, certbot es el encargado de renovar nuestros certificados de Let’s Encrypt, para solucionarlo, en el fichero docker-compose.yaml debemos de agregar esta línea:
environment:
– PIP_BREAK_SYSTEM_PACKAGES=1
- Destruimos el contenedor con sudo docker compose down:
- Lo levantamos de nuevo con la nueva variable de entorno, sudo docker compose up -d:
- Inyectamos el bloque definitivo por última vez en caliente, sudo docker exec -it nginxpm bash:
/opt/certbot/bin/pip install –force-reinstall –no-cache-dir \
«cryptography==43.0.3» \
«pyOpenSSL==25.0.0» \
«josepy==1.15.0» \
«acme==3.3.0» \
«certbot==3.3.0» \
«certbot-dns-azure» \
«certbot-dns-cloudflare»
exit
- Aplicamos un reinicio de servicio al contenedor, sudo docker restart nginxpm:
- Ya podemos renovar nuestros certificados sin problemas:
Saludos y espero que os sea de ayuda 😉

















