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
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 nachmyfile.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/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 sollrequirements.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!