Tous les services opérationnels Devise EUR Aucun frais de mise en service Vous êtes à La Réunion ?
‹ Serveurs VPS et Docker

Mettre à jour un conteneur Docker

Mettre à jour un conteneur Docker, c'est télécharger la nouvelle version de son image puis recréer le conteneur à partir d'elle : un conteneur ne se met jamais à jour sur place. Avec Docker Compose, docker compose pull puis docker compose up -d font tout le travail. Avec docker run, il faut arrêter et supprimer l'ancien conteneur, puis le relancer avec les mêmes options. Les données d'un volume survivent ; sauvegardez-les avant une version majeure.

Par Jonathan Dewaele · publié le

Cet article suit la référence de la ligne de commande Docker, la page sur les volumes et la référence des services Compose, relues le 14 octobre 2026.

Avant de commencer

  1. Lisez les notes de version de l'application, sur son dépôt ou son site. Une version majeure peut changer une variable, un chemin ou le format de la base, et demander une étape à la main.
  2. Repérez où sont les données. docker inspect nom liste, dans sa section Mounts, les volumes et dossiers montés. Ce qui n'y figure pas sera perdu à la recréation.
  3. Notez la version actuelle. docker ps affiche l'image et son étiquette : c'est elle que vous remettrez si la mise à jour se passe mal.
  4. Sauvegardez les volumes, comme décrit plus bas.

Avec Docker Compose

Placez-vous dans le dossier de compose.yaml.

  1. Si l'étiquette de l'image est figée, par exemple nginx:1.26, changez-la pour la nouvelle version. Les bases de données font exception : un PostgreSQL d'une version majeure plus récente refuse de démarrer sur les données de la précédente. Exportez la base, montez la nouvelle version sur un volume neuf, puis importez l'export.
  2. docker compose pull télécharge les nouvelles images.
  3. docker compose up -d recrée seulement les conteneurs dont l'image ou la configuration a changé.
  4. docker compose logs -f vous montre le démarrage : attendez qu'il soit terminé avant de déclarer la mise à jour réussie.
  5. docker image prune supprime ensuite les anciennes images devenues sans étiquette.

Les commandes de Compose sont expliquées dans Docker Compose : décrire et lancer vos conteneurs.

Avec docker run

Un conteneur lancé à la main doit être recréé avec exactement les mêmes options : nom, ports, volumes, variables, politique de redémarrage. Si vous ne les avez plus, docker inspect nom les contient toutes. Dans l'exemple, appli est le nom du conteneur et editeur/appli:2 son image, deux noms à remplacer par les vôtres :

  1. docker pull editeur/appli:2 télécharge la nouvelle version de l'image pour cette étiquette.
  2. docker stop appli arrête l'ancien conteneur.
  3. docker rm appli le supprime. Ses volumes nommés restent intacts : la documentation précise que docker rm, même avec -v, ne supprime jamais un volume nommé.
  4. Relancez la même commande docker run qu'à l'origine, avec la même image.
  5. docker logs -f appli vérifie le démarrage.

Cette recopie à la main est la principale source d'erreur. Si le conteneur doit vivre longtemps, passez-le en compose.yaml : sa configuration est alors écrite une fois, et la mise à jour se fait en deux commandes.

Sauvegarder un volume

La page des volumes de Docker donne une méthode qui ne demande aucun outil sur le serveur : un conteneur temporaire monte le volume et l'archive dans le dossier courant. Arrêtez d'abord l'application, pour que ses fichiers ne changent pas pendant la copie :

docker stop appli
docker run --rm --volumes-from appli -v $(pwd):/backup ubuntu tar cvf /backup/appli.tar /donnees
docker start appli

Remplacez /donnees par le chemin du volume dans le conteneur, lu dans la section Mounts de docker inspect. Pour une base de données, un export par son propre outil, comme pg_dumpall pour PostgreSQL, est plus sûr qu'une copie de fichiers.

Revenir en arrière

Si la nouvelle version ne démarre pas, remettez l'étiquette notée avant la mise à jour, puis recréez le conteneur. Cela suffit tant que l'application n'a pas modifié ses données. Si elle a migré sa base au démarrage, l'ancienne version risque de ne plus la lire : restaurez alors la sauvegarde du volume avant de relancer l'ancienne image.

Choisir son étiquette

  • Une étiquette majeure, comme :1 ou :17, reçoit les correctifs de la version sans changer de version majeure à votre insu.
  • latest change de version majeure dès que l'éditeur en publie une : une simple mise à jour peut alors casser l'application.
  • Une empreinte, image@sha256:…, désigne une image exacte, qui ne bouge plus. La référence de Compose accepte cette forme dans le champ image.

Sur un VPS Hubspace

Docker et docker compose sont installés à la livraison. Les mises à jour automatiques de la nuit portent sur le système, pas sur vos images : vos conteneurs se mettent à jour quand vous le décidez, et le serveur n'étant pas managé, ce choix vous revient. Avant une version majeure, lancez aussi une sauvegarde depuis l'onglet « Backups » de votre espace client. Elle couvre le disque du serveur, donc les volumes Docker qui y vivent, mais pas le disque supplémentaire monté sur /mnt/data : des données rangées là demandent leur propre copie. Pour les commandes de base, voir Les commandes Docker essentielles.

Questions fréquentes

Mes données sont-elles perdues quand je supprime le conteneur ?

Non, si elles sont dans un volume nommé ou un dossier du serveur monté dans le conteneur. Tout ce qui est écrit ailleurs dans le conteneur disparaît avec lui.

Faut-il mettre à jour les conteneurs automatiquement ?

C'est possible, mais une mise à jour qui casse l'application la nuit passe inaperçue jusqu'au matin. Pour une application qui compte, une mise à jour à la main, après lecture des notes de version et avec une sauvegarde, reste plus sûre.

Comment savoir si une nouvelle version existe ?

Les notes de version de l'application, sur son dépôt ou son site, l'annoncent. docker compose pull télécharge aussi toute nouvelle image publiée sous l'étiquette que vous utilisez.

Articles liés