Was ist der Unterschied zwischen Anweisungen zum Kopieren und Hinzufügen in Docker?

青灯夜游
Freigeben: 2021-11-29 16:57:07
Original
23790 Leute haben es durchsucht

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.

Was ist der Unterschied zwischen Anweisungen zum Kopieren und Hinzufügen in Docker?

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 und fügen Sie sie zu hinzu.

Es können mehrere Ressourcen angegeben werden, aber wenn es sich um Dateien oder Verzeichnisse handelt, werden ihre Pfade relativ zur Quelle des Build-Kontexts interpretiert, also _WORKDIR_.

Jedes kann Platzhalter enthalten und für den Abgleich werden die filepath.Match-Regeln von Go verwendet. Zum Beispiel:

Fügen Sie alle Dateien hinzu, die mit „hom“ beginnen:

ADD hom* /mydir/
Nach dem Login kopieren

Im folgenden Beispiel wird ? durch ein beliebiges einzelnes Zeichen ersetzt, z. B. „home.txt“.

ADD hom?.txt /mydir/
Nach dem Login kopieren

ist ein absoluter Pfad oder ein relativer Pfad relativ zu WORKDIR.

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage