Cp docker

Cp docker
«Il est sans aucun doute que Docker a révolutionné l'environnement des développeurs modernes. La possibilité d'emballer vos applications dans un seul pack et de les expédier à n'importe quelle plate-forme est tout simplement révolutionnaire.

Mais assez de louanges sur Docker. Dans cet article, nous discuterons de la façon de copier des fichiers vers et depuis un conteneur au système hôte et vice versa."

Commençons

Cp docker

Docker CP est un utilitaire de ligne de commande qui vous permet de copier des fichiers et des répertoires entre les systèmes. La commande prend une syntaxe très simple qui permet un flux de travail facile.

La syntaxe de commande:

docker cp [options] conteneur: src_path dest_path |-

L'utilitaire CP copiera les fichiers spécifiés du src_path au dest_path. Cela vous permet de copier à partir du conteneur dans le système hôte et vice versa.

Le conteneur peut être exécuté ou arrêté à l'état, et la commande effectuera l'opération de copie avec succès.

Si un répertoire est spécifié, la commande copiera les fichiers récursivement dans la destination spécifiée.

Pour copier des fichiers du système hôte vers un conteneur, vous pouvez utiliser la syntaxe:

$ docker cp host_path contener_id: chemin

La même syntaxe de commande s'applique lorsque vous souhaitez copier des fichiers du conteneur au système hôte:

$ docker cp contener_id: src_path host_path

Voyons comment nous pouvons y parvenir avec des exemples pratiques.

Obtenez des conteneurs en cours d'exécution

La première étape consiste à obtenir les noms et les identifiants des conteneurs en cours d'exécution. Nous pouvons le faire avec la commande docker ps.

$ docker ps

Une fois que vous obtenez le conteneur et le nom ou l'identification, nous pouvons continuer. Vous pouvez obtenir l'ID dans l'ID de conteneur et les noms des colonnes.

Copier les fichiers du système hôte au conteneur

Supposons que nous ayons un fichier appelé sauvegardes.Tar sur le bureau du système hôte et souhaite le copier dans le conteneur Debian11.

Nous pouvons exécuter la commande:

Docker CP ~ / Desktop / Backups.Tar Debian11: / Home

La commande ci-dessus copiera les sauvegardes.fichier de goudron dans le répertoire domestique du conteneur spécifié.

Nous pouvons vérifier que le fichier existe en exécutant la commande:

$ docker exec -ti debian11 / bin / bash

La commande ci-dessus devrait vous permettre de vous connecter dans le récipient et d'approuver une coquille bash.

Vous pouvez désormais répertorier les fichiers et répertoires du conteneur comme:

root @ f657ea827600: / # ls -la / maison
Total 7188
drwxr-xr-x 1 racine racine 4096 juin 7 02:09 .
DRWXR-XR-X 1 racine racine 4096 juin 7 02: 09…
-RW-R - R-- 1 Root Root 7348816 juin 7 02:08 Sauvegardes.le goudron

Nous pouvons voir que le fichier a été copié avec succès dans le conteneur.

Si vous souhaitez utiliser l'ID de conteneur, vous pouvez exécuter la commande:

Docker CP ~ / Desktop / Backups.TAR F657EA827600: / HOME

Remarque: Si un fichier avec un nom similaire existe comme le chemin de destination spécifié, la commande l'écrasera sans invite.

Docker Copier le fichier du conteneur à l'hôte

Nous pouvons également utiliser la commande pour copier les fichiers du conteneur dans le système hôte. Par exemple, supposons que nous souhaitions copier les journaux du conteneur au répertoire des journaux dans le dossier de bureau de l'hôte.

Nous pouvons exécuter la commande:

$ sudo docker cp debian11: / var / log / ~ / desktop / logs

Dans la commande ci-dessus, nous disons à la commande docker cp de copier les fichiers du répertoire / var / journal dans le répertoire de Debian11 dans le système hôte dans le système hôte.

Nous pouvons le vérifier en exécutant la commande:

$ ls -LS ~ / Desktop / Logs
Total 72
0 DRWXR-XR-X 3 ROOT PERSONNEL 96 MAI 27 03:00 APT
0 -rw-rw ---- 1 Personnel racine 0 mai 27 03:00 btmp
8 -rw-r - r-- 1 Personnel racine 3232 27 mai 03:00 Faillog
64 -RW-RW-R-- 1 Root Staff 29896 27 mai 03:00 Lastlog
0 -RW-RW-R-- 1 Personnel racine 0 mai 27 03:00 WTMP

Docker CP Preserve Attributs

Vous remarquerez qu'une fois que nous avons copier un fichier vers et depuis le système hôte, Docker ne conserve pas les attributs tels que les autorisations, les UID, etc.

Nous pouvons résoudre ce problème en ajoutant le drapeau -a dans la commande docker cp.

$ docker cp -a host_path conteneur: chemin
$ docker cp -a conteneur: path host_path

Un exemple est comme indiqué:

sudo docker cp -a debian11: / var / log / ~ / desktop / logs

Nous pouvons voir que les autorisations sont similaires à l'un des fichiers copiés dans le conteneur.

Conclusion

Dans ce tutoriel, vous avez appris à utiliser la commande docker cp pour copier des fichiers vers et depuis un conteneur Docker au système hôte et vice versa.

Merci d'avoir lu!!