Conseils gestion des mises à jour de containers Docker

Bonjour,

J’ai une VM Debian avec Docker contenant une dizaine de containers utiles à Home Assistant. Dans mon docker compose, je mentionne le n° de version de chaque image afin d’être maître de mes mises à jour de versions d’images.
J’aimerai savoir si vous avez une méthode particulière, conseils ou avis pour upgrader l’image de vos containers. Je pense notamment à l’aspect sécurité, dans le cas où la mise à jour se passe mal pour pouvoir facilement revenir à l’ancienne version

PS : Je laisse les modos vérifier si j’ai posté au bon endroit car j’ai un doute de l’endroit où j’ai crée ce post

Merci

Je comprends que tu as installés les containers « à la main » (donc sans superviseur…). C’est aussi mon cas.
Tu rajoutes:

  • watchtower (pour savoir quand des nouvelles versions de containers sont disponibles)
  • portainer pour avoir une interface web ou tout est plus simple :slight_smile:

Avec ça, tu gardes les containers à jour si tu veux et tu peux très facilement faire des retours arrière si besoin.

Oui c’est ça, j’ai fait « à la main ». J’ai tout de même installé Portainer pour vérifier l’état de mes containers, les redémarrer, les stopper, …

Si je comprends bien WatchTower vérifie les disponibilités de mises à jour, mais ne les effectue pas ? Tu fais tes updates avec Portainer ?

C’est ça. Tu configures watchtower pour vérifier (dans mon cas une fois par jour), il envoie un mail s’il y a du nouveau mais ne fait pas la mise à jour lui-même. Il peut tout faire, mais, je préfère m’en occuper…
Et après dans portainer en un clic, c’est parti.

Bon ba ça a l’air d’être est pile ce que je souhaite :slight_smile:

Je vais me renseigner sur WatchTower car c’est nouveau pour moi.

Et ensuite lorsque WT t’as averti de mises à jour, tu procèdes comment pour faire l’update avec Portainer ? Sachant que dans mon Docker Compose j’ai mentionné le n° de version des images, c’est lui qui ira modifier ce n° de version dans mon fichier docker compose ?

Non, je ne crois pas. Je n’utilise pas docker compose… Mais, normalement, dans l’interface de portainer pour les container, il va « traduire » le docker compose dans l’interface. En tout cas avec la commande docker de base, c’est ce qu’il se passe. Et après, dans l’interface de portainer tu peux choisir le numéro de version.
Si tu cliques sur « recreate » par défaut (en tout cas chez moi) ça va chercher la « latest » et si tu va dans « duplicate/edit », tu peux choisir le nom de l’image et donc la version.

Je vois bien la stack correspondant à mon docker compose, mais les commandes sont limitées du au fait que les containers soient crées en dehors de portainer. Quand je fais un recreate, avec l’option pour chercher le latest, il recrée le container mais avec la version définie dans mon docker compose

Ah… Si tu vas dans « duplicate/edit », est ce que dans le nom du container tu vois la version que tu as demandé dans compose? Si oui, et que tu changes en « latest », ça pourrait marcher.

J’ai fait la manip que tu m’as conseillé et j’ai quelques questions pour le coup.
Après avoir été dans « Duplicate/Edit » puis modifié le n° de version, le container a bien été recrée avec la nouvelle version :+1:

J’ai voulu aller voir mon fichier docker-compose afin de vérifier s’il avait été modifié par Portainer, mais non. L’image du container est restée avec l’ancienne version. J’ai testé de faire un « docker-compose up » afin de remettre l’ancienne version (simple test) mais ca n’a pas fonctionné. Comme si le fait que le container ait été crée avec Portainer, il ne le gère plus avec docker compose.

Je pense que c’est fromage ou dessert… Donc docker-compose ou portainer.
Perso, pour un truc assez stable, je n’ai pas bien vu le bénéfice de docker-compose par rapport à la commande en CLI. Mais, je connais mal Docker, j’ai donc peut-être loupé un truc.

Oui c’est ce que je me suis dit aussi. Je débute sur Docker (depuis 3 mois seulement). Je suis parti sur docker compose car je trouvais pratique d’avoir toutes mes commandes pour lancer mes containers dans un seul fichier texte. Avec plus d’expérience peut être que je n’utiliserai pas Docker compose…

Bah, moi, avec à peine plus, j’ai tout fait en ligne de commande :slight_smile:
En général tu trouves la « bonne » commande sur le site ou est le container.

Je débute également sous docker, le gros avantage que je vois pour docker-compose, c’est la portablilité en cas de besoin de migration un jour, on sauvegarde bien les dockers dans un coin et le jour ou on doit redeployer un ou plusieurs services c’est très vite fait :wink:
Par contre contrairement à toi j’ai un docker-compose par service. pour bien séparer tout ca :wink:

Ah ok, plein de façons de gérer ses containers pour le coup. Tu fais tes mises à jour comment ?

En ligne de commande :slight_smile:
Dans le répertoire de mon docker-compose :
sudo docker-compose pull ; sudo docker-compose up -d --remove-orphans

Ok comme moi du coup. J’ai toujours peur qu’en cas d’update d’un container que celui ci ne fonctionne plus sans que je puisse revenir à la version antérieure… C’est une solution pour éviter cela que j’aimerai trouver

Avec portainer mais sans docker-compose c’est faisable :wink:
Et pour la portabilité évoquée par @Ioull , on peut relancer les X lignes de commandes (une par container) sur un autre système. Au lieu de garder les docker-compose, il « suffit » de garder les lignes de commande dans un coin…