Watchtower: Actualiza automáticamente contenedores docker
2018-09-12
Índice
Introduccion
Atención Hay una nueva publicación más reciente sobre Watchtower
Últimamente ando jugando con Docker, instalando y probando diferentes contenedores (plex, nextcloud, mariadb, etc.) en la raspberry pi. Y precisamente uno de los problemas que encontraba era la de realizar las actualizaciones, ya que tenia que volver crear los contenedores de forma manual, manteniendo ficheros de configuración, carpetas de datos, etc.
La solución la encontró precisamente con otro contenedor, Watchtower, el cual se encarga de vigilar las imágenes de los contenedores que tenemos ejecutando y busca de forma automática nuevas actualizaciones en sus repositorios, y en caso de que encuentre alguna, para el contenedor y lo vuelve a crear utilizando la imagen actualizada y con las las mismas opciones con las que le creamos inicialmente.
Instalación
Podemos encontrar el repositorio de Watchtower en https://hub.docker.com/r/v2tec/watchtower/
En mi caso quiero ejecutarlo en una raspberry pi, si te fijas en sus etiquetas disponen de una imagen para ser ejecutado en dispositivos arm
Para crear el contenedor para la raspberry pi
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
v2tec/watchtower:armhf-latest
No tendremos ninguna iteración con el contenedor, simplemente se mantendrá funcionando buscando nuevas actualizaciones.
Espero que te haya gustado, pasa un buen día. 🐧
Eliminando imágenes antiguas
Para eliminar las imágenes antiguas de los contenedores que han sido actualizados podemos ejecutar:
docker images -q --filter "dangling=true" | xargs -n1 -r docker rmi
Ademas, puedes añadir este comando como una tarea en cron para automatizar la tarea, en el ejemplo se ejecuta todos los sábados a las 02:00 am
0 2 * * 6 /usr/bin/docker images -q --filter "dangling=true" | xargs -n1 -r docker rmi >/dev/null 2>&1
Espero que te haya gustado, pasa un buen día. 🐧