Als nächstes werden wir dieses Mal COPY, ADD, CMD, ENTRYPOINT, ENV, WORKDIR vorstellen.
COPY Wird verwendet, wenn Dateien vom Host an den Container übergeben werden.
Wie schreibt man
COPY <Dateiname zum Kopieren> <Kopieren Sie das Zielverzeichnis in den Container>
Dies ist ein einfaches Beispiel, aber es ist eine Beschreibung beim Erstellen eines Verzeichnisses unter Ubuntu OS und beim Kopieren von Dateien.
Dockerfile
FROM ubuntu:latest
RUN mkdir /test_dir
COPY hoge.txt /test_dir
Es gibt einen weiteren Befehl zum Hinzufügen einer Datei zum Container mit dem Namen "ADD". ADD Es ist ein Befehl, der Dateien und Ordner in einen Container kopieren kann, aber es gibt einen entscheidenden Unterschied zu "KOPIEREN". Sie können die komprimierte Datei von tar ** kopieren + dekomprimieren **. Wenn die Datei schwer ist oder die in der Ordnerhierarchie zu übertragende Größe groß ist und unverändert an den Container übergeben wird, dauert es einige Zeit, bis sie an den Container übergeben wird. In einem solchen Fall ist die Übertragung selbst schnell und wird im dekomprimierten Zustand erweitert, wenn Sie beim Komprimieren mit Teer und beim Kopieren in den Container in "ADD" schreiben.
Wie schreibt man
ADD <Zu kopierender komprimierter Dateiname> <Kopieren Sie das Zielverzeichnis in den Container>
Der einzige Unterschied zu COPY besteht darin, ob die Datei komprimiert ist. Daher werde ich das Beispiel weglassen.
ENTRYPOINT
Geben Sie wie bei "CMD" den letzten Befehl an, der während des Docker-Laufs ausgeführt werden soll.
CMD
kann einen Befehl während des Docker-Laufs überschreiben, aber ENTRYPOINT
kann den letzten Befehl nicht überschreiben.
Was die Beschreibungsmethode betrifft, gibt "CMD" das Argument nacheinander wie ["Befehl" (, "Argument 1", "Argument 2")] an, aber "ENTRYPOINT" gibt nur den Befehl an, und das Argument ist Geben Sie mit "CMD" an.
** Der Befehl kann nicht für "ENTRYPOINT" geändert werden, aber der durch "CMD" angegebene Argumentteil kann überschrieben werden. ** ** **
Wie schreibe ich im Fall von CMD
FROM ubuntu:latest
CMD ["Befehl", "Argument 1", "Argument 2"]
Wie schreibe ich im Fall von ENTRY POINT
FROM ubuntu:latest
ENTRYPOINT ["Befehl"]
CMD ["Argument 1", "Argument 2"]
Grundsätzlich denke ich, dass "CMD" genug ist.
ENV Sie können Umgebungsvariablen festlegen. Es gibt verschiedene Möglichkeiten, dies zu beschreiben. Es ist auch möglich, mehrere Elemente nebeneinander zu schreiben, wie im dritten Beispiel unten gezeigt.
Wie schreibt man
ENV key1 val
ENV key2=val
ENV key3=val3 key3=val3
Wenn Sie mehrere Elemente gleichzeitig schreiben und der Wert der Umgebungsvariablen (Wert oben) einen halben Bereich enthält, kann dies festgelegt werden, indem Sie ihn in doppelte Anführungszeichen setzen oder maskieren.
So beschreiben Sie mehrere ENV-Einstellungen in einer Zeile
ENV key4="v a l 4" key5=v\ a\ l\ 5
Wenn es nur eine Zeile gibt, können Sie wie folgt schreiben.
So beschreiben Sie Umgebungsvariableneinstellungen gemischt mit Leerzeichen in einer ENV
ENV key6 v a l 6
Jetzt können Sie beispielsweise den Pfad innerhalb des Containers übergeben.
WORKDIR
Sie können das Verzeichnis ändern, in dem der von RUN
ausgeführte Befehl ausgeführt wird, der in der Docker-Datei beschrieben ist.
Wie schreibt man
WORKDIR absoluter Weg
Wenn es sich um "cd" handelt, kehrt es jedes Mal, wenn "RUN" ausgeführt wird, zum Stammverzeichnis zurück. Wenn Sie also das Arbeitsverzeichnis reparieren und "RUN" ausführen möchten, verschieben Sie das Verzeichnis mit "WORKDIR". ..
Dieser Befehl schließt die Einführung grundlegender Docker-Anweisungen ab. Durch die Kombination mit den zuletzt eingeführten Befehlen können Sie die häufig verwendeten Befehle abdecken. Docker ist praktisch, also versuchen Sie es bitte.
Recommended Posts