Maison  >  Article  >  Opération et maintenance  >  Comment copier des fichiers hôtes sur Docker

Comment copier des fichiers hôtes sur Docker

PHPz
PHPzoriginal
2023-04-18 17:07:395736parcourir

L'utilisation de Docker dans le développement de logiciels est devenue courante de nos jours car elle permet une création, un déploiement et une gestion rapides des applications. Docker est largement utilisé pour créer et exécuter des conteneurs en raison de sa portabilité et de ses fonctionnalités légères. Cependant, de nombreuses personnes peuvent rencontrer des problèmes lorsqu'elles travaillent avec des fichiers dans Docker. Cet article vous apprendra comment copier facilement des fichiers de l'hôte vers Docker.

Comment copier des fichiers dans Docker

Pour copier des fichiers de l'hôte vers Docker, nous pouvons utiliser la commande fournie avec Docker : docker cp. Cette commande peut copier un fichier ou un répertoire de l'hôte vers un conteneur Docker en cours d'exécution, ou copier un fichier d'un conteneur Docker en cours d'exécution vers l'hôte. docker cp。这个命令可以将一个文件或目录从宿主机复制到正在运行的 Docker 容器中,或者从正在运行的 Docker 容器复制文件到宿主机。

语法如下:

docker cp <src_path> <container_id>:<dest_path>

这个命令非常简单,其中:

  • <src_path>:要复制的文件或文件夹的路径
  • <container_id>:Docker 容器的 ID
  • <dest_path>:要复制到的 Docker 容器中的目标路径

例如,如果你想将当前目录下的 myfile.txt 文件复制到名为 mycontainer 的 Docker 容器的 /app 目录中,你可以按如下方式操作:

docker cp myfile.txt mycontainer:/app

这个命令将 myfile.txt 文件复制到名为 mycontainer 的 Docker 容器的 /app 目录中。

要将 Docker 容器中的文件复制回宿主机,我们可以使用类似的命令:

docker cp <container_id>:<src_path> <dest_path>

其中:

  • <container_id>:Docker 容器的 ID
  • <src_path>:要复制的文件或文件夹的路径
  • <dest_path>:要复制到的宿主机中的目标路径

例如,如果你想将名为 mycontainer 的 Docker 容器中的 /app/myfile.txt 文件复制到宿主机的 ~/Downloads 目录中,你可以按如下方式操作:

docker cp mycontainer:/app/myfile.txt ~/Downloads

这个命令将 mycontainer 容器中的 /app/myfile.txt 文件复制到宿主机中的 ~/Downloads 目录中。

如何在 Dockerfile 中拷贝文件

上面的方法需要在启动 Docker 容器后手动执行命令,但如果你想在创建 Docker 镜像时自动将文件复制到容器中怎么办?不用担心,我们可以使用 Dockerfile 中的 COPY 命令来实现这一点。

COPY 命令语法如下:

COPY <src_path> <dest_path>

其中:

  • <src_path>:要复制的文件或文件夹的路径
  • <dest_path>:要复制到的 Docker 容器中的目标路径

例如,下面是一个基于官方 Python 镜像的 Dockerfile,它将当前目录下的 requirements.txt 文件复制到容器中的 /app 目录中:

FROM python:3.9-slim-buster
WORKDIR /app
COPY requirements.txt /app
RUN pip install --no-cache-dir -r requirements.txt
COPY . /app
CMD [ "python", "./app.py" ]

在这个 Dockerfile 中,COPY requirements.txt /app 命令将 requirements.txt 文件复制到 Docker 容器中的 /app 目录中。RUN 命令使用这个文件安装必要的依赖项。最后一个 COPY 命令将整个应用程序复制到容器中。

总结

在这篇文章中,我们学习了如何在 Docker 中拷贝文件。使用 docker cp 命令,我们可以将文件从宿主机复制到正在运行的 Docker 容器或从容器复制文件到宿主机。此外,在 Dockerfile 中,我们可以使用 COPY

La syntaxe est la suivante :

rrreee

Cette commande est très simple, où : 🎜
  • <src_path> : Le chemin du fichier ou du dossier à copier li>
  • <container_id> : l'ID du conteneur Docker
  • <dest_path> : le chemin de destination dans le conteneur Docker vers être copié vers
  • 🎜Par exemple, si vous souhaitez copier le fichier myfile.txt du répertoire actuel vers /app du conteneur Docker nommé répertoire mycontainer, vous pouvez faire comme suit : 🎜rrreee🎜Cette commande copie le fichier myfile.txt dans /app du conteneur Docker nommé Répertoire monconteneur code>. 🎜🎜Pour copier les fichiers du conteneur Docker vers l'hôte, nous pouvons utiliser une commande similaire : 🎜rrreee🎜Où : 🎜
    • <container_id> : l'ID du Conteneur Docker
    • <src_path> : Le chemin du fichier ou du dossier à copier
    • <dest_path> : Le chemin à copier Le chemin cible dans la machine hôte
    🎜Par exemple, si vous souhaitez mettre le fichier /app/myfile.txt dans le conteneur Docker nommé mycontainer Copiez-le dans le répertoire ~/Downloads de l'hôte. Vous pouvez le faire comme suit : 🎜rrreee🎜Cette commande copiera le /app/myfile dans. le fichier <code>mycontainer. txt dans le répertoire ~/Downloads sur la machine hôte. 🎜🎜Comment copier des fichiers dans Dockerfile🎜🎜La méthode ci-dessus nécessite d'exécuter manuellement la commande après le démarrage du conteneur Docker, mais que se passe-t-il si vous souhaitez copier automatiquement les fichiers dans le conteneur lors de la création de l'image Docker ? Ne vous inquiétez pas, nous pouvons y parvenir en utilisant la commande COPY dans le Dockerfile. 🎜🎜COPY La syntaxe de la commande est la suivante : 🎜rrreee🎜Où : 🎜
    • <src_path> : Le chemin du fichier ou du dossier à copié
    • <dest_path> : le chemin de destination dans le conteneur Docker vers lequel copier
    🎜Par exemple, ce qui suit est un fichier Docker basé sur l'image Python officielle, qui copiera actuellement le fichier requirements.txt du répertoire vers le répertoire /app du conteneur : 🎜rrreee🎜Dans ce Dockerfile, COPY Requirements.txt /app La commande code> copie le fichier <code>requirements.txt dans le répertoire /app du conteneur Docker. La commande RUN utilise ce fichier pour installer les dépendances nécessaires. La dernière commande COPY copie l'intégralité de l'application dans le conteneur. 🎜🎜Résumé🎜🎜Dans cet article, nous avons appris comment copier des fichiers dans Docker. À l'aide de la commande docker cp, nous pouvons copier des fichiers de l'hôte vers un conteneur Docker en cours d'exécution ou d'un conteneur vers l'hôte. De plus, dans le Dockerfile, nous pouvons utiliser la commande COPY pour réaliser une copie automatique de l'hôte vers le conteneur. 🎜🎜J'espère que cet article vous sera utile et vous permettra de mieux gérer et utiliser les conteneurs Docker. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn