GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Comment copier des fichiers entre l'hôte et le conteneur Docker

La commande Docker cp est un utilitaire pratique qui permet de copier des fichiers et des dossiers entre un conteneur et le système hôte.

Si vous souhaitez copier des fichiers de votre système hôte vers le conteneur, vous devez utiliser la commande docker cp comme ceci :

docker cp host_source_path container:destination_path

Si vous souhaitez copier des fichiers du conteneur vers le système hôte, utilisez cette commande :

docker cp container:source_path host_destination_path

Cela peut sembler un peu intimidant, alors laissez-moi vous l'expliquer par quelques exemples pratiques.

Exemples de commandes Docker cp

Dans mon tutoriel, j'ai installé Docker sur Ubuntu. Mais les étapes sont les mêmes pour toutes les distributions exécutant docker.

J'espère que vous savez comment exécuter un conteneur Docker, car vous aurez besoin d'un conteneur en cours d'exécution.

Répertoriez d'abord vos conteneurs en cours d'exécution à l'aide de docker ps commande :

[email protected]:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
8353c6f43fba        775349758637        "bash"              8 seconds ago       Up 7 seconds                            ubu_container

Vous devez connaître soit l'ID du conteneur, soit le nom du conteneur. Dans mon cas, le nom du conteneur docker est ubu_container . et l'ID du conteneur est 8353c6f43fba .

Si vous souhaitez vérifier que les fichiers ont été copiés avec succès, vous pouvez entrer votre conteneur de la manière suivante, puis utiliser les commandes Linux habituelles :

docker exec -it ubu_container bash

1. Copiez les fichiers du système hôte vers le conteneur docker

La copie avec docker cp est similaire à la commande de copie sous Linux.

Je vais copier un fichier nommé a.py dans le répertoire home/dir1 du conteneur.

docker cp a.py ubu_container:/home/dir1

Si le fichier est copié avec succès, vous ne verrez aucune sortie à l'écran. Si le chemin de destination n'existe pas, vous verrez une erreur :

[email protected]:~$ sudo docker cp a.txt ubu_container:/home/dir2/subsub
Error: No such container:path: ubu_container:/home/dir2

Si le fichier de destination existe déjà, il sera écrasé sans aucun avertissement.

Vous pouvez également utiliser l'ID du conteneur au lieu du nom du conteneur :

docker cp a.py 8353c6f43fba:/home/dir1
Docker Run vs Start vs Create :Différence expliquée Cet article explique la différence avec des exemples. Manuel LinuxAbhishek Prakash

2. Copier les fichiers du conteneur Docker vers le système hôte

La commande docker cp est exécutée uniquement sur le système hôte. Vous ne pouvez pas l'exécuter dans le conteneur.

Même si vous souhaitez copier des fichiers du conteneur Docker vers le système hôte, vous devez être dans le système hôte et utiliser la commande de la manière suivante :

sudo docker cp ubu_container:/home/dir1/new.txt  /home/abhishek

3. Copier les répertoires entre le conteneur et le système hôte

Si vous souhaitez copier un répertoire sous Linux à l'aide de la commande cp, vous devrez utiliser l'option récursive -r.

Mais dans la commande docker cp, vous n'avez pas besoin de telles options. La même commande fonctionne pour copier les fichiers et les dossiers.

docker cp /home/abhishek/my_dir ubu_container:/home
sudo docker cp ubu_container:/home/my_dir  /home/abhishek

4. Copiez les fichiers et les répertoires avec les attributs d'origine

Vous pouvez utiliser le mode archive lors de la copie avec l'option -a. Avec cela, vous pouvez copier toutes les autorisations de fichier, UID et GID du fichier d'origine.

docker cp -a host_source_path container:destination_path
docker cp -a container:source_path host_destination_path

C'est à peu près ça. Vous voyez à quel point il est facile de copier des fichiers entre l'hôte et le conteneur à l'aide de la commande docker cp.

Si vous avez des questions ou des suggestions, faites-le moi savoir dans le système de commentaires.


Docker
  1. différence entre podman et docker.

  2. Comment installer et héberger un serveur OpenVPN avec Docker

  3. Comment accéder à l'espace de noms réseau du conteneur Docker à partir de l'hôte

  4. Comment sauvegarder et restaurer des conteneurs Docker

  5. Comment mettre en pause et reprendre les conteneurs Docker

Comment se connecter en SSH à un conteneur Docker et exécuter des commandes

Comment se connecter à Localhost dans un conteneur Docker

Comment utiliser Docker Cp pour copier des fichiers entre l'hôte et les conteneurs

Comment déployer et gérer un conteneur Docker MongoDB

Comment copier des fichiers avec Docker cp dans votre conteneur Docker

Comment accéder aux fichiers en dehors d'un conteneur Docker