Docker: N'utilisez pas les bind mounts Docker

Cette documentation fait partie du guide Volumes. Consultez le guide complet ici : 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.

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