Comment partager des données entre un conteneur Docker et un système hôte à l'aide de volumes
- 2898
- 313
- Emilie Colin
La façon la plus simple de partager les données entre un conteneur Docker et le système hôte est d'utiliser les volumes de Docker. Dans ce guide, nous passerons par les instructions étape par étape de partage de fichiers entre un conteneur Docker et un système hôte à l'aide de volumes Docker via la ligne de commande sur Linux.
SAVIEZ-VOUS?Les volumes de docker fonctionnent de manière similaire pour lier les montures, mais sont la méthode préférée pour partager les données entre un système hôte et un conteneur Docker car les applications extérieures ne sont pas en mesure d'accéder aux fichiers et de les modifier.
Dans ce tutoriel, vous apprendrez:
- Comment utiliser des volumes pour partager les données entre un conteneur Docker et un système hôte
Catégorie | Exigences, conventions ou version logicielle utilisée |
---|---|
Système | Toute distribution Linux |
Logiciel | Docker |
Autre | Accès privilégié à votre système Linux en tant que racine ou via le Sudo commande. |
Conventions | # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier |
Partagez les données entre Docker Container et Host
Considérez l'exemple suivant.
- Tout d'abord, sur un système hôte, nous créons un répertoire avec un seul fichier que nous aimerions le partager avec un conteneur Docker:
# mkdir data1 # echo "Docker Volume Share"> data1 / file1
- Ensuite, nous exécutons un conteneur Docker et utilisons le
-V
Option pour monter un répertoire du système hôte local Data1 dans le répertoire du conteneur/ opt / data1
. Veuillez noter que si la destination n'existe pas, elle sera créée par la commande docker. De plus, Docker accepte uniquement un chemin complet vers un répertoire du système hôte local et pour cette raison, nous devons préfixer ledata1
répertoire avec$ Pwd /
Variable d'environnement qui renvoie un chemin complet vers un répertoire de travail actuel:# docker run -v $ pwd / data1: / opt / data1 -it debian / bin / bash
- Le résultat de la commande ci-dessus est que nous pouvons maintenant accéder à notre fichier précédemment créé
fichier1
à l'intérieur d'un conteneur:# CAT / OPT / DATA1 / FILE1 Part de volume Docker
C'est tout ce qu'on peut en dire. Vous pouvez désormais partager tous les fichiers que vous souhaitez entre le système hôte et les conteneurs Docker en utilisant le volume monté. Si vous rencontrez des erreurs, veuillez consulter la section de dépannage ci-dessous.
Conclusion
Dans ce guide, nous avons appris à partager des données entre un système hôte et un conteneur Docker en utilisant des volumes. C'est le moyen le meilleur et le plus simple de partager des données entre les deux systèmes sur Linux, ne nécessitant que quelques étapes.
Dépannage
Si vous rencontrez l'erreur suivante:
FATA [0000] Réponse d'erreur du démon: Impossible de lier le volume de montage: les chemins de volume DATA1 doivent être absolus.
Cela signifie que vous devez fournir un chemin complet vers les répertoires source et de destination. Astuce: le chemin complet commence toujours par / /
.
Vous pouvez également rencontrer cette erreur de permission refusée:
# ls / opt / data1 / ls: Impossible d'ouvrir le répertoire / opt / data1 /: autorisation refusée
Cette erreur est causée par Sellinux en cours d'exécution sur votre système hôte local. Les deux solutions suivantes aideront à résoudre ce problème. Premièrement, la solution consiste à désactiver SELINUX sur votre système d'accueil local.
# setenforce 0
Étant donné que la désactivation du selinux peut entraver une intégrité de votre système hôte, il peut être plus facile de donner des privilèges prolongés à votre conteneur à la place, avec un Docker --privilégié = true
option:
# docker run --priviled = true -v $ pwd / data1: / opt / data1 -it debian / bin / bash
Tutoriels Linux connexes:
- Choses à installer sur Ubuntu 20.04
- Une introduction à l'automatisation Linux, des outils et des techniques
- Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
- Masterring Bash Script Loops
- Ubuntu 20.04 Guide
- Fichiers de configuration Linux: 30 premiers
- Mint 20: Mieux que Ubuntu et Microsoft Windows?
- Comment doubler Kali Linux et Windows 10
- Système linux hung? Comment s'échapper vers la ligne de commande et…
- Ubuntu 20.04 astuces et choses que vous ne savez peut-être pas
- « Création d'un référentiel de packages RedHat
- Commandes Linux pour sauvegarder et restaurer la base de données MySQL »