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 cp
commande appelée pour copier facilement des fichiers et des répertoires entre le conteneur et l'hôte. Cet article présentera docker cp
en détail l’utilisation des commandes et des exemples courants.
commande docker cp
docker cp
La 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 IDSRC_PATH
, le chemin du fichier ou du répertoire source dans le conteneurDEST_PATH
, l'emplacement du chemin cible sur l'hôte
Remarque : docker cp
La 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.-R
Ou-r
: copiez l'intégralité du répertoire de manière récursive.
CHEMIN_SRC et CHEMIN_DEST
SRC_PATH
et DEST_PATH
sont docker cp
les é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
- quand
DEST_PATH
n'existe pas
Créez DEST_PATH
le dossier requis et enregistrez-y le fichier DEST_PATH
normalement
- Lorsqu'il
DEST_PATH
n'est pas présent et se termine par /
La commande signalera une erreur, le répertoire cible doit exister
- quand
DEST_PATH
existe et est un fichier
La cible est écrasée par le contenu du fichier source
- Quand
DEST_PATH
existe et est un répertoire
SRC_PATH
Copiez les fichiers dans ce répertoire en utilisant le nom de base dans
SRC_PATH spécifie le répertoire
- Lorsqu'elle est
DEST_PATH
pré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
-
Lorsqu'il
DEST_PATH
existe 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 -
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
- Le répertoire hôte existe déjà
tomcat_muller
Les fichiers que nous voulons usr/local/tomcat/README.md
copier 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é :
- Le répertoire hôte n'existe pas et ne
/
se termine pas par
tomcat_muller
Les fichiers que nous voulons usr/local/tomcat/README.md
copier 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 à study
créer test
le répertoire sous le répertoire et les fichiers ont été copiés avec succès dans le répertoire spécifié.
- 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.md
study/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.
- 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 :
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 study
de l'hôte test.txt
vers le conteneur. La commande est la suivante :
docker cp test.txt tomcat_muller:/
Exécutez la commande, le résultat est le suivant :
Copier le répertoire de l'hôte vers le conteneur
- Le répertoire cible n'existe pas
study/hogwarts
Nous souhaitons copier le répertoire de l'hôte dans le test
répertoire du conteneur. La commande est la suivante :
docker cp hogwarts tomcat_muller:test/
Exécutez la commande, le résultat est le suivant :
- Le répertoire cible est un fichier
Nous voulons copier le study/hogwarts
répertoire hôte dans le conteneur muller
, la commande est la suivante :
docker cp hogwarts tomcat_muller:muller/
- Le répertoire existe déjà
Nous voulons copier le study/hogwarts
ré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 :
Copier le répertoire du conteneur vers l'hôte
On copie le répertoire tomcat_muller
du conteneur webapps.dist
vers 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 :
Résumer
docker cp
La 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 cp
la 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 cp
des commandes, nous pouvons facilement effectuer des opérations et des partages de fichiers dans l'environnement Docker.