GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Comment mettre à jour automatiquement les conteneurs Docker en cours d'exécution

Tour de guet est une application open source gratuite qui vous permet de surveiller les conteneurs Docker en cours d'exécution et de les mettre à jour automatiquement lorsqu'elle détecte des modifications dans leurs images de base. Lorsque la tour de guet constate qu'un conteneur en cours d'exécution doit être mis à jour, elle arrête gracieusement le conteneur en cours d'exécution en lui envoyant un signal SIGTERM. Il téléchargera ensuite la nouvelle image et redémarrera enfin le conteneur avec les mêmes options que celles utilisées lors de son déploiement initial. Tout se fera automatiquement en arrière-plan, l'intervention de l'utilisateur n'est donc pas nécessaire. Dans ce guide, nous verrons comment mettre à jour automatiquement les conteneurs Docker en cours d'exécution à l'aide de Watchtower dans les systèmes d'exploitation de type Unix.

J'ai testé ce guide dans l'édition minimale de CentOS 7, mais la procédure est la même pour toutes les distributions Linux.

Watchtower - Mettre à jour automatiquement les conteneurs Docker en cours d'exécution

Installer la Tour de Garde

Watchtower lui-même est disponible en tant qu'image Docker. Donc, le déployer n'est pas un gros problème. Installez Docker sur votre machine Linux et lancez Watchtower pour surveiller les conteneurs Docker en un rien de temps.

Reportez-vous aux guides suivants pour installer Docker sur des systèmes basés sur YUM et DEB.

  • Comment installer Docker dans CentOS
  • Comment installer Docker dans Ubuntu

Une fois Docker installé, vous pouvez déployer le conteneur Watchtower en utilisant la commande suivante en tant que root utilisateur :

# docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock v2tec/watchtower

Cette commande extraira la dernière image de la tour de guet et démarrera le conteneur de la tour de guet.

Exemple de résultat :

Unable to find image 'v2tec/watchtower:latest' locally
latest: Pulling from v2tec/watchtower
a3ed95caeb02: Pull complete 
802d894958a2: Pull complete 
9916c27d2815: Pull complete 
Digest: sha256:d89ea18b6332cc83639771fda274ebfd76f7042856d8f4997e99c7925ad02ae9
Status: Downloaded newer image for v2tec/watchtower:latest
e85c923f2e4dd22a62c12b038ea9694ba9245dcd835f210e1a1f902ee311e004
Téléchargement recommandé - Ebook gratuit :"Docker Containerization Cookbook"

Utilisation

Watchtower a maintenant démarré avec d'autres conteneurs en cours d'exécution sur votre système. Vous pouvez afficher la liste des conteneurs Docker en cours d'exécution à l'aide de la commande :

# docker ps

Exemple de résultat :

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e85c923f2e4d v2tec/watchtower "/watchtower" 3 minutes ago Up 3 minutes watchtower
58543e6ed18a centos:latest "/bin/bash" 5 minutes ago Up 5 minutes ostechnix

Comme vous le voyez dans la sortie ci-dessus, le conteneur Watchtower s'exécute avec un autre conteneur nommé "ostechnix". À partir de maintenant, la Watchtower commencera à surveiller ce conteneur toutes les quelques minutes. S'il trouve des modifications dans l'image de base de ce conteneur, il fermera gracieusement le conteneur "ostechnix" et le redémarrera avec une nouvelle image avec les mêmes options que celles utilisées lors de son démarrage initial. De même, il vérifiera automatiquement les mises à jour de tous les conteneurs en cours d'exécution toutes les quelques minutes et les mettra à jour automatiquement.

Par défaut, Watchtower surveille tous les conteneurs Docker exécutés dans le démon Docker vers lequel il pointe. Cependant, vous pouvez limiter la tour de guet à la surveillance d'un conteneur Docker particulier en spécifiant le nom du conteneur comme indiqué ci-dessous.

# docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock v2tec/watchtower ostechnix

Dans l'exemple ci-dessus, la tour de guet ne surveillera que le conteneur nommé "ostechnix" pour les mises à jour, et les autres conteneurs en cours d'exécution seront ignorés. Si vous ne spécifiez aucun argument, la tour de guet surveillera tous les conteneurs Docker en cours d'exécution comme d'habitude.

Lecture recommandée :

  • Premiers pas avec Docker
  • ctop – Un outil de surveillance en ligne de commande pour les conteneurs Linux
  • Dockly – Gérer les conteneurs Docker depuis le terminal
  • Portainer – Le moyen le plus simple de gérer Docker
  • PiCluster :une application de gestion Docker simple et basée sur le Web

Watchtower est suffisamment intelligent pour surveiller plusieurs conteneurs liés. Disons que vous utilisez deux conteneurs nommés "Nginx" et le conteneur "wordpress" qui est lié au conteneur "Nginx". Si Watchtower trouve une mise à jour pour le conteneur "Nginx", il arrête d'abord le conteneur lié, c'est-à-dire "wordpress", puis arrête le conteneur Nginx. Ensuite, il redémarrera les deux conteneurs dans le bon ordre, afin que l'application revienne correctement. Dans notre cas, le conteneur Nginx sera démarré en premier, suivi du conteneur wordpress pour s'assurer que le lien continue de fonctionner. Pour plus de détails, consultez le lien de la page Watchtower GitHub fourni à la fin de ce guide.

Et c'est tout. Si vous trouvez nos guides utiles, partagez-les sur vos réseaux sociaux et professionnels et soutenez OSTechNix. Plus de bonnes choses à venir. Restez à l'écoute !

Santé !


Docker
  1. Comment utiliser Docker Compose

  2. Comment faire fonctionner les conteneurs Docker lorsque le démon s'arrête

  3. Comment exécuter une commande sur un conteneur Docker en cours d'exécution

  4. Comment répertorier les conteneurs Docker

  5. Comment supprimer tous les conteneurs Docker

Comment exécuter des conteneurs Docker

Comment supprimer les conteneurs Docker

Comment arrêter les conteneurs Docker

Comment nommer ou renommer les conteneurs Docker

Comment gérer les conteneurs Docker

Comment configurer les espaces de noms réseau dans les conteneurs Docker