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: cheminLa 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_pathVoyons 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 psUne 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: / HomeLa 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 / bashLa 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 / maisonNous 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: / HOMERemarque: 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 / logsDans 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 / LogsDocker 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: cheminUn exemple est comme indiqué:
sudo docker cp -a debian11: / var / log / ~ / desktop / logsNous 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!!