Verwenden von Docker-Ausführungsoptionen zum Überschreiben von Einstellungen im Dockerfile

Verwenden von Docker-Ausführungsoptionen zum Überschreiben von Einstellungen im Dockerfile

Normalerweise definieren wir zuerst die Dockerfile-Datei und erstellen dann die Image-Datei mit dem Befehl „Docker Build“. Anschließend können Sie über Docker Run eine Containerinstanz basierend auf der Imagedatei starten.

Wenn Sie dann einen Container starten, können Sie einige Parameter in der Image-Datei ändern. Diese Parameter in der Image-Datei werden häufig durch die Dockerfile-Datei definiert.

Allerdings können nicht alle Definitionen in der Dockerfile-Datei beim Starten des Containers neu definiert werden. Die Dockerfile-Anweisungen, die von „Docker Run“ nicht überschrieben werden können, lauten wie folgt:

  • AUS
  • BEWAHRER
  • LAUFEN
  • HINZUFÜGEN
  • KOPIE

1. Überschreiben Sie die ENTRYPOINT-Anweisung

Die ENTRYPOINT-Anweisung in der Dockerfile-Datei wird verwendet, um den Standardeinstiegspunkt nach dem Start des Containers anzugeben.
Die ENTRYPOINT-Anweisung gibt das Standardverhalten nach dem Start des Containers an. Es ist im Allgemeinen schwierig, es beim Starten des Containers zu überschreiben, aber Befehlsparameter können angehängt werden. Hier ist ein Beispiel:

  • docker run --entrypoint /bin/bash ... , gibt die nachfolgenden Befehlsparameter des Containereintrags aus
  • docker run --entrypoint="/bin/bash ..." ... , gibt dem Container eine neue Shell
  • docker run -it --entrypoint="" mysql bash , Containereintrag zurücksetzen

2. CMD-Befehl überschreiben

Die CMD-Anweisung in der Dockerfile-Datei enthält die Standardanweisungen, die nach dem Start des Containers ausgeführt werden sollen.

Beim Starten des Containers können Sie neue Befehlsoptionen für „docker run“ festlegen, um die CMD-Anweisung in der Dockerfile-Datei zu überschreiben (die CMD-Anweisung in der Dockerfile-Datei wird nicht mehr konsultiert). Hier ist ein Beispiel:

  • docker run ... <New_Command> , Sie können einen anderen Befehl eingeben, um die Standardanweisungen im Dockerfile zu überschreiben

Wenn die ENTRYPOINT-Anweisung auch in der Dockerfile-Datei deklariert ist, werden die obigen Anweisungen als Parameter an die ENTRYPOINT-Anweisung angehängt.

3. Überschreiben Sie die EXPOSE-Anweisung

Die EXPOSE-Anweisung in der Dockerfile-Datei wird verwendet, um Ports für den Host zu reservieren, auf dem sich der Container befindet.

Dies ist offenbar eine Funktion des Laufzeitcontainers, sodass Docker Run diese Anweisung bequem überschreiben kann. Hier ist ein Beispiel:

  • docker run --expose="port_number:port_number"
  • docker run -p port_number:port_number/tcp , öffnet den angegebenen Portbereich
  • docker run --link="another_container_id" , Link zu einem anderen Container
  • docker run -P , alle Ports öffnen

4. ENV-Direktive außer Kraft setzen

Die ENV-Anweisung in der Dockerfile-Datei wird verwendet, um die Umgebungsvariablen im Container festzulegen.

Beim Starten eines Containers werden die folgenden Umgebungsvariablen automatisch für den Container festgelegt:

  • HOME, legt das Home-Verzeichnis des Benutzers basierend auf USER fest
  • HOSTNAME, der Standard-Container-Hostname
  • PFAD, Standard:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  • TERM, Standard xterm, wenn dem Container ein Pseudo-TTY zugewiesen ist

Docker Run kann diese Anweisung bequem außer Kraft setzen. Hier ist ein Beispiel:

docker run -e "key=value" ... , legt einen neuen Umgebungsvariablenschlüssel fest
docker run -h ... , HOSTNAME überschreiben
docker run ubuntu /bin/bash -c export

deklarieren -x HOME="/"
deklarieren -x HOSTNAME="85bc26a0e200"
deklarieren -x OLDPWD
deklarieren -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
deklarieren -x PWD="/"
deklarieren -x SHLVL="1"
deklariere -x tief="lila"

Festlegen oder Überschreiben von Umgebungsvariablen über Skripte

5. Überschreiben Sie die VOLUME-Anweisung

Die VOLUME-Anweisung im Dockerfile wird verwendet, um Datenvolumes für den Container festzulegen.

  • docker run -v ...
  • docker run -volumes-from ...

6. USER-Befehl überschreiben

Der Standardbenutzer innerhalb des Containers ist root (uid=0).
In der Dockerfile-Datei können Sie über USER andere Benutzer als Standardbenutzer des Containers festlegen.

  • docker run -u="" ...
  • docker run --user="" ...

Docker run unterstützt die folgenden Formen von -u:

  • Benutzer
  • Benutzer:Gruppe
  • Benutzerkennung
  • Benutzerkennung: gid
  • Benutzer:gid
  • uid:Gruppe

7. Überschreiben Sie die WORKDIR-Direktive

Die WORKDIR-Anweisung in der Dockerfile-Datei wird verwendet, um das Arbeitsverzeichnis für nachfolgende Anweisungen festzulegen.

Wenn der Pfad nicht existiert, wird er erstellt, auch wenn er in nachfolgenden Anweisungen nicht verwendet wird.

In einem können mehrere WORKDIRs existieren. Bei relativen Pfaden erben nachfolgende Anweisungen von der vorherigen Anweisung.

In WORKDIR können Sie auf zuvor definierte Umgebungsvariablen verweisen.

  • docker run -w="" ...
  • docker run --workdir="" ...

Referenzlinks:

https://docs.docker.com/engine/reference/run/

https://docs.docker.com/engine/reference/builder/

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • Führen Sie nach dem Docker-Ausführen mehrere Befehle aus
  • Ubuntu vps installiert Docker und meldet einen Fehler: Es kann keine Verbindung zum Docker-Daemon unter unix:///var/run/docker.sock hergestellt werden. Problem gelöst
  • Detaillierte Erklärung zur Verwendung des Docker-Befehls „run“
  • Docker kann keine Verbindung zum Docker-Daemon herstellen. Läuft der Docker-Daemon auf diesem Host? Fehlerlösung
  • So zeigen Sie den Startparameterbefehl „Docker Run“ an (empfohlen)

<<:  Countdown-Effekt mit Javascript implementieren

>>:  JavaScript zum Erzielen eines Dropdown-Menüeffekts

Artikel empfehlen

Detailliertes Tutorial zum Ausführen mehrerer Springboot mit Docker

Docker führt mehrere Springboot Erstens: Port-Map...

Verwendungsanweisungen für den Befehl „Docker Create“

Mit dem Befehl „Docker Create“ können Sie einen C...

Spezifische Verwendung von MySQL-Globalsperren und Sperren auf Tabellenebene

Inhaltsverzeichnis Vorwort Globale Sperre Tabelle...

Detaillierte Erklärung zum Schreiben von MySQL ungleich null und gleich null

1. Tabellenstruktur 2. Tabellendaten 3. Das Abfra...

5 häufig verwendete Objekte in JavaScript

Inhaltsverzeichnis 1. JavaScript-Objekte 1).Array...

Informationen zur Nginx-GZIP-Konfiguration

Das Prinzip von nginx zur Erzielung einer Ressour...

Vue implementiert eine Formularvalidierungsfunktion

Dieser Artikel beschreibt hauptsächlich, wie die ...

Eine einfache Methode zum Zusammenführen und Entfernen doppelter MySQL-Tabellen

Szenario: Die gecrawlten Daten erzeugen eine Date...

Einige Hinweise zu MySQL-Routineberechtigungen

1. Wenn der Benutzer über die Berechtigung zum Er...

HTML-Code, der den Internet Explorer zum Einfrieren bringen kann

Wir müssen lediglich einen beliebigen Texteditor ö...

Lösung für „Spezialisierter Schlüssel war zu lang“ in MySQL

Inhaltsverzeichnis Lösung 1 Lösung 2 Beim Erstell...

Lösen Sie das Problem des Startfehlers von PHPStudy MySQL unter Windows

Einen Fehler melden Der Apache\Nginx-Dienst wurde...