3.1 Les bases du montage de volumes
Le montage de volumes (volumes) dans des conteneurs, c'est l'une des fonctionnalités clés de Docker qui permet de sauvegarder les données en dehors des conteneurs, assurant leur stockage durable et leur accessibilité. Les volumes peuvent être utilisés à différentes fins, comme le stockage de fichiers de configuration, bases de données, logs et autres données importantes. Dans cette leçon, on va voir comment monter des volumes dans des conteneurs, avec des exemples pratiques.
Les bases du montage de volumes
Les volumes, comme on l'a déjà dit, existent indépendamment du cycle de vie des conteneurs. Ils sont stockés dans un répertoire spécial sur la machine hôte et peuvent être attachés à n'importe quel conteneur.
Commande pour monter des volumes
Les volumes sont montés dans les conteneurs à l'aide des paramètres -v
ou --mount
lors du démarrage d'un conteneur.
3.2 Paramètre -v
Exemples d'utilisation du paramètre -v
1. Monter un volume dans un conteneur
Création d'un volume et son montage dans un conteneur :
Création d'un volume :
docker volume create my_volume
Lancer un conteneur avec le montage du volume :
docker run -d --name my_container -v my_volume:/app nginx
Dans cet exemple, le volume my_volume
est monté dans le répertoire /app
du conteneur my_container
.
2. Monter plusieurs volumes
Vous pouvez monter plusieurs volumes dans un conteneur :
docker run -d --name my_container -v volume1:/app/data -v volume2:/app/logs nginx
Dans cet exemple, le volume volume1
est monté dans le répertoire /app/data
et le volume volume2
dans le répertoire /app/logs
.
3.3 Paramètre --mount
Le paramètre --mount
offre un moyen plus détaillé de monter des volumes, avec la possibilité de spécifier différents paramètres.
1. Montage d'un volume avec --mount
docker run -d --name my_container --mount source=my_volume,target=/app nginx
Cet exemple est similaire à l'exemple précédent avec -v
, mais utilise une syntaxe plus détaillée.
2. Montage avec des paramètres supplémentaires
docker run -d --name my_container --mount source=my_volume,target=/app,readonly nginx
Dans cet exemple, le volume est monté en mode lecture seule (readonly
).
3.4 Exemples pratiques
Exemple 1 : Utilisation de volumes pour une base de données
Création et utilisation d'un volume pour stocker les données d'une base de données.
Création d'un volume :
docker volume create db_data
Lancer un conteneur de base de données avec un volume monté :
docker run -d --name postgres -e POSTGRES_PASSWORD=mysecretpassword -v
db_data:/var/lib/postgresql/data postgres
Dans cet exemple, les données de la base de données PostgreSQL sont sauvegardées dans le volume db_data
.
Exemple 2 : Utilisation de volumes pour des fichiers de configuration
Création d'un volume pour stocker des fichiers de configuration et le monter dans un conteneur.
Création d'un volume :
docker volume create config_data
Copier les fichiers de configuration dans le volume :
docker run --rm -v config_data:/app busybox sh -c "echo 'configuration data' > /app/config.txt"
Lancer un conteneur en utilisant le volume pour les fichiers de configuration :
docker run -d --name my_app -v config_data:/app/config nginx
Dans cet exemple, les fichiers de configuration sont stockés dans le volume config_data
, qui est monté dans le répertoire /app/config
du conteneur.
Exemple 3 : Logs du conteneur
Création d'un volume pour stocker les logs du conteneur et le monter dans un conteneur.
Création d'un volume :
docker volume create logs_data
Lancer un conteneur avec un volume monté pour les logs :
docker run -d --name my_app -v logs_data:/var/log/nginx nginx
Dans cet exemple, les logs de Nginx sont sauvegardés dans le volume logs_data
.
3.5 Vérification du contenu des volumes
Tu peux vérifier le contenu d'un volume en le montant dans un conteneur temporaire.
Exemple
Lancement d'un conteneur temporaire avec montage de volume :
docker run --rm -v my_volume:/app busybox ls /app
Cet exemple affichera le contenu du volume my_volume
.
Suppression des volumes
Suppression d'un volume qui n'est plus utilisé.
Exemple
Suppression d'un volume :
docker volume rm my_volume
Si le volume est utilisé par un conteneur, Docker affichera une erreur. Assure-toi que les conteneurs utilisant ce volume sont arrêtés et supprimés.
GO TO FULL VERSION