Ce document décrit les procédures et bonnes pratiques de maintenance pour l’environnement Forge Docker.
Il couvre la supervision, les mises à jour, le nettoyage, les sauvegardes et les vérifications périodiques.
La maintenance vise à garantir la stabilité, la sécurité et la pérennité de la stack Forge Docker.
Bien que l’environnement soit géré “as code” via Ansible et Docker Compose, certaines opérations manuelles peuvent être nécessaires entre deux déploiements.
docker ps
docker compose psdocker logs -f <nom_du_conteneur>
# Exemple :
docker logs -f jenkinsdocker compose restart <service>
# Exemple :
docker compose restart giteadocker inspect <nom_du_conteneur>La priorité dans la démarche DevOps est de gérer les mises à jour via le code source :
- modification du
docker-compose.ymlpour changer les versions d’image, - déploiement automatisé via Ansible :
ansible-playbook -i inventory.ini forge-cicd.ymlCette méthode garantit la traçabilité et la reproductibilité.
Si nécessaire, une mise à jour manuelle peut être effectuée directement sur l’hôte Docker :
# Récupérer les dernières images
docker compose pull
# Relancer la stack
docker compose up -d
# Supprimer les anciennes images inutilisées
docker image prune -fCes commandes permettent de maintenir la stack à jour sans passer par Ansible, tout en conservant les volumes persistants.
docker stats
docker system df
docker volume ls
docker network lsLes certificats sont générés et renouvelés automatiquement par nginx-letsencrypt.
Pour vérifier leur présence ou leur validité :
docker exec nginx-proxy ls -l /etc/nginx/certs/Le script cleanup_docker.sh est utilisé pour nettoyer les ressources Docker inutilisées.
Il exécute les actions suivantes :
- Suppression des conteneurs arrêtés
- Suppression des images non utilisées
- Suppression des volumes non référencés
- Suppression des réseaux inactifs
./cleanup_docker.sh- Vérifier que tous les services critiques sont actifs avant exécution.
- Ne pas exécuter ce script pendant un déploiement ou une mise à jour.
- Les volumes actifs (ex :
gitea-data,jenkins-home) ne sont pas supprimés.
Chaque volume Docker peut être sauvegardé sous forme d’archive .tar :
docker run --rm -v <nom_du_volume>:/data -v $(pwd):/backup alpine tar czf /backup/<nom_du_volume>.tar.gz -C /data .Exemple : sauvegarde du volume Gitea
docker run --rm -v gitea-data:/data -v $(pwd):/backup alpine tar czf /backup/gitea-data.tar.gz -C /data .docker run --rm -v <nom_du_volume>:/data -v $(pwd):/backup alpine tar xzf /backup/<nom_du_volume>.tar.gz -C /data- Copier le fichier
.tar.gzsur le nouvel hôte (scpou autre). - Créer le volume sur le nouvel hôte :
docker volume create <nom_du_volume>
- Restaurer les données avec la même commande que ci-dessus.