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 solution Docker cloud CaaS (Containers as a Service) prête à l'emploi qui offre de nombreux avantages, notamment :

  • Déployez facilement vos conteneurs en production avec un simple docker-compose up.
  • Nom de domaine personnalisable sécurisé en HTTPS (par exemple, https://api.votre-entreprise.com, https://www.votre-entreprise.com, https://backoffice.votre-entreprise.com).
  • Performance optimale et sécurité renforcée grâce à une VM privée et dédiée.
  • Mises à jour simplifiées en un clic.

Gagnez du temps et simplifiez-vous la vie : il suffit de 5 minutes pour essayer la solution Docker CaaS cloud hosting de Stackhero et déployer vos conteneurs en production !

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 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

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 myVolume
    

    Remarque : 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.