Comment partager des données entre un conteneur Docker et un système hôte à l'aide de volumes

Comment partager des données entre un conteneur Docker et un système hôte à l'aide de volumes

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
Partage des données du système hôte à un conteneur Docker Exigences logicielles et conventions de ligne de commande Linux
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.

  1. 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 
  2. 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 le data1 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 
  3. 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