/ tech

Mise à jour des containers Docker

images-1
Depuis ma bascule sous Docker certains concepts sont à àppréhender, comme la mise à jour des containers.

Docker-compose et mise à jour des containers

Pour demarrer un container via docker-compose :
on se met dans le répertoire contenant le fichier docker-compose.yml.

sudo docker-compose up -d

pour mettre à jour une image :
on fait un
sudo docker pull home-assistant/homeassistant

cela aura pour conséquence le téléchargement de la dernière image disponible du hub en local.

Si maintenant on réalise un arret/relance du container :
sudo docker-compose down; sudo docker-compose up -d

on est maintenant sur la nouvelle version de HomeAssistant.
on peut d'ailleurs le véfier avec un :
sudo docker-compose logs -f

Mise à jour automatique des containers docker

Selon le cas, les containers doivent ou non, être mis à jour automatiquement.

Il s'agit de deux approches différentes.

Parfois il sera nécessaire d'avoir une version spécifique du container pour qu'il soit compatible avec telle ou telle version d'un programme externe.

D'autre fois, nous trouverions logique de pousser la mise à jour du container automatiquement, pour Home Assistant par exemple ou pour éviter tout simplement les failles de sécurité.

Pour ce faire on va passer par un container ... forcément :)

WatchTower

Ci dessous le docker-compose.yml à utiliser :

version: "3"
services:
  watchtower:
    image: v2tec/watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: --interval 30

Ici on va faire une vérification toutes les 30 secondes d'une nouvelle version des containers.
Pour que ce container fonctionne il faut bien évidemment lui donner accès au fichier socket de docker.

Le fonctionnement de WatchTower est le suivant, il va vérifier à intervalle régulier la présence dans les repository distant, d'une nouvelle version des containers.
Si une nouvelle version est disponible docker va pull cette version, de manière à l'avoir dans le repository local.

Puis WatchTower va faire un down puis un up du container pour que la nouvelle version soit prise en compte.

Il existe évidemment un mecanisme pour éviter de mettre certains containers à jour.

il suffit de passer cet argument au container :
--label-enable

Pour tous les containers qui auront le paramètre com.centurylinklabs.watchtower.enable à false, WatchTower ne les mettra pas à jour.

Mise à jour des containers Docker
Share this