Cas d’usage · Ce qu’il fait sur votre serveur
Sauvegarder un VPS qui fait tourner Docker
Sauvegarder un serveur Docker : projets Compose, volumes nommés, bases dans des conteneurs. Quoi vérifier, comment restaurer un volume ou le serveur entier.
Vos applications tournent dans des conteneurs Docker, en général lancés avec Docker Compose, sur un serveur Linux. Leurs données sont dans des volumes nommés, dans des dossiers du serveur montés dans les conteneurs, et dans des conteneurs de bases de données. Cette page dit ce que NeverWiped sauvegarde sur un tel serveur, ce qu’il faut vérifier avant la première sauvegarde, et comment récupérer un volume, une base ou le serveur entier.
Ce que l’agent trouve
- Vos projets Compose. Un dossier de
/optqui contient uncompose.ymlou undocker-compose.ymlest sauvegardé comme application, avec son fichier.envet les dossiers montés depuis lui (./data:/data). Les projets placés dans/srv,/homeou/rootsont sauvegardés avec ces dossiers (ce qui est sauvegardé). - Les bases dans des conteneurs. Un conteneur PostgreSQL, MySQL ou MariaDB en marche est exporté par
docker exec:pg_dumpallavec l’utilisateur dePOSTGRES_USER, oumysqldumpavec le mot de passe root des variables des images officielles. Son volume n’est pas copié en fichiers : l’export le remplace. - Les autres volumes nommés. Ils sont lus pendant que les conteneurs tournent. Pour les images qui écrivent sur place un état de type base de données (Redis, Valkey, MongoDB, Elasticsearch, OpenSearch, InfluxDB, RabbitMQ, Vaultwarden et semblables), l’installation propose une copie avec leurs conteneurs en pause le temps d’une copie locale (
docker pause: figés, pas redémarrés). Voir un volume Docker. - Le reste du serveur :
/etc, les tâches planifiées,/rootet/home.
Non sauvegardés : les images Docker et les couches des conteneurs (/var/lib/docker/overlay2 est exclu). On les retrouve avec docker compose pull ou en reconstruisant depuis le Dockerfile de votre dossier de projet.
Vérifiez le plan avant de l’accepter
- Un dossier monté depuis ailleurs (
/data, un second disque) : ajoutez-le avec--include /data. Les dossiers montés depuis l’intérieur du dossier de projet y sont déjà. - Le dossier d’une base monté depuis le dossier de projet (
./pgdata:/var/lib/postgresql/data) : l’export couvre déjà cette base, et une copie de ses fichiers en marche n’est pas cohérente. Écartez-le avec--exclude /opt/app/pgdata. - Un conteneur de base arrêté n’est pas exporté : les conteneurs sont trouvés avec
docker ps, qui liste ceux qui tournent. Démarrez vos services avant l’installation. - Un volume pris de la mauvaise façon : changez-le avec
--pause-volume <name>ou--live-volume <name>. - Rien de Docker dans la sauvegarde :
--no-docker.
Le plan est établi à l’installation. Quand vous ajoutez ensuite un conteneur, un volume ou un projet, relancez neverwiped install --yes avec les mêmes options : il refait la détection et garde le même serveur, le même dépôt et la même clé de récupération. neverwiped status montre ce qui est sauvegardé et comment chaque volume est pris.
Récupérer
- Un volume. Restaurez-le dans un dossier à part, arrêtez les conteneurs qui l’utilisent, mettez son contenu actuel de côté, copiez la sauvegarde dedans, redémarrez-les (un volume Docker).
- Une base dans un conteneur. L’export revient sous le nom
postgresql-docker-<container>.sqloumysql-docker-<container>.sql, et s’importe avecdocker exec -i(bases dans Docker). Une seule base : une base de données. - Le serveur entier. Sur le nouveau serveur, installez d’abord Docker, puis l’agent, lancez
neverwiped recoveret restaurez dans un dossier. Recopiez vos dossiers de projet, lancezdocker compose up --no-startpour créer les volumes, copiez les volumes dedans, importez les exports, puis démarrez les services (un serveur entier).
Avant un changement risqué (une version majeure d’une image de base de données, une migration), lancez neverwiped backup now.
Ce qu’il ne fait pas ici
- Pas d’image du serveur. Le moteur Docker, ses images et les conteneurs eux-mêmes sont reconstruits, pas restaurés.
- Les volumes lus en marche le sont pendant que l’application tourne. Des fichiers écrits pendant la sauvegarde peuvent revenir tels qu’ils étaient à des instants différents. Mettez le volume en pause si cela compte pour l’application.
- Une copie en pause demande de l’espace disque libre pour une copie du volume, et correspond à ce qu’une coupure de courant à cet instant laisserait sur le disque (un volume Docker).
- Une base revient telle qu’elle était à une sauvegarde, pas à n’importe quel moment entre deux.
- Root sur le serveur, et une seule copie : voir les limites connues.
Commencer
Sur le serveur, en root :
curl -fsSL https://neverwiped.com/install.sh | sh
Puis suivez les premiers pas. Autres serveurs : tous les cas d’usage.
Dernière relecture : 6 novembre 2026.