En el mundo de los contenedores, mantener tus imágenes actualizadas es crucial para asegurar la estabilidad, seguridad y rendimiento de tus aplicaciones. Una herramienta poderosa y sencilla para lograr esto es Watchtower, un proyecto de Containrrr. En este post aprenderás a instalar Watchtower con Docker y Docker Compose.

¿Qué es Watchtower?

Watchtower es una herramienta de código abierto que te ayuda a mantener tus contenedores Docker siempre actualizados. Monitorea los contenedores en ejecución y actualiza automáticamente las imágenes cuando se detectan nuevas versiones. Esto permite que tus aplicaciones se beneficien de las últimas mejoras y parches de seguridad sin necesidad de intervención manual.

Ventajas de usar Watchtower

  1. Automatización: Actualiza automáticamente las imágenes de tus contenedores, ahorrándote tiempo y esfuerzo.
  2. Seguridad: Garantiza que tus aplicaciones estén protegidas con los últimos parches de seguridad.
  3. Consistencia: Mantiene la coherencia en tus entornos de desarrollo y producción.
  4. Simplicidad: Fácil de configurar y usar, incluso para principiantes.

Cómo instalar y configurar Watchtower

Vamos a ver cómo puedes instalar y configurar Watchtower en tu sistema. Asumiremos que ya tienes Docker/Docker compose instalado y funcionando en tu máquina. Si no es así, puedes seguir la guía paso a paso sobre como Instalar Docker en Ubuntu 24.04 y Instalar Docker Compose en Ubuntu 24.04.

1. Instalar Watchtower con Docker

Primero, necesitas ejecutar Watchtower como un contenedor Docker. Puedes hacerlo utilizando el siguiente comando:

docker run -d \
  --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
  containrrr/watchtower

Este comando ejecutará Watchtower en segundo plano (-d) y le dará acceso al socket Docker (-v /var/run/docker.sock:/var/run/docker.sock), lo cual es necesario para que pueda gestionar otros contenedores.

2. Configura las opciones de Watchtower

Watchtower viene con varias opciones de configuración que puedes utilizar según tus necesidades. Por ejemplo, si deseas que Watchtower revise las actualizaciones cada 5 minutos, puedes añadir la opción --interval 300 al comando:

docker run -d \
  --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
  containrrr/watchtower \
  --interval 300

Como considero que compruebe si hay actualizaciones cada 5 minutos te dejo mi configuración (cada 24 Horas)

docker run -d \
  --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
  containrrr/watchtower \
  --interval 86400

3. Instalar Watchtower con Docker Compose

Si en vez de utilizar Docker prefieres hacerlo con un docker-compose.yml, te dejo como quedaría un despliegue para el contenedor de Watchtower con un intervalo revisar actualizaciones de 24 Horas.

version: "3"
services:
  watchtower:
   container_name: watchtower
   image: containrrr/watchtower
   volumes:
     - /var/run/docker.sock:/var/run/docker.sock
   command: --interval 86400 --cleanup
   restart: unless-stopped

4. Opciones avanzadas

Watchtower ofrece muchas más opciones avanzadas, como notificaciones, filtrado de contenedores específicos para actualizar y más. Puedes explorar todas las opciones en la documentación oficial de Watchtower.

4.1 Consideraciones de seguridad

Aunque Watchtower es una herramienta muy útil, es importante tener en cuenta algunas prácticas de seguridad:

  • Revisa las actualizaciones: Asegúrate de que las actualizaciones no rompan la compatibilidad de tus aplicaciones.
  • Usa imágenes confiables: Solo utiliza imágenes de Docker oficiales o de fuentes confiables.
  • Configura notificaciones: Configura Watchtower para que te notifique cuando se realicen actualizaciones, permitiéndote estar al tanto de los cambios en tus contenedores.

Gracias a este contenedor siempre tendremos nuestras aplicaciones actualizadas de manera automática y sin preocuparnos de nada.

Comentarios

No hay comentarios todavía. ¿Tienes algúna duda? Deja un comentario.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *