Recherche sur le site Web

Optimisez vos mises à jour Docker avec cette astuce


J'adore Docker, mais je déteste le fait que les conteneurs doivent être mis à jour manuellement. Alors, j'ai trouvé une solution : Watchtower. Ce simple conteneur Docker a complètement simplifié ma configuration, et je ne déploierai plus un autre serveur Docker sans lui.

Les conteneurs Docker ne se mettent pas à jour eux-mêmes.

J'aime tout ce qui touche aux conteneurs Docker, sauf le fait qu'il n'y a pas de méthode de mise à jour simple dans la plupart des gestionnaires de Docker. Bien qu'Unraid offre un excellent système de mise à jour de Docker, vous devez généralement recréer le conteneur pour le mettre à jour, même avec quelque chose comme Portainer.

Aucune donnée n'est perdue lors de cette recréation, et c'est honnêtement une chose simple à faire. Cependant, savoir si un conteneur a une mise à jour, en plus de mettre à jour de nombreux conteneurs en même temps, peut être un peu fastidieux.

Honnêtement, j'étais un peu surpris par cela. Jusqu'au mois dernier environ, j'ai toujours utilisé Unraid pour gérer mes conteneurs Docker. Unraid a une excellente interface pour savoir si un conteneur a une mise à jour et pour appliquer cette mise à jour. En fait, dans Unraid, vous pouvez cliquer sur les conteneurs individuels pour les mettre à jour, ou cliquer sur un bouton et tous les mettre à jour en même temps.

Mais, en passant à Portainer, j'ai réalisé que c'était une fonctionnalité d'Unraid, et non quelque chose que Docker faisait lui-même. À ce moment-là, j'ai décidé que je devais trouver un meilleur moyen de gérer la mise à jour de mes conteneurs Docker. Un moyen qui soit plus automatisé et sans intervention que de recréer manuellement chaque conteneur.

La Tour de Guet garde un œil sur les mises à jour de Docker

Lorsque j'ai commencé à chercher un système de mise à jour automatisé pour Docker, Watchtower a été le premier logiciel que j'ai découvert. C'est aussi là que ma recherche s'est arrêtée, car il fait tout ce dont j'ai besoin et plus encore.

Watchtower est un conteneur Docker qui fonctionne au sein de votre configuration Docker. En se connectant au socket Docker, il peut voir quels conteneurs vous avez et sait quoi faire ensuite. Déployer Watchtower est extrêmement simple.

Sans arguments supplémentaires, le conteneur Watchtower s'exécutera une fois puis s'arrêtera. Cependant, il existe de nombreuses variables d'environnement qui peuvent être définies. L'une des principales que j'utilise est WATCHTOWER_DISABLE_CONTAINERS, à laquelle vous donnez le nom du conteneur en tant que variable. Cela dit essentiellement à Watchtower d'ignorer ces conteneurs.

Si vous avez des conteneurs essentiels à la mission que vous ne voulez pas mettre à jour automatiquement et qui pourraient potentiellement être endommagés, vous voudrez vous assurer qu'ils sont dans la variable WATCHTOWER_DISABLE_CONTAINERS.

J'ai également les variables d'environnement WATCHTOWER_SCHEDULE et TZ définies pour gérer la planification lorsque Watchtower s'exécute. Il utilise la planification Chron, et le mien est réglé pour s'exécuter tôt le matin tous les jours, lorsque personne n'utilise généralement aucun des services ou sites Web que j'héberge dans ma configuration Docker. Cependant, vous pouvez le configurer pour qu'il vérifie une fois par jour, plusieurs fois par jour, une fois par semaine, une fois par mois. C'est vraiment à vous de décider.

Mise à jour automatique ou simplement notifier, le choix vous appartient.

Watchtower est assez configurable. Non seulement vous pouvez lui dire quand s'exécuter et quels conteneurs ignorer, mais vous pouvez également déterminer s'il met à jour ces conteneurs ou non.

Watchtower peut s'intégrer à Discord et Slack, vous permettant de configurer des notifications pour ce qu'il fait. Cela signifie que vous pouvez simplement lui demander de vous dire quand un conteneur a une mise à jour, mais ne rien en faire. D'un autre côté, vous pourriez lui faire faire la mise à jour complète des conteneurs et vous dire quand c'est terminé. Ou alors, soyez comme moi, et faites-le mettre à jour sans jamais savoir ce qui se passe à moins de consulter les journaux.

Alors, devriez-vous le configurer pour des mises à jour automatiques ou juste pour des notifications ? Eh bien, j'ai la plupart de mes conteneurs en mise à jour automatique : ceux que je ne prévois pas de casser, et qui sont relativement faciles à réparer si cela devait arriver. D'autres services pourraient se casser de manière catastrophique avec une mise à jour automatique.

Vous devez déterminer quel niveau d'automatisation vous souhaitez mettre en œuvre ici. La grande chose avec Watchtower, c'est qu'il est ultra-configurable, donc vous pouvez décider au cas par cas si un conteneur est géré automatiquement.

Watchtower vous permet de choisir avec quels conteneurs il fonctionne grâce à la variable WATCHTOWER_DISABLE_CONTAINERS, ou par le biais d'étiquettes. Avec les étiquettes, vous pouvez passer une variable au conteneur lui-même, soit l'activer, soit le désactiver pour Watchtower. Bien que je n'aie pas encore utilisé cette fonction de Watchtower, c'est formidable de voir que vous pouvez définir les indicateurs dans vos autres conteneurs au lieu de devoir les définir dans Watchtower. Ensuite, vous pouvez simplement changer cet indicateur dans le futur si vous souhaitez modifier la fonction de Watchtower.

Articles connexes: