Aller au contenu
NeverWipedEssai gratuit14 jours · sans carte

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 /opt qui contient un compose.yml ou un docker-compose.yml est sauvegardé comme application, avec son fichier .env et les dossiers montés depuis lui (./data:/data). Les projets placés dans /srv, /home ou /root sont 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_dumpall avec l’utilisateur de POSTGRES_USER, ou mysqldump avec 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, /root et /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>.sql ou mysql-docker-<container>.sql, et s’importe avec docker 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 recover et restaurez dans un dossier. Recopiez vos dossiers de projet, lancez docker compose up --no-start pour 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.