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    

Artikel empfehlen

Einführung in die Vue3 Composition API

Inhaltsverzeichnis Überblick Beispiel Warum wird ...

So verwenden Sie den Nginx-Proxy zum Surfen im Internet

Normalerweise verwende ich nginx als Reverse-Prox...

Implementierung von nacos1.3.0, erstellt mit Docker

1. Fortsetzen nacos-Datenbank Datenbankname nacos...

Wissen Sie, welche Möglichkeiten es gibt, in Vue Routen zu überspringen?

Inhaltsverzeichnis Die erste Methode: Router-Link...

So legen Sie eine Verzeichnis-Whitelist und eine IP-Whitelist in Nginx fest

1. Legen Sie eine Verzeichnis-Whitelist fest: Leg...

Detaillierte Erklärung, wo Docker Protokolldateien speichert

Inhaltsverzeichnis Wo werden die Protokolle gespe...

4 Möglichkeiten zum Anzeigen von Prozessen in LINUX (Zusammenfassung)

Ein Prozess ist ein Programmcode, der in der CPU ...

Erste Schritte mit SELinux

Bereits zu Kernel 2.6-Zeiten wurde ein neues Sich...

Detaillierte Erläuterung der Datentypprobleme bei der JS-Array-Indexerkennung

Als ich ein WeChat-Applet-Projekt schrieb, gab es...

Regenbogen-Button-Stil erstellt mit CSS3

Ergebnis: Implementierungscode: html <div Klas...