Leçon 13 : Bind Mounts vs. Volumes (Développement vs. Production)
Alors que les volumes sont idéaux pour les données persistantes (comme les bases de données), les Bind Mounts (montages de liaison) offrent plus de contrôle et sont généralement préférés pour les environnements de développement et de test.
Explication des Bind Mounts
Un bind mount monte un chemin de fichier ou de répertoire hôte spécifique directement dans le conteneur. Le chemin hôte doit exister.
Utilisation : Synchronisation de code en temps réel (Hot Reloading).
Exemple : Hot Reloading en Développement
Supposons que le code de votre application Node.js se trouve dans /home/user/my-node-app sur votre hôte.
bash docker run -d \n --name node_dev \n -p 3000:3000 \n -v /home/user/my-node-app:/app \n node:20-alpine npm run dev
Explication de -v pour les Bind Mounts :
-v /home/user/my-node-app: Le chemin absolu sur l'hôte.:: Séparateur./app: Le chemin à l'intérieur du conteneur (où leWORKDIRest habituellement défini).
Maintenant, si vous modifiez un fichier sur votre machine hôte (par exemple, server.js), le changement est instantanément répercuté à l'intérieur du conteneur, accélérant le développement.
Tableau Comparatif
| Caractéristique | Volumes Docker | Bind Mounts |
|---|---|---|
| Utilisation Principale | Données de Base de Données Persistantes, stockage partagé | Développement (Synchronisation de Code), configuration |
| Gestion Hôte | Géré par Docker (L'emplacement est difficile à trouver) | Géré par l'utilisateur (Doit spécifier un chemin absolu) |
| Création | Créé par Docker ou la CLI | Créé automatiquement si le chemin existe |
| Sécurité | Plus sûr, évite les modifications accidentelles des fichiers hôtes | Peut écraser ou modifier des fichiers hôtes |
| Portabilité | Très Portable | Moins portable (nécessite un chemin hôte spécifique) |
Règle Générale :
- Production : Utilisez des Volumes.
- Développement/Débogage : Utilisez des Bind Mounts.