Syntaxzusammensetzung: 1 Anmerkungsinformationen .dockerignore-Datei – Definieren Sie in jeder Zeile eine Ignorierdatei. ........................................................... Allgemeine Anweisungen im Dockerfile: 1 VON ---Geben Sie das Basisbild an Wenn das Basis-Image nicht vorhanden ist, wird es im folgenden Format vom Docker Hub abgerufen: 2 MAINTANIER -- Dockerfile bereitstellen Der Ersteller stellt persönliche Informationen zur Verfügung [allmählich aufgegeben] Format verwenden:
...................................................... 3 KOPIEREN – Kopieren Sie die Dateien vom Hostcomputer in das Image! Die Datei sollte sich im Dockerfile-Arbeitsverzeichnis befinden Durch Leerzeichen getrennte Zeichenfolgen müssen durch "" getrennt werden, andernfalls werden sie als zwei Dateien behandelt! Richtlinien zum Kopieren von Dateien: 4 ADD - ähnlich dem COPY-Befehl Unterstützt den URL-Pfad – Wenn auf das Netzwerk zugegriffen werden kann, wird auf das Netzwerk zugegriffen, um es lokal herunterzuladen und dann in das Image zu packen! Betriebsanleitung: 2 Wenn es sich um ein komprimiertes Paket handelt, wird es dekomprimiert, aber die über den URL-Pfad erhaltene TAR-Datei wird nicht erweitert 3 Wenn mehrere Quellen vorhanden sind oder Platzhalter direkt oder indirekt verwendet werden, muss „dest“ ein Verzeichnispfad sein, der mit / endet. Wenn „dest“ nicht mit / endet, wird es als normale Datei betrachtet. ................................................................. 5 WORKDIR --Arbeitsverzeichnis angeben Jedes Mal wird es nur die nachfolgenden Anweisungen dieser Anweisung beeinflussen
ARBEITSVERZEICHNIS /usr/local/src/ ADD nginx-1.14.2.tar.gz ./ --Betroffen ............................................................ 6 VOLUMEN Es können nur von Docker verwaltete Volumes definiert werden: Beim Ausführen wird unter dem Host-Verzeichnis zufällig ein Volume-Verzeichnis generiert! 7 EXPOSE Öffnen Sie den angegebenen Abhörport für den Container, um mit der Außenwelt zu kommunizieren Format verwenden: Wenn kein Protokoll angegeben ist, ist der Standardwert TCP. Verwenden Sie die Option -P, um den hier angegebenen Port freizugeben! 8 UMWELT Wird verwendet, um die erforderlichen Umgebungsvariablen für das Image zu definieren und kann von anderen Befehlen aufgerufen werden, die ihm in der Dockerfile-Datei folgen. Anrufformat: ENV <Schlüssel> <Wert> Im ersten Format wird alles nach dem Schlüssel als Teil von <value> betrachtet. Daher kann immer nur eine Variable gleichzeitig festgelegt werden! Das zweite Format kann verwendet werden, um mehrere Variablen gleichzeitig festzulegen. Jede Variable ist ein <Schlüssel>=<Wert> Beim Definieren mehrerer Variablen. Die zweite Methode wird empfohlen, um alle Funktionen in derselben Schicht auszuführen. Spezifische Verwendung: ENV A /web/html KOPIEREN SIE index.html ${A:-/web/html} Übergeben von Variablen im Docker-Run: printenv – Informationen zu Umgebungsvariablen ausgeben .............................................................. 9 RUN-Befehl: Format verwenden: Im ersten Format ist <command command normalerweise ein Shell-Befehl und wird als "/bin/sh -c"> ausgeführt. Dies bedeutet, dass die PID dieses Prozesses im Container nicht 1 sein kann und keine Unix-Signale empfangen kann. Wenn der Container daher mit dem Befehl docker stop gestoppt wird, empfängt dieser Prozess das Signal nicht. Der Parameter im zweiten Syntaxformat ist ein Array im JSON-Format, wobei <executable> der auszuführende Befehl ist und das folgende .............................................................................. 10 CMD-Befehl: in Docker Run ausführen Es gibt drei Möglichkeiten, Grammatik zu schreiben
2. CMD ["param1","param2"]
Nur doppelte Anführungszeichen! CMD ["Param1","Param2"] Kann zum Ausführen von Skripten verwendet werden: Füge run_tomcat.sh /apps/tomcat/bin/run_tomcat.sh hinzu AUSFÜHREN chmod +x /apps/tomcat/bin/run_tomcat.sh Führen Sie den Befehl chown -R tomcat aus:tomcat /apps /data/tomcat CMD ["/apps/tomcat/bin/run_tomcat.sh"] – referenzieren Sie das Skript! .............................................................. 11 EINSTIEGSPUNKT Eine Funktion ähnlich der CMD-Anweisung wird verwendet, um ein standardmäßig ausgeführtes Programm für den Container anzugeben, wodurch der Container wie ein separates ausführbares Programm wird Im Gegensatz zu CND wird das durch diesen Befehl gestartete Programm nicht durch die in der Docker-Run-Befehlszeile angegebenen Parameter überschrieben. Darüber hinaus werden diese Befehlszeilenparameter als Parameter an das durch ENTRYPOINT angegebene Programm übergeben. Format verwenden:
Die an den Befehl „docker run“ übergebenen Befehlsparameter überschreiben den von CMD angegebenen und an ENTRYPOINT angehängten Inhalt. Es können mehrere solcher Anweisungen in der Dockerfile-Datei vorhanden sein, aber nur die letzte wird wirksam! Beim Ausführen von „Docker Run“ kann der mit der Zeichenfolgenoption „--entrypoint“ übergebene Befehl die im Docker-File definierte ENTRYPOINT-Anweisung überschreiben. So erlauben Sie Nginx-Konfigurationsdateien, Parameter zu empfangen Erstellen Sie ein Skript:
Docker-Datei:
Hinweis: Doppelte Anführungszeichen sind erforderlich! ! ! 12 USER-Befehl: Wird verwendet, um RUN, CMD oder ENTRYPOINT anzugeben, wenn ein Image oder eine Docker-Datei ausgeführt wird. Standardmäßig wird der Container als Root ausgeführt. Format: Beachten Sie, dass <UID> eine beliebige Zahl sein kann, in der Praxis muss es sich jedoch um eine gültige Zahl für einen Benutzer in /etc/passwd handeln. Muss in der Datei /etc/passwd im Container vorhanden sein .................................................................................................... 13 GESUNDHEITSCHECK Überwachung des Gesundheitszustands Allgemeine Optionen: Antwortwert: Anwendungsbeispiele:
Anwendung im Dockerfile:
Es kann auch im Docker-Run definiert werden:
................................................................. 14 SHELL-Befehl:
............................................................ 15 STOPSIGNAL-Befehl: STOPSIGNAL Signalname Definiert das Signal für den Stoppbefehl! SIGKILL --9 Signal ............................................................ 16 ARG-Parameter: Wird im Docker-Build-Prozess verwendet Kann als Parameter durch --build-arg übergeben werden!
Wenn die Arg-Variable im Dockerfile während des Docker-Builds mit der Variable --build-arg festgelegt wird, ist der Variablenwert in der Befehlszeilenschnittstelle der endgültige Wert! 17 EINBAU Wird verwendet, um einen Trigger in einer Docker-Datei zu definieren. Wenn die From-Spezifikation im folgenden Dockerfile während des Build-Prozesses ausgeführt wird, wird der von ONBUILD angegebene Trigger ausgelöst, der die Dockerfile-Datei seines Basis-Images erstellt. Format: Obwohl jeder Befehl als Triggerbefehl registriert werden kann, kann ONBUILD nicht in sich selbst verschachtelt werden und wird nicht von Maintainer-Befehlen ausgelöst. Mit einem Dockerfile erstellte Images, das die Direktive „onbuild“ enthält, sollten ein spezielles Tag wie „ruby:2.0-onbuild“ verwenden. Seien Sie äußerst vorsichtig, wenn Sie die Anweisungen „add“ oder „copy“ in einer Onbuild-Anweisung verwenden, da der Build-Prozesskontext fehlschlägt, wenn die angegebenen Quelldateien fehlen! Es wird ausgeführt, wenn andere auf dieses Bild verweisen! Es wird nicht während des ersten Build-Prozesses ausgeführt Das könnte Sie auch interessieren:
|
<<: Kostenlose Installationskonfigurationsmethode für MySQL 5.7.18 WinX64
>>: Zwei Implementierungscodes der programmgesteuerten Navigation mit Vue-Router
In diesem Artikel finden Sie den spezifischen Cod...
Verwenden Sie navicat zum Testen und Lernen: Verw...
Verwenden Sie Javascript, um ein Message Board-Be...
Routing-Konfigurationsbefehle unter Linux 1. Host...
1. Holen Sie sich den tatsächlichen Pfad des aktu...
Das Betriebssystem Win10 MySQL ist die 64-Bit-ZIP...
Ergebnisse erzielenImplementierungscode html <...
In diesem Artikel wird der spezifische Code von V...
Die Hintergrundfarbe der Tabelle kann über das At...
Ich habe zufällig festgestellt, dass Vue.$set im ...
01. Kompilierungsoptionen und Kernelkompilierung ...
In diesem Artikelbeispiel wird der spezifische Co...
Vor einiger Zeit stieß ich während der Entwicklun...
Vorwort Um den Unterschied zwischen dem Hinzufüge...
Vorschauversionen von Safari (Technology Preview ...