Docker: Volumes
Comment assurer la persistance des données de vos conteneurs avec les volumes Docker
Bienvenue sur la documentation de Stackhero
Stackhero propose une plateforme Docker cloud CaaS (Containers as a Service) prête à l'emploi, conçue pour des déploiements de containers rapides et fiables :
- Déployez en production avec une simple commande
docker-compose up. Aucune configuration supplémentaire n'est nécessaire : lancez simplement vos containers.- Choisissez votre propre nom de domaine, automatiquement sécurisé en HTTPS (par exemple : https://api.votre-entreprise.com, https://www.votre-entreprise.com ou https://backoffice.votre-entreprise.com).
- Profitez de hautes performances et d'une sécurité renforcée sur une infrastructure privée et dédiée.
- Appliquez les mises à jour en un clic pour une maintenance simple et sans effort.
Vos containers peuvent être en production en environ cinq minutes. Stackhero gère pour vous l'infrastructure, les mises à jour et la sécurité, afin que vous puissiez vous concentrer sur le développement de vos applications. Découvrez-en plus sur l'hébergement cloud Docker CaaS.
Par conception, les conteneurs Docker sont éphémères. Cela signifie que toute donnée stockée directement à l'intérieur sera perdue lorsque le conteneur sera supprimé ou remplacé par une autre instance. Pour garantir la persistance des données, il est recommandé d'utiliser les volumes Docker.
N'utilisez pas les bind mounts Docker
N'utilisez jamais les bind mounts sur Stackhero. Privilégiez toujours les volumes Docker pour éviter toute perte de données.
Les bind mounts consistent à lier un répertoire de la VM hôte Stackhero à un conteneur. Cependant, si vous utilisez des bind mounts, la mise à jour de votre instance Stackhero for Docker entraînera la perte de toutes les données stockées de cette manière.
Les bind mounts sont généralement spécifiés dans la commande docker run avec une syntaxe du type -v /myDirectory:/mnt (notez le / initial). Dans les fichiers Docker Compose, ils apparaissent sous la forme volumes: /myDirectory:/mnt. Évitez absolument ces configurations, sinon vous perdrez vos données.
Préférez l'utilisation des volumes Docker, qui sont gérés par Docker et ne font pas référence à des chemins absolus.
Pour résumer :
Mauvaise pratique :
docker run -it -v /myDirectory:/mnt alpine
Bonne pratique :
docker volume create myVolume
docker run -it -v myVolume:/mnt alpine
Lorsque vous travaillez avec des fichiers Docker Compose :
Mauvaise configuration :
services:
myService:
image: alpine
volumes:
- /myDirectory:/mnt
Bonne configuration :
services:
myService:
image: alpine
volumes:
- myVolume:/mnt
volumes:
myVolume:
name: myVolume
Commandes pratiques pour les volumes Docker
Voici un rappel rapide pour gérer les volumes Docker :
-
Pour créer un nouveau volume nommé
myVolume, exécutez :docker volume create myVolume -
Pour lister tous les volumes existants :
docker volume ls -
Pour supprimer un volume spécifique nommé
myVolume:docker volume rm myVolumeRemarque : La suppression d'un volume efface définitivement toutes les données qu'il contient. Il n'est pas possible de les récupérer par la suite.