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 verwenden Sie display:olck/none zum Erstellen einer Menüleiste

Die Auswirkung der Vervollständigung einer Menüle...

Tutorial zum Herunterladen und Installieren von MySQL 8.0.12 WinX64

MySQL 8.0.12 Download- und Installations-Tutorial...

Einfache Schritte zum Kapseln von Komponenten in Vue-Projekten

Inhaltsverzeichnis Vorwort So kapseln Sie eine To...

Vue ruft die Computerkamera auf, um die Fotofunktion zu realisieren

In diesem Artikelbeispiel wird der spezifische Co...

Webdesign: Skriptmaterialien rekonstruieren das Benutzererlebnis

<br />Originaltext: http://blog.rexsong.com/...

Implementierung von Debugging-Code über den Nginx-Reverse-Proxy

Hintergrund Heutzutage werden die Projekte des Un...

Der Unterschied zwischen method=post/get in Form

Das Formular bietet zwei Möglichkeiten zur Datenüb...

7 interessante Möglichkeiten, versteckte Elemente in CSS zu erreichen

Vorwort Die Ähnlichkeiten und Unterschiede zwisch...

So installieren Sie MySQL 8.0.13 in Alibaba Cloud CentOS 7

1. Laden Sie das MySQL-Installationspaket herunte...