Chapitre 6 · 6.4
Mettre à jour les conteneurs, faire le ménage et limiter les journaux
Mettre à jour
Un conteneur ne se met pas à jour tout seul. Vous récupérez les nouvelles images et redémarrez les conteneurs :
anna@web1:~$ cd /srv/diensten
anna@web1:/srv/diensten$ sudo docker compose pull
anna@web1:/srv/diensten$ sudo docker compose up -d
Seuls les conteneurs dont l'image a changé sont recréés. Vos données se trouvent dans des volumes et sont conservées.
- Avant une mise à jour importante, lisez les notes de version de l'application. Il faut parfois d'abord modifier quelque chose.
- Avant une mise à jour, faites une sauvegarde des volumes (voir Bien inclure les bases de données et les volumes Docker dans vos sauvegardes), ou au minimum un snapshot.
- Une version fixe dans le tag, comme
vaultwarden/server:1.37.5, évite les surprises. Vous l'augmentez alors vous-même. Aveclatest, vous obtenez la version la plus récente à chaquepull.
Faire le ménage
Les anciennes images restent sur votre disque. Vérifiez l'espace utilisé par Docker et faites le ménage :
anna@web1:~$ sudo docker system df
anna@web1:~$ sudo docker image prune
docker image prune supprime uniquement les images sans nom qui ne sont plus rattachées à rien. Avec -a, il supprime toutes les images qu'aucun conteneur n'utilise.
Attention : Soyez prudent avec docker volume prune et docker system prune --volumes. Ces commandes peuvent supprimer des données dont vous avez encore besoin.
Limiter les journaux
Docker conserve la sortie de chaque conteneur dans un fichier journal qui, par défaut, grossit sans limite. Fixez une limite dans /etc/docker/daemon.json :
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
anna@web1:~$ sudo systemctl restart docker
anna@web1:~$ cd /srv/diensten && sudo docker compose up -d --force-recreate
La limite ne s'applique qu'aux conteneurs créés après ce changement ; c'est pourquoi vous les recréez.
Arrêter et supprimer
| Commande | Que fait-elle ? |
|---|---|
sudo docker compose stop | Arrêter les conteneurs, sans rien supprimer |
sudo docker compose down | Supprimer les conteneurs et le réseau ; les volumes sont conservés |
sudo docker compose down -v | Supprimer aussi les volumes : toutes vos données sont perdues |
