Tests logiciels | Explication détaillée de la commande Docker cp : copier des fichiers/dossiers entre les conteneurs Docker et les hôtes

Insérer la description de l'image ici

Introduction

Docker est une plate-forme de conteneurisation populaire qui permet aux développeurs de créer, de conditionner et de déployer des applications dans un environnement portable et autonome. Lors de l'utilisation de Docker, il est souvent nécessaire de copier et de partager des fichiers entre le conteneur Docker et l'hôte. Docker fournit une docker cpcommande appelée pour copier facilement des fichiers et des répertoires entre le conteneur et l'hôte. Cet article présentera docker cpen détail l’utilisation des commandes et des exemples courants.

commande docker cp

docker cpLa commande est une commande fournie par Docker pour copier des fichiers et des répertoires entre l'hôte et le conteneur. Sa syntaxe est la suivante :

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
  • CONTAINER, peut être un conteneur en cours d'exécution ou arrêté, soit son nom, soit son ID
  • SRC_PATH, le chemin du fichier ou du répertoire source dans le conteneur
  • DEST_PATH, l'emplacement du chemin cible sur l'hôte

Remarque : docker cpLa commande suppose que le chemin du conteneur est relatif au répertoire / (racine) du conteneur et que le chemin de l'hôte est relatif au répertoire actuel dans lequel la commande docker cp est exécutée.

optionsParamètres disponibles

  • -a: Conservez les fichiers ou répertoires copiés avec leurs attributs d'origine, y compris le propriétaire, les autorisations, etc.
  • -L: Si SRC_PATH est un lien symbolique, copie le fichier ou le répertoire pointé par le lien.
  • -p: préserve l'horodatage du fichier ou du répertoire source.
  • -ROu -r: copiez l'intégralité du répertoire de manière récursive.

CHEMIN_SRC et CHEMIN_DEST

SRC_PATHet DEST_PATHsont docker cples éléments clés de la commande. Le fait que le chemin soit correct est lié à la réussite de l'exécution de la commande. Analysons les différentes situations de ces deux chemins et expliquons s'ils peuvent être copiés avec succès dans diverses circonstances.

SRC_PATH lors de la spécification d'un fichier
  1. quand DEST_PATHn'existe pas

Créez DEST_PATHle dossier requis et enregistrez-y le fichier DEST_PATH normalement

  1. Lorsqu'il DEST_PATH n'est pas présent et se termine par /

La commande signalera une erreur, le répertoire cible doit exister

  1. quand DEST_PATHexiste et est un fichier

La cible est écrasée par le contenu du fichier source

  1. Quand DEST_PATH existe et est un répertoire

SRC_PATHCopiez les fichiers dans ce répertoire en utilisant le nom de base dans

SRC_PATH spécifie le répertoire
  1. Lorsqu'elle est DEST_PATHprésente et un répertoire, la réplication copiera normalement
  • SRC_PATH ne se termine pas par /., le répertoire source est copié dans ce répertoire
  • SRC_PATH se termine par /. dans lequel est copié le contenu du répertoire source
  1. Lorsqu'il DEST_PATHexiste et qu'il s'agit d'un fichier, la copie signalera une erreur car le répertoire ne peut pas être copié dans un fichier

  2. Lorsqu'il DEST_PATH n'existe pas, un nouveau répertoire est créé DEST_PATH comme chemin et le contenu du répertoire source y est copié

Exemple d'utilisation

Copier les fichiers du conteneur vers l'hôte
  1. Le répertoire hôte existe déjà

tomcat_mullerLes fichiers que nous voulons usr/local/tomcat/README.mdcopier dans le répertoire hôte study, la commande est la suivante :

docker cp tomcat_muller:usr/local/tomcat/README.md ./

Exécutez la commande, le résultat est comme indiqué ci-dessous, copié avec succès dans le répertoire spécifié :

Insérer la description de l'image ici

  1. Le répertoire hôte n'existe pas et ne /se termine pas par

tomcat_mullerLes fichiers que nous voulons usr/local/tomcat/README.mdcopier dans le répertoire hôte study/test, la commande est la suivante :

docker cp tomcat_muller:usr/local/tomcat/README.md ./test

Exécutez la commande. Le résultat est comme indiqué ci-dessous. Nous avons réussi à studycréer testle répertoire sous le répertoire et les fichiers ont été copiés avec succès dans le répertoire spécifié.

Insérer la description de l'image ici

  1. Le répertoire hosts n'existe pas et /se termine par

Nous voulons copier le fichier sur le chemin de l'hôte tomcat_muller. La commande est la suivante :usr/local/tomcat/README.mdstudy/test/

docker cp tomcat_muller:usr/local/tomcat/README.md ./test/

Exécutez la commande et le résultat est celui indiqué ci-dessous. Comme le chemin n'existe pas, une erreur sera signalée. Un tel répertoire n'existe pas.

Insérer la description de l'image ici

  1. Copier dans un fichier existant
docker cp tomcat_muller:usr/local/tomcat/README.md test.txt

Exécutez la commande et les résultats sont les suivants :

Insérer la description de l'image ici

L’opération de copie de répertoires est similaire à celle de copie de fichiers, nous n’entrerons donc pas dans les détails ici.

Copier les fichiers de l'hôte vers le conteneur

Nous voulons copier les fichiers studyde l'hôte test.txtvers le conteneur. La commande est la suivante :

docker cp test.txt tomcat_muller:/

Exécutez la commande, le résultat est le suivant :
Insérer la description de l'image ici

Copier le répertoire de l'hôte vers le conteneur
  1. Le répertoire cible n'existe pas

study/hogwartsNous souhaitons copier le répertoire de l'hôte dans le testrépertoire du conteneur. La commande est la suivante :

docker cp hogwarts tomcat_muller:test/

Exécutez la commande, le résultat est le suivant :

Insérer la description de l'image ici

  1. Le répertoire cible est un fichier

Nous voulons copier le study/hogwartsrépertoire hôte dans le conteneur muller, la commande est la suivante :

docker cp hogwarts tomcat_muller:muller/
  1. Le répertoire existe déjà

Nous voulons copier le study/hogwartsrépertoire hôte dans le conteneur /hogwarts, la commande est la suivante :

docker cp hogwarts tomcat_muller:/hogwarts/

Les résultats de l'exécution de la commande sont les suivants :

Insérer la description de l'image ici

Copier le répertoire du conteneur vers l'hôte

On copie le répertoire tomcat_mullerdu conteneur webapps.distvers l'hôte usr/local/study, la commande est la suivante :

docker cp tomcat_muller:/usr/local/tomcat/webapps.dist /home/muller/study

Exécutez la commande, le résultat est le suivant :

Insérer la description de l'image ici

Résumer

docker cpLa commande est un outil pratique pour copier des fichiers et des répertoires entre les conteneurs Docker et la machine hôte. Avec des commandes et des paramètres simples, nous pouvons facilement transférer des fichiers entre conteneurs et hôtes. Cet article décrit docker cpla syntaxe de la commande et les options courantes, et fournit plusieurs exemples pour vous aider à mieux comprendre son utilisation. Grâce à l'utilisation flexible docker cpdes commandes, nous pouvons facilement effectuer des opérations et des partages de fichiers dans l'environnement Docker.

Pour plus d’informations techniques, veuillez cliquer !

Je suppose que tu aimes

Origine blog.csdn.net/Tester_muller/article/details/131678630
conseillé
Classement