CodeGym /Cours /Docker SELF /Utilisation des binds

Utilisation des binds

Docker SELF
Niveau 19 , Leçon 4
Disponible

5.1 L'idée des répertoires liés (bind mounts)

Monter des répertoires hôtes dans des conteneurs en utilisant des répertoires liés (bind mounts) est une fonctionnalité puissante de Docker, qui permet aux conteneurs d'utiliser directement les fichiers et répertoires présents sur le système hôte. C'est surtout pratique pour le développement, les tests et la configuration, quand on a besoin d'utiliser des fichiers locaux sans avoir à les copier dans le conteneur. Dans cette conférence, on va voir comment utiliser les bind mounts, avec des exemples et quelques best practices.

Les bind mounts permettent de monter des répertoires ou fichiers spécifiques depuis le système hôte dans des conteneurs. C'est différent des volumes, qui sont gérés par Docker et stockés dans un répertoire spécifique.

Avantages des bind mounts

  1. Accès direct aux fichiers de l'hôte : Les conteneurs peuvent directement utiliser et modifier les fichiers présents sur l'hôte.
  2. Pratique pour le développement : Les développeurs peuvent modifier les fichiers sur l'hôte et voir ces changements en temps réel dans les conteneurs.
  3. Flexibilité : N'importe quel répertoire sur l'hôte peut être monté dans un conteneur.

Commande pour monter les bind mounts

Les bind mounts sont montés en utilisant les paramètres -v ou --mount lors du démarrage d'un conteneur.

5.2 Exemples d'utilisation du paramètre -v

1. Monter un répertoire de l'hôte dans un container

Un exemple super simple de montage d'un répertoire de l'hôte dans un container :

Terminal

docker run -d --name my_container -v /path/on/host:/path/in/container nginx

Dans cet exemple, le répertoire /path/on/host sur l'hôte est monté sur le répertoire /path/in/container à l'intérieur du container nginx.

2. Monter un fichier de l'hôte dans un container

Tu peux aussi monter des fichiers spécifiques :

Terminal

docker run -d --name my_container -v /path/on/host/config.conf:/etc/nginx/nginx.conf nginx

Dans cet exemple, le fichier de configuration config.conf sur l'hôte est monté comme fichier de configuration nginx.conf à l'intérieur du container.

5.3 Exemples d'utilisation du paramètre --mount

Le paramètre --mount offre une manière plus détaillée de monter des répertoires liés avec la possibilité de spécifier différents paramètres.

1. Monter un répertoire en utilisant --mount

Terminal

docker run -d --name my_container --mount type=bind,source=/path/on/host,target=/path/in/container nginx

Cet exemple est similaire à l'exemple précédent avec -v, mais utilise une syntaxe plus détaillée.

2. Montage en lecture seule

Terminal

docker run -d --name my_container --mount 
type=bind,source=/path/on/host,target=/path/in/container,readonly nginx

Dans cet exemple, le répertoire est monté en mode lecture seule, ce qui empêche les modifications de fichiers dans le container.

5.4 Exemples pratiques

Pour le développement d'une application web, tu peux monter un répertoire avec le code source de l'hôte dans le container.

Créer un répertoire avec le code source sur l'hôte :

Terminal

mkdir -p ~/my_web_app
echo "Hello, World!" > ~/my_web_app/index.html

Lancement du container avec le montage du répertoire :

Terminal

docker run -d --name web_dev -v ~/my_web_app:/usr/share/nginx/html nginx

Maintenant, toutes les modifications dans le répertoire ~/my_web_app sur l'hôte seront immédiatement reflétées dans le container.

Exemple 2 : Utilisation des fichiers de configuration

Tu peux monter des fichiers de configuration d'un répertoire de l'hôte dans le container.

Créer un fichier de configuration sur l'hôte :

Terminal

echo "user www-data;" > ~/nginx.conf

echo "worker_processes auto;" >> ~/nginx.conf

Lancement du container avec le montage du fichier de configuration :

Terminal

docker run -d --name nginx_custom -v ~/nginx.conf:/etc/nginx/nginx.conf nginx

Dans cet exemple, le fichier de configuration Nginx sur l'hôte est utilisé à l'intérieur du container.

5.5 Vérification des répertoires et fichiers montés

Tu peux vérifier le contenu des répertoires et fichiers montés en utilisant la commande docker exec pour exécuter des commandes à l'intérieur du conteneur.

Exemple

Vérification du contenu d'un répertoire :

Terminal

docker exec -it my_container ls /path/in/container

Vérification du contenu d'un fichier :

Terminal

docker exec -it my_container cat /path/in/container/config.conf

Suppression des répertoires bindés

Les répertoires bindés ne sont pas gérés directement par Docker, donc leur suppression se fait au niveau du système de fichiers de l'hôte.

Exemple

Suppression d'un répertoire bindé sur l'hôte :

Terminal

rm -r /path/on/host
1
Опрос
Gestion des données dans Docker,  19 уровень,  4 лекция
недоступен
Gestion des données dans Docker
Gestion des données dans Docker
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION