Ich habe eine Docker-Datei geschrieben, die so aussieht
FROM ubuntu:12.04
RUN apt-get update
RUN apt-get install -y wget
Jetzt habe ich eine Datei abc.txt
auf meinem Host-Computer aufgerufen . Wie kann ich es in diesen Container kopieren? Gibt es einen Schritt, den ich in Dockerfile hinzufügen kann, der vom Host in den Container kopiert?
docker
boot2docker
dockerfile
docker-registry
Sasikiran Vaddi
quelle
quelle
Antworten:
Verwenden Sie den Befehl COPY wie folgt:
Weitere Details zu COPY finden Sie in der offiziellen Dokumentation
Eine Alternative wäre die Verwendung von ADD. Dies ist jedoch nicht die beste Vorgehensweise, wenn Sie einige erweiterte Funktionen von ADD wie die Dekomprimierung von tar.gz-Dateien nicht verwenden möchten. Wenn Sie den Befehl ADD weiterhin verwenden möchten, gehen Sie folgendermaßen vor:
Weitere Details zu ADD finden Sie in der offiziellen Dokumentation
quelle
Für diejenigen, die diesen (schrecklich unklaren) Fehler bekommen:
Es kann viele Gründe geben, darunter:
context
den Kontext der Docker-Datei überschreibt. Ihre COPY-Anweisungen müssen jetzt einen Pfad relativ zu dem, was in docker-compose.yml definiert ist, anstatt relativ zu Ihrer Docker-Datei navigieren.COPY abc.txt /app #This won't work
.dockerignore
oder.gitignore
files ignoriert wird (Vorsicht vor Platzhaltern)Manchmal
WORKDIR /abc
folgenCOPY . xyz/
Arbeiten, bei denen esCOPY /abc xyz/
fehlschlägt, aber es ist ein bisschen hässlich.quelle
.gitignore
die verhindertADD foo.zip .
in meinem Dockerfile.Ich hatte dieses Problem, konnte das Zeppelin-Verzeichnis [1 GB] nicht in den Docker-Container kopieren und bekam ein Problem
Ich verwende Docker Version: 17.09.0-ce und habe das Problem mit den folgenden Schritten behoben.
Schritt 1: Kopieren Sie das Zeppelin-Verzeichnis [das ich in das Docker-Paket kopieren möchte] in das Verzeichnis mit "Dockfile".
Schritt 2: Bearbeiten Sie die Dock-Datei und fügen Sie den Befehl [Speicherort, an den wir kopieren möchten] hinzu. ADD ./zeppelin-0.7.2-bin-all / usr / local /
Schritt 3: Wechseln Sie in das Verzeichnis, das DockFile enthält, und führen Sie den Docker-Build [Befehl auch verfügbar] aus
Schritt 4: Docker-Image erfolgreich mit Protokollen erstellt
Schritt 5/9: ADD ./zeppelin-0.7.2-bin-all / usr / local / ---> 3691c902d9fe
Schritt 6/9: WORKDIR $ ZEPPELIN_HOME ---> 3adacfb024d8 .... Erfolgreich erstellt b67b9ea09f02
quelle
Sie können entweder den ADD-Befehl https://docs.docker.com/engine/reference/builder/#/add oder den COPY-Befehl https://docs.docker.com/engine/reference/builder/#/copy verwenden
quelle
Ich habe mit Docker 19.03.8 unter CentOS 7 den folgenden Fehler erhalten:
Die Lösung für mich war, aus Docker-Datei mit
docker build .
statt zu bauendocker build - < Dockerfile
.quelle
Ich konnte eine Datei von meinem Host in den Container innerhalb einer Docker-Datei als solche kopieren:
Der Inhalt der Docker-Datei lautet wie folgt, um eine Datei vom lokalen Host in das Stammverzeichnis des Containers zu kopieren: FROM ubuntu: 16.04
COPY test.txt /
Sie sollten die Datei sehen.
quelle
Wenn Sie den Inhalt des aktuellen Verzeichnisses kopieren möchten, können Sie Folgendes ausführen:
quelle