Einführung in die Verwendung gängiger Dockerfile-Befehle

Einführung in die Verwendung gängiger Dockerfile-Befehle

In früheren Artikeln haben wir über einige DockerFile-bezogene Befehle wie RUN, FROM, MAINTAINER, EXPOSE usw. gesprochen. Heute werden wir uns andere DockerFile-Befehle ansehen.

01 CMD

Mit dem CMD-Befehl wird der Befehl angegeben, der beim Starten eines Containers ausgeführt werden muss. Es ähnelt dem RUN-Befehl, weist aber folgende Unterschiede auf:

Die RUN-Anweisung ist der Befehl, der beim Erstellen des Images ausgeführt werden muss.

Der CMD-Befehl gibt den Befehl an, der beim Starten des Containers ausgeführt werden soll. Beispiel:

docker run -it Containername /bin/ls

Mit diesem Befehl starten Sie einen Container und führen /bin/ls aus.

Dies entspricht dem manuellen Aufrufen von Docker und Ausführen des Befehls ls. Sie können stattdessen den folgenden Befehl in DockerFile verwenden:

CMD [ "/bin/ls" ]

Es ist zu beachten, dass im DockerFile nur ein CMD-Befehl angegeben werden kann. Auch wenn wir mehrere Befehle angeben, kann nur der letzte ausgeführt werden.

Wenn wir die CMD-Anweisung in DockerFile verwenden, wird die CMD-Anweisung direkt nach dem Befehl „Docker Run“ ausgeführt, zum Beispiel:

docker run -it Containername

Nach dem Starten dieses Containers wird der Befehl /bin/ls direkt ausgeführt.

02 EINSTIEGSPUNKT

Dieser Befehl ist dem obigen CMD-Befehl sehr ähnlich, mit der Ausnahme, dass alle nach dem Befehl „docker run“ angegebenen Parameter erneut als Parameter an den Befehl in der ENTRYPOINT-Anweisung übergeben werden.

03 ARBEITSVERZEICHNIS

Die Anweisung WORKDIR wird verwendet, um beim Erstellen eines neuen Containers aus einem Image ein Arbeitsverzeichnis innerhalb eines Containers festzulegen. Der ENTRYPOINT- oder CMD-Befehl wird in diesem Verzeichnis ausgeführt.

Dieser Befehl erscheint häufig am Anfang der Docker-Datei, um das Arbeitsverzeichnis für eine Reihe nachfolgender Befehle festzulegen. Nach Angabe bestimmter Befehle können Sie mit diesem Befehl auch das aktuelle Verzeichnis wechseln. Daher sollte der Befehl WORKDIR in der Regel folgendermaßen verwendet werden:

ARBEITSVERZEICHNIS /data1/xxxxx

LAUFEN xxxxx

RUN xxxxxx

ARBEITSVERZEICHNIS /data2/xxxxx

LAUFEN xxxxx

LAUFEN xxxxx

Es ist ein Tool zum ständigen Wechseln zwischen Verzeichnissen.

Was passiert, wenn wir in DockerFile ein Verzeichnis angeben, es aber beim Ausführen von Docker nicht verwenden möchten?

Die Antwort ist, docker run -w /var/dir1 zu verwenden

Nach Verwendung des Parameters -w wird /var/dir1 verwendet, um den Pfad in unserem DockerFile zu überschreiben.

04 UMWELT

Die ENV-Anweisung wird verwendet, um beim Generieren einer Docker-Datei Umgebungsvariablen anzugeben. Zum Beispiel:

ENV PYRHON_HOME /usr/bin/python

Es kann mit dem obigen WORKDIR kombiniert werden, zum Beispiel:

ENV PYRHON_HOME /usr/bin/python

ARBEITSVERZEICHNIS $PYTHON_HOME

Sie können auch den Befehl env im vom Befehl ENV generierten Container verwenden, um die Umgebungsvariablen des aktuellen Containers anzuzeigen, und Sie können den von uns festgelegten Wert von PYRHON_HOME sehen.

Zusätzlich zu dieser Methode können wir den Befehl docker -e verwenden, um Umgebungsvariablen zu übergeben, aber die von dieser Methode übergebenen Umgebungsvariablen sind nur zur Laufzeit gültig.

05 BENUTZER

Mit der USER-Anweisung wird der Benutzer angegeben, als der das Image ausgeführt wird. Zum Beispiel:

BENUTZER mysql

Natürlich können Sie auch

USER Benutzer

BENUTZER Benutzer: Gruppe

Benutzer-UID

BENUTZER-UID:gid

Dabei sind zwei Punkte zu beachten:

1. Sie können den Befehl -u in Docker Run verwenden, um die USER-Option in DockerFile zu überschreiben.

2. Wenn die Option USER nicht angegeben ist, ist der Standardbenutzer root

06 VOLUMEN

Mit der VOLUME-Anweisung wird einem aus einem Image erstellten Container ein Volume hinzugefügt. Ein Volume kann in einem bestimmten Verzeichnis innerhalb eines oder mehrerer Container vorhanden sein. Dieses Verzeichnis kann die Funktion der gemeinsamen Nutzung oder dauerhaften Speicherung von Daten bereitstellen, beispielsweise:

1. Volumes können zwischen Containern geteilt und wiederverwendet werden

