Présentation
Docker permet aux utilisateurs d'exécuter diverses applications isolées de l'ordinateur hôte, sans qu'il soit nécessaire d'avoir des systèmes d'exploitation distincts pour les exécuter. Au lieu de cela, vous installez et gérez les conteneurs Docker avec un moteur de conteneurisation (démon Docker), qui a un rôle similaire à celui d'hyperviseur pour les machines virtuelles.
Lorsque vous commencerez à utiliser Docker, vous serez confronté à des situations où vous devrez savoir comment partager des données entre conteneurs.
Prérequis
- Un utilisateur avec des privilèges sudo
- Accès à un terminal/ligne de commande
- Une version stable de Docker
Étape 1 :Créer un conteneur avec un volume de données
Pour montrer comment partager entre deux conteneurs, vous devez créer un conteneur (Container1 ) avec volume de données (datavolume1 ) vous pourrez ensuite partager.
1. Commencez par créer un volume indépendant que vous partagerez entre deux conteneurs Docker :
docker volume create --name DataVolume1
2. Ensuite, créez un conteneur Docker et nommez-le Container1 avec un volume de données qui lui est attaché en exécutant la commande suivante :
docker run -ti --name=Container1 -v DataVolume1:/datavolume1 ubuntu
2. Ensuite, créez un fichier dans le volume de données et ajoutez-y du texte :
echo "Share this file between containers" > /datavolume1/Example.txt
3. Quittez le conteneur avec la commande :exit
Étape 2 :Créer un nouveau conteneur et l'ajouter au volume de données
Ensuite, créez un nouveau conteneur (Container2 ) qui partagera des fichiers avec Container1 .
1. Créez Container2 et montez les volumes de Container1 :
docker run -ti --name=Container2 --volumes-from Container1 ubuntu
2. Ajoutez du texte depuis Container2 pour montrer que les deux conteneurs peuvent écrire dans DataVolume1 :
echo "This will also appear in DataVolume1" >> /datavolume1/Example.txt
3. Pour quitter Container2 utilisez la commande :exit
Étape 3 :Vérifiez que vous pouvez partager des données entre les conteneurs Docker
1. Redémarrez Container1 pour vérifier les modifications du volume de données :
docker restart Container1
2. Confirmez que les deux conteneurs peuvent lire et écrire sur le même volume de données et que le texte que vous avez écrit dans Container2 apparaît dans DataVolume1 :
cat /datavolume1/Example.txt
Si le texte a été ajouté avec succès au volume de données, la sortie doit afficher ce qui suit :
Share this file between containers
This will also appear in DataVolume1
3. Pour finir, sortez du conteneur avec la commande :exit
Facultatif :Créer des volumes en lecture seule
La création d'un conteneur Docker "en lecture seule" empêche les autres d'apporter des modifications aux données, leur permettant uniquement de visualiser les fichiers.
Ajouter :ro
au nom du conteneur qui doit être partagé mais pas modifié.
Dans l'exemple suivant, Container2 sera autorisé à voir les fichiers de Container1 mais ne pourra pas les modifier.
docker run -ti --name=Container2 --volumes-from Container1:ro ubuntu
Pour vérifier si Container2 a des privilèges en lecture seule, essayez de supprimer le fichier d'exemple de Container1 en lançant la commande :
rm /datavolume1/Example.txt
La sortie doit montrer que vous avez créé avec succès un fichier en lecture seule. Par conséquent, d'autres conteneurs peuvent accéder et visualiser les données, mais ne peuvent y apporter aucune contribution ni modification.