Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So kopieren Sie Hostdateien in Docker

So kopieren Sie Hostdateien in Docker

PHPz
PHPzOriginal
2023-04-18 17:07:395783Durchsuche

Der Einsatz von Docker in der Softwareentwicklung ist heutzutage zum Mainstream geworden, da es eine schnelle Erstellung, Bereitstellung und Verwaltung von Anwendungen ermöglicht. Docker wird aufgrund seiner Portabilität und seines geringen Gewichts häufig zum Erstellen und Ausführen von Containern verwendet. Allerdings können bei der Arbeit mit Dateien in Docker einige Probleme auftreten. In diesem Artikel erfahren Sie, wie Sie Dateien auf dem Host ganz einfach nach Docker kopieren.

So kopieren Sie Dateien in Docker

Um Dateien vom Host nach Docker zu kopieren, können wir den mit Docker gelieferten Befehl verwenden: docker cp. Dieser Befehl kann eine Datei oder ein Verzeichnis vom Host in einen laufenden Docker-Container kopieren oder eine Datei von einem laufenden Docker-Container auf den Host kopieren. 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

Die Syntax lautet wie folgt:

rrreee

Dieser Befehl ist sehr einfach, wobei: 🎜
  • <src_path>: Der Pfad der zu kopierenden Datei oder des Ordners li>
  • <container_id>: Die ID des Docker-Containers
  • <dest_path>: Der Zielpfad im Docker-Container zu kopiert werden nach
  • 🎜Zum Beispiel, wenn Sie die Datei myfile.txt im aktuellen Verzeichnis nach /app des Docker-Containers kopieren möchten Mit dem Namen mycontainer können Sie Folgendes tun: 🎜rrreee🎜Dieser Befehl kopiert die Datei myfile.txt nach /app des genannten Docker-Containers mycontainer code>-Verzeichnis. 🎜🎜Um die Dateien im Docker-Container zurück auf den Host zu kopieren, können wir einen ähnlichen Befehl verwenden: 🎜rrreee🎜Wobei: 🎜
    • <container_id>: Die ID des Docker-Container
    • <src_path>: Der Pfad der zu kopierenden Datei oder des Ordners
    • <dest_path>: Der zu kopierende Pfad Der Zielpfad auf dem Host-Computer
    🎜Zum Beispiel, wenn Sie die Datei /app/myfile.txt im Docker-Container mit dem Namen ablegen möchten mycontainer Kopieren Sie es in das Verzeichnis ~/Downloads des Hosts. Sie können es wie folgt tun: 🎜rrreee🎜Dieser Befehl kopiert /app/myfile hinein die Datei <code>mycontainer im Verzeichnis ~/Downloads auf dem Hostcomputer. 🎜🎜So kopieren Sie Dateien in Dockerfile🎜🎜Die obige Methode erfordert die manuelle Ausführung des Befehls nach dem Starten des Docker-Containers. Was aber, wenn Sie Dateien beim Erstellen des Docker-Images automatisch in den Container kopieren möchten? Keine Sorge, wir können dies mit dem Befehl COPY in der Docker-Datei erreichen. 🎜🎜COPY Die Befehlssyntax lautet wie folgt: 🎜rrreee🎜Wobei: 🎜
    • <src_path>: Der Pfad der Datei oder des Ordners, der gespeichert werden soll kopiert
    • <dest_path>: Der Zielpfad im Docker-Container, in den kopiert werden soll
    🎜Das Folgende ist beispielsweise eine Docker-Datei, die auf basiert das offizielle Python-Image, das derzeit die Datei requirements.txt im Verzeichnis in das Verzeichnis /app im Container kopiert: 🎜rrreee🎜In dieser Docker-Datei COPY „requirements.txt /app“ Der Befehl „code>“ kopiert die Datei „<code>requirements.txt“ in das Verzeichnis „/app“ im Docker-Container. Der Befehl RUN verwendet diese Datei, um die erforderlichen Abhängigkeiten zu installieren. Der letzte COPY-Befehl kopiert die gesamte Anwendung in den Container. 🎜🎜Zusammenfassung🎜🎜In diesem Artikel haben wir gelernt, wie man Dateien in Docker kopiert. Mit dem Befehl docker cp können wir Dateien vom Host in einen laufenden Docker-Container oder von einem Container auf den Host kopieren. Darüber hinaus können wir in der Docker-Datei den Befehl COPY verwenden, um ein automatisches Kopieren vom Host in den Container zu erreichen. 🎜🎜Ich hoffe, dieser Artikel ist hilfreich für Sie und ermöglicht Ihnen eine bessere Verwaltung und Nutzung von Docker-Containern. 🎜

Das obige ist der detaillierte Inhalt vonSo kopieren Sie Hostdateien in Docker. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn