Unterschied: Die COPY-Anweisung unterstützt nicht das Abrufen von Ressourcen von Remote-URLs. Sie kann nur Ressourcen von dem Host lesen, auf dem Docker Build ausgeführt wird, und sie in das Image kopieren, während die ADD-Anweisung das Abrufen von Ressourcen von Remote-URLs unterstützt Remote-Server über URLs abrufen und in das Bild kopieren.
Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Docker-1.13.1-Version, Dell G3-Computer.
Sowohl die COPY-Anweisung als auch die ADD-Anweisung in der Docker-Datei können Ressourcen auf dem Host zum Container-Image kopieren oder hinzufügen und werden alle während des Erstellungsprozesses des Images abgeschlossen.
Der Unterschied zwischen ADD und COPY von DockerFile
Der einzige Unterschied zwischen der COPY-Anweisung und der ADD-Anweisung besteht darin, ob sie das Abrufen von Ressourcen von einer Remote-URL unterstützt.
Die COPY-Anweisung kann nur Ressourcen vom Host lesen, auf dem Docker Build ausgeführt wird, und sie in das Image kopieren. Die ADD-Anweisung unterstützt auch das Lesen von Ressourcen vom Remote-Server über die URL und deren Kopieren in das Bild.
Für die gleichen Anforderungen wird empfohlen, den COPY-Befehl zu verwenden. Mit der ADD-Anweisung können lokale TAR-Dateien besser gelesen und dekomprimiert werden.
ADD- und COPY-Anweisungen
COPY hat die gleiche Syntax wie ADD, das Kopieren von Dateien.
ADD
Kopieren Sie neue Dateien, Verzeichnisse oder Remote-Datei-URLs
Jedes
Fügen Sie alle Dateien hinzu, die mit „hom“ beginnen:
ADD hom* /mydir/
Im folgenden Beispiel wird ? durch ein beliebiges einzelnes Zeichen ersetzt, z. B. „home.txt“.
ADD hom?.txt /mydir/
ADD-Anweisung hat die folgenden Vorteile:
1 Wenn der Quellpfad eine Datei ist und der Zielpfad mit / endet, behandelt Docker den Zielpfad als Verzeichnis und kopiert die Quelldatei in dieses Verzeichnis.
Wenn der Zielpfad nicht existiert, wird der Zielpfad automatisch erstellt.
2. Wenn der Quellpfad eine Datei ist und der Zielpfad nicht mit / endet, behandelt Docker den Zielpfad als Datei.
Wenn der Zielpfad nicht vorhanden ist, wird eine Datei mit dem Namen des Zielpfads erstellt und der Inhalt stammt aus derselben Quelle wie die Datei.
Wenn es sich bei der Zieldatei um eine vorhandene Datei handelt, wird sie mit überschrieben Dabei wird natürlich nur der Inhalt überschrieben und der Dateiname bleibt weiterhin der Zieldateiname.
Wenn die Zieldatei tatsächlich in einem vorhandenen Verzeichnis vorhanden ist, wird die Quelldatei in dieses Verzeichnis kopiert. Beachten Sie, dass es in diesem Fall am besten ist, die Anzeige mit / zu beenden, um Verwirrung zu vermeiden.
3. Wenn der Quellpfad ein Verzeichnis ist und der Zielpfad nicht existiert, erstellt Docker automatisch ein Verzeichnis mit dem Zielpfad und kopiert die Dateien in das Quellpfadverzeichnis.
Wenn der Zielpfad ein vorhandenes Verzeichnis ist, kopiert Docker die Dateien im Quellpfadverzeichnis in das Verzeichnis.
4. Wenn es sich bei der Quelldatei um eine Archivdatei (komprimierte Datei) handelt, dekomprimiert Docker sie automatisch.
Die oben genannten Vorteile sind auch die Nachteile von ADD
Empfohlenes Lernen: „Docker-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Anweisungen zum Kopieren und Hinzufügen in Docker?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!