2. Ein Container muss keine Volumes mit anderen Containern teilen

3. Änderungen an der Lautstärke werden sofort wirksam

4. Das Volume bleibt bestehen, bis es von keinem Container mehr benötigt wird

Mit dieser Funktion können wir dem Bild Code oder Daten hinzufügen, anstatt sie an das Bild zu übermitteln. Dadurch wird die Bildgröße erheblich reduziert. Es ermöglicht uns, diese Inhalte zwischen mehreren Containern zu teilen, daher wird VOLUME häufig verwendet, um die Korrektheit des Containers zu testen.

VOLUMEN [ "/Volumen" ]

Dieser Befehl erstellt einen Einhängepunkt mit dem Namen /volume für Container, die mit diesem Image erstellt wurden.

Sie können auch ein Array verwenden, um mehrere Einhängepunkte zu erstellen:

VOLUME [ "/Daten1", "/Daten2" ]

07 HINZUFÜGEN

Der Befehl ADD wird verwendet, um Dateien und Verzeichnisse in der Build-Umgebung in das Image zu kopieren. Bei der Verwendung des ADD-Befehls werden die Quell- und Zielspeicherorte der Datei wie folgt benötigt:

HINZUFÜGEN aaa.txt /data1/aaa.txt

Dieser Befehl kopiert die Datei aaa.txt im Image-Build-Verzeichnis in das Verzeichnis /data1/aaa.txt im Image. Eine Quelldatei kann nicht nur eine Datei im Kontext der Build-Umgebung sein, sondern auch eine URL.

Wenn die Zieladresse während des ADD-Dateiprozesses mit / endet, betrachtet DockerFile den Quellspeicherort als Verzeichnis, andernfalls betrachtet es die Quelldatei als Datei.

Und noch ein Hinweis: Wenn es sich bei der Quelldatei um eine lokale Archivdatei (z. B. tar.gz) handelt, dekomprimiert Docker sie in die Zieldatei.

08 KOPIE

Der COPY-Befehl ist ADD sehr ähnlich. Der Unterschied zu ADD besteht darin, dass COPY die URL-Methode nicht unterstützt und die Datei nicht aktiv dekomprimiert. Das Ziel des COPY-Befehls muss ein absoluter Pfad innerhalb des Containers sein.

Notiz:

1. Die UID und GID aller durch diesen Befehl erstellten Dateien und Verzeichnisse wird auf 0 gesetzt.

2. Wenn der Zielspeicherort nicht existiert, erstellt Docker automatisch alle erforderlichen Verzeichnisstrukturen. Genau wie mkdir -p.

Das ist alles für heute. Es mag etwas trocken erscheinen. Ich werde später Beispiele hinzufügen, um diese Befehle zu veranschaulichen.

Oben finden Sie den detaillierten Inhalt der Einführung in die Verwendung allgemeiner Dockerfile-Befehle. Weitere Informationen zur Verwendung von Dockerfile-Befehlen finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Zusammenfassung gängiger Befehle in Dockerfile
  • Detaillierte Erklärung der COPY- und ADD-Befehle in Dockerfile
  • Detaillierte Erklärung der CMD- und ENTRYPOINT-Befehle im Dockerfile
  • Docker-Grundlagen: Detaillierte Erklärung der Dockerfile-Befehle
  • Eine detaillierte Einführung in die Dockerfile-Image-Erstellungsdatei und verwandte Befehle in Docker

<<:  Detaillierte Erläuterung der Rolle der Standarddatenbank nach der MySQL-Installation

>>:  Farbige Anzeige der Hexadezimal-Farbcodetabelle und Anzeige des Hexadezimalwertvergleichs für eine einfache Suche

Artikel empfehlen

HTML implementiert die Funktion zur Erkennung der Eingabevervollständigung

Verwenden Sie „onInput(event)“, um festzustellen,...

Webdesign-Zusammenfassung

<br />Von der Geburt meiner ersten persönlic...

Was wir von Googles neuer Benutzeroberfläche (Bilder und Text) lernen können

Die bedeutendste Website-Änderung im Jahr 2011 bet...

Konfigurationsmethode für die SystemC-Umgebung unter Linux

Das Folgende ist die Konfigurationsmethode unter ...

So erstellen Sie eine Vue3-Desktopanwendung

In diesem Artikel sehen wir uns an, wie man mit V...

So blockieren Sie IP und IP-Bereich in Nginx

Vorne geschrieben Nginx ist nicht nur ein Reverse...

Unbekannte Verwendung von Object.entries in JavaScript

Inhaltsverzeichnis Vorwort 1. Verwenden Sie for.....

HTML-Seite unterstützt die Implementierung des Dunkelmodus

Seit 2019 verwenden sowohl Android- als auch iOS-...

4 Möglichkeiten zum Ändern des MySQL-Root-Passworts (Zusammenfassung)

Methode 1: Verwenden Sie den Befehl SET PASSWORD ...

Ein kurzes Verständnis der relevanten Sperren in MySQL

Dieser Artikel soll Ihnen vor allem dabei helfen,...

So zeichnen Sie eine vertikale Linie zwischen zwei Div-Tags in HTML

Als ich kürzlich eine Schnittstelle zeichnete, st...