Automatiza y gestiona tus contenedores Docker: Portal web con Portainer y Watchtower
¿Te agobia tener que arrancar, detener y monitorizar manualmente todos tus contenedores Docker? Hoy te traigo un proyecto doble que te solucionará la vida en tu VPS/Docker host: Portainer (portal web para administrar Docker) junto a Watchtower (actualización automática de contenedores).
¿Por qué elegir este stack?
- Portainer te ofrece un panel visual para controlar tus contenedores, imágenes, volúmenes y redes. Olvídate de depender exclusivamente del terminal.
- Watchtower supervisa tus contenedores y, cuando detecta una nueva versión de la imagen en Docker Hub, ¡los vuelve a desplegar automáticamente! Así tu sistema está siempre actualizado.
- Ambos servicios juntos crean un entorno perfecto para la gestión y mantenimiento de proyectos Docker, ideal si planeas alojar más proyectos después.
Este stack es ideal para principiantes y también para usuarios avanzados que quieren automatización y visibilidad en sus despliegues.
Fichero docker-compose.yml
para Portainer + Watchtower
Copia y pega este fichero en tu VPS o servidor en una carpeta dedicada, y ejecuta docker compose up -d
. ¡Así de fácil!
version: "3.9" services: portainer: image: portainer/portainer-ce:latest restart: unless-stopped container_name: portainer ports: - "9000:9000" volumes: - /var/run/docker.sock:/var/run/docker.sock - portainer_data:/data environment: - TZ=Europe/Madrid healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/api/status"] interval: 30s timeout: 10s retries: 3 watchtower: image: containrrr/watchtower:latest restart: unless-stopped container_name: watchtower environment: - WATCHTOWER_CLEANUP=true - WATCHTOWER_POLL_INTERVAL=3600 volumes: - /var/run/docker.sock:/var/run/docker.sock healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080"] interval: 2m timeout: 10s retries: 2 volumes: portainer_data: driver: local
¿Qué hace cada servicio?
- Portainer se expone en el puerto 9000 y almacena los datos en el volumen
portainer_data
. - Watchtower no expone puertos (pero puedes añadirlos si quieres ver sus logs en tiempo real), y sus variables controlan cada cuánto busca nuevas versiones (
POLL_INTERVAL
) y si elimina imágenes antiguas (CLEANUP
).
Primeros pasos tras el despliegue
- Accede a Portainer en http://<IP-de-tu-servidor>:9000 y crea tu usuario admin.
- Revisa la lista de contenedores, imágenes y redes. ¡Intuitivo, rápido y visual!
- Watchtower estará trabajando en segundo plano, rastreando cuando tus imágenes tengan nuevas versiones en Docker Hub y actualizándolas (puedes consultar sus logs con
docker logs watchtower
).
Consejos y troubleshooting
- Seguridad: Limita el acceso al puerto 9000 usando tu firewall, o configura Portainer detrás de un proxy con HTTPS.
- Personaliza Watchtower: Ajusta
WATCHTOWER_POLL_INTERVAL
para revisar actualizaciones con más o menos frecuencia. - Recuerda que Watchtower solo actualiza imágenes Docker que han sido actualizadas en Docker Hub. Si tus contenedores son personalizados, deberás subir nuevas imágenes allí.
- Problema típico: Si Portainer no arranca, verifica que el volumen
/var/run/docker.sock
existe y que tu usuario tiene permisos sobre Docker.
Para mantener el sistema seguro y eficiente, revisa los logs con docker logs portainer
y docker logs watchtower
ante cualquier duda.