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

So zeigen Sie die IP-Adresse des Docker-Containers an

Ich dachte immer, Docker hätte keine IP-Adresse. ...

Implementierung der MySQL-Datendesensibilisierung (Telefonnummer, ID-Karte)

1. Erklärung zur Datendesensibilisierung Bei den ...

Eine kurze Diskussion darüber, ob CSS-Animationen durch JS blockiert werden

Der Animationsteil von CSS wird von JS blockiert,...

Verwendung und Verständnis von MySQL-Triggern

Inhaltsverzeichnis 1. Was ist ein Auslöser? 2. Er...

17 404-Seiten, die Sie erleben möchten

Wie können wir sagen, dass wir 404 vermeiden soll...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.18

Lernziele: Lernen Sie, MySQL-Datenbanken unter de...

Detaillierte Erklärung, wie Sie alle untergeordneten Elemente mit CSS auswählen

Wie wähle ich mit CSS rekursiv alle untergeordnet...

Implementierung der Vue-Einzeldateikomponente

Ich habe kürzlich über Vue gelesen. Ich habe eine...

Detaillierte Beschreibung der HTML-Tabellenrahmensteuerung

Nur den oberen Rand anzeigen <table frame=above...

Einführung in die Fuzzy-Abfragemethode mit instr in MySQL

Die Verwendung der internen Funktion instr in MyS...