DOCKER - 5 4 Exercice Volume nom

Cet exercice vous propose un scénario réaliste : mettre à jour une base de données PostgreSQL sans perdre les données. Dans une architecture classique, on mettrait à jour le logiciel via le gestionnaire de paquets. Avec Docker, vous devez remplacer le conteneur par une nouvelle version, mais les données doivent persister. C'est le rôle des volumes nommés.

Vous créerez d'abord un conteneur PostgreSQL version 9.6.1 avec un volume nommé. Pour cela, consultez la documentation Docker Hub du répo officiel PostgreSQL : identifiez le chemin du volume à l'intérieur du conteneur (par exemple /var/lib/postgresql/data), puis créez le conteneur avec docker run -v nom-volume:/var/lib/postgresql/data .... Vérifiez ensuite les logs pour voir quand la base se termine d'initialiser.

Arrêtez ce conteneur, puis démarrez-en un nouveau avec une version plus récente (par exemple PostgreSQL 13) en spécifiant le même volume nommé. Lors du second démarrage, les logs sont beaucoup plus courts car PostgreSQL n'a pas à recréer la base : il la trouve déjà sur le volume. Vous pouvez vérifier le volume avec docker volume ls.

C'est ainsi qu'on gère les mises à jour de production : les données survivent au remplacement du conteneur. Attention : les mises à jour majeures (PostgreSQL 9 vers 12) nécessitent généralement des outils de migration spécifiques. Cet exercice couvre les mises à jour de patch, qui ne modifient pas le schéma.