CodeGym /Cours /Docker SELF /Montage des volumes dans des conteneurs

Montage des volumes dans des conteneurs

Docker SELF
Niveau 19 , Leçon 2
Disponible

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 :

Terminal

docker volume create my_volume

Lancer un conteneur avec le montage du volume :

Terminal

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 :

Terminal

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

Terminal

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

Terminal

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 :

Terminal

docker volume create db_data

Lancer un conteneur de base de données avec un volume monté :

Terminal

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 :

Terminal

docker volume create config_data

Copier les fichiers de configuration dans le volume :

Terminal

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 :

Terminal

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 :

Terminal

docker volume create logs_data

Lancer un conteneur avec un volume monté pour les logs :

Terminal

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 :

Terminal

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 :

Terminal

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.

Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION