Docker: Volumes

Comment persister les données de vos conteneurs avec les volumes Docker

Bienvenue dans la documentation Stackhero

Stackhero offre 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 un simple docker-compose up. Aucune configuration supplémentaire requise : démarrez simplement vos containers.
  • Choisissez votre propre nom de domaine, automatiquement sécurisé avec HTTPS (par exemple : https://api.votre-entreprise.com, https://www.votre-entreprise.com ou https://backoffice.votre-entreprise.com).
  • Profitez de performances élevées et d’une sécurité robuste sur une infrastructure privée et dédiée.
  • Appliquez les mises à jour en un clic pour une maintenance simple et sans tracas.

Vos containers peuvent être en production en environ cinq minutes. Stackhero prend en charge l’infrastructure, les mises à jour et la sécurité pour vous permettre de vous concentrer sur la livraison de vos applications. Pour en savoir plus sur l’hébergement cloud Docker CaaS.

Par conception, les conteneurs Docker sont éphémères. Cela signifie que toutes les données stockées directement à l'intérieur seront perdues lorsque le conteneur sera supprimé ou remplacé par une autre instance. Pour garantir la persistance des données, les volumes Docker sont la méthode recommandée.

N'utilisez pas les bind mounts sur Stackhero. Optez toujours pour les volumes Docker pour éviter toute perte de données.

Les bind mounts impliquent de lier un répertoire de la VM hôte Stackhero à un conteneur. Cependant, si vous vous appuyez sur les 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 comme -v /monRepertoire:/mnt (notez le / initial). Dans les fichiers Docker Compose, ils apparaissent comme volumes: /monRepertoire:/mnt. Bannissez ces configurations ou vous perdrez vos données.

À la place, utilisez les volumes Docker, qui sont gérés par Docker et ne font pas référence à des chemins absolus.

Pour résumer :

Approche incorrecte :

docker run -it -v /monRepertoire:/mnt alpine

Approche correcte :

docker volume create monVolume
docker run -it -v monVolume:/mnt alpine

Lors de l'utilisation de fichiers Docker Compose :

Configuration incorrecte :

services:
  monService:
    image: alpine
    volumes:
      - /monRepertoire:/mnt

Configuration correcte :

services:
  monService:
    image: alpine
    volumes:
      - monVolume:/mnt

volumes:
  monVolume:
    name: monVolume

Voici une référence rapide pour gérer les volumes Docker :

  • Pour créer un nouveau volume nommé monVolume, exécutez :

    docker volume create monVolume
    
  • Pour lister tous les volumes existants :

    docker volume ls
    
  • Pour supprimer un volume spécifique nommé monVolume :

    docker volume rm monVolume
    

    Remarque : La suppression d'un volume supprimera définitivement toutes les données qu'il contient, et il n'y a aucun moyen de les récupérer par la suite.