Ich habe Docker schon einmal kurz erlernt, um ein Projekt schnell bereitzustellen. Der Vorgang ging sehr schnell und ich war mit dem Schreiben von Dockerfile-Dateien etwas ungewohnt. Also habe ich diesen Artikel geschrieben. Ich hoffe, das kann Ihnen allen helfen! ! ! 1. Was ist Dockerfile?Konzept: Dockerfile ist eine Build-Datei, die zum Erstellen eines Docker-Images verwendet wird. Es ist ein Skript, das aus einer Reihe von Befehlen und Parametern besteht. Drei Schritte zum Erstellen:
Centos-Beispiel: CentOS-Beispiel: VON Grund auf #Das echte Basisbild, HINZUFÜGEN centos-7-x86_64-docker.tar.xz / # Bezeichnungsbeschreibung LABEL \ org.label-schema.schema-version="1.0" \ org.label-schema.name="CentOS-Basisimage" \ org.label-schema.vendor="CentOS" \ org.label-schema.license="GPLv2" \ org.label-schema.build-date="20201113" \ org.opencontainers.image.title="CentOS-Basisimage" \ org.opencontainers.image.vendor="CentOS" \ org.opencontainers.image.licenses="GPL-2.0-only" \ org.opencontainers.image.created="2020-11-13 00:00:00+00:00" CMD ["/bin/bash"] #Der in der letzten Zeile ausgeführte Befehl Wo habe ich es gefunden? Ich habe es auf hub.docker.com gefunden: centos. Wir wissen nicht, wie das geht, aber wir können uns zunächst ansehen, wie andere es schreiben. Ich denke, jeder kennt das Abschreiben von Hausaufgaben. Allgemein bekannt als CV-Methode😂. 2. Analyse des Dockerfile-ErstellungsprozessesErste Schritte: Jede reservierte Wortdirektive (der Schwerpunkt des heutigen Beitrags) muss wie: VON Grund auf #Das echte Basisbild, HINZUFÜGEN centos-7-x86_64-docker.tar.xz / Anweisungen werden sequenziell von oben nach unten ausgeführt.
Jeder Befehl erstellt eine neue Bildebene und überträgt das Bild. Sie können es wie bei den Matrjoschkas machen, genau wie im Folgenden. Analyse des Dockerfile-Ausführungsprozesses:
Später im Text werden Fälle aufgeführt, die im Zusammenhang mit den Fällen noch einmal durchgelesen werden können und so das Verständnis erleichtern. Kleines Extra:
Docker-Container können Dienste bereitstellen, sobald sie ausgeführt werden. 3. Anweisungen für reservierte Wörter in DockerfileDie Anweisungen für reservierte Wörter von Dockerfiel lauten wie folgt:
3.1 VONBasisimage, also das Image, auf dessen Basis das aktuelle neue Image erstellt wird. #Bild basierend auf openjdk:8 erstellen VON openjdk:8 3.2 BETREIBERName und E-Mail-Adresse des Bildverwalters WARTUNGSMITARBEITER Ning Zaichun [email protected] 3.3 LAUFAnweisungen zum Ausführen beim Erstellen des Containers RUN mkdir -p /conf/my.cn 3.4 AUSSETZENDer vom aktuellen Container freigegebene Port #Stellen Sie die erforderlichen Ports von MyCat bereit EXPOSE 8066 9066 3.5 ARBEITSVERZEICHNISGeben Sie das Standardarbeitsverzeichnis an, in das sich das Terminal nach dem Erstellen des Containers einloggen soll. #Containerdatenvolumen, wird für Datenspeicherung und Persistenzarbeit verwendet WORKDIR /usr/local/mycat 3.6 UmweltWird verwendet, um Umgebungsvariablen während der Image-Erstellung festzulegen #Wird verwendet, um während des Image-Erstellungsprozesses die Umgebungsvariable ENV MYCAT_HOME=/usr/local/mycat festzulegen Diese Umgebungsvariable kann in allen nachfolgenden RUN-Anweisungen verwendet werden, als ob das Umgebungsvariablenpräfix vor dem Befehl angegeben worden wäre; diese Umgebungsvariablen können auch direkt in anderen Anweisungen verwendet werden. wie: Führen Sie $MYCAT_HOME/mycat aus 3.7. HINZUFÜGEN und KOPIERENHINZUFÜGEN: Kopieren Sie die Dateien im Hostverzeichnis in das Image. Der Befehl ADD verarbeitet die URL automatisch und dekomprimiert das Tarball. HINZUFÜGEN centos-6-docker.tar.xz / KOPIE: Ähnlich wie ADD werden Dateien und Verzeichnisse in das Image kopiert. Kopiert die Dateien/Verzeichnisse vom <Quellpfad> im Build-Kontextverzeichnis zum Speicherort <Zielpfad> in der neuen Ebene des Images. KOPIEREN Quelle Ziel KOPIEREN ["Quelle" "Ziel"] 3.8 LAUTSTÄRKEContainerdatenvolumes werden zur Datenpersistenz und -speicherung verwendet. #Legen Sie die Zuordnungsadresse der Mycat-Konfigurationsdateiadresse offen und ordnen Sie beim Start den Hostordner VOLUME /usr/local/mycat direkt zu 3.9 CMD und ENTRYPOINTCMD Der CMD-Befehl ähnelt dem RUN-Befehl und hat ebenfalls zwei Formate:
In EINSTIEGSPUNKT Gibt einen Befehl an, der beim Starten des Containers ausgeführt werden soll. Der Zweck von ENTRYPOINT ist derselbe wie bei CMD, nämlich die Angabe des Container-Startprogramms und der Parameter. Der Unterschied: Hier ist eine kurze Erklärung des Unterschieds. Sie können CMD als Überschreiben verstehen CMD cat /conf/my.cnfCMD /bin/bash Beide Anweisungen werden in die Anders verhält es sich Dies spiegelt sich hauptsächlich in Wenn die letzte Zeile im 3.10 ONBUILD Beim Erstellen eines geerbten 4. Tatsächliche Kampffälle4.1. Erstellen Sie Ihr eigenes CentOS-Image4.1.1、Einführung:Lassen Sie uns zunächst ein CentOS aus der Alibaba Cloud abrufen, um zu sehen, welche Probleme es gibt, und dann können wir es anpassen. docker pull centos # Rufen Sie das Image ab docker run -it centos # Führen Sie das Image aus # ===== Test ====vim ceshi.txtifconfig pwd Warum ist das so? Weil Centos im Docker-Repository eine abgespeckte Version ist, die nur den Kernel und sonst nichts enthält. Zur Lösung der oben genannten Probleme ist ein angepasstes Centos erforderlich. 4.1.2. Dockerfile schreibenSchreiben Sie eine Docker-Datei für unser benutzerdefiniertes Centos FROM centosMAINTAINER 宁在春<[email protected]>ENV MYPATH /usr/localWORKDIR $MYPATHRUN yum -y install vimRUN yum -y install net-toolsEXPOSE 80 CMD echo $MYPATHCMD echo "success"CMD /bin/bash #Nur der letzte wird ausgeführt Kopieren Sie dieses anschließend hinein. mkdir -p /usr/local/docker/mycentos # Eigenen Speicherort erstellen vim Dockerfile 4.1.3. CentOS-Image erstellendocker build -f /usr/local/docker/mycentos/Dockerfile -t mycentos:1.1 . erklären:
implementieren: Das Letzte zu sehen bedeutet Erfolg. 4.1.4. Centos-Image ausführendocker run -it mycentos:1.3pwdifconfig Der Grund, warum das Verzeichnis, in das wir den Container eingeben, von ENV MYPATH /usr/localWORKDIR $MYPATH 4.1.5. Änderungsverlauf des Bildes anzeigenDocker-Verlauf mycentos:1.1 Auch hier ist zu erkennen, dass das Image durch die Anweisungen in der Dockerfile-Datei Schicht für Schicht aufgebaut wird. 4.2 ONBUILD BeispielBaue als Erster einen Ehemann-Spiegel Schreiben Sie eine FROM centosRUN yum -y install curlONBUILD RUN echo "Ich wurde vom Unterabbild geerbt, gib diese Anweisung aus" CMD ["crul", "-s","http://ip.cn"] docker build -f /usr/local/docker/mycentos/Dockerfile2 -t mein_Vater_centos . Erstellen Sie ein Spiegelbild Schreiben Sie eine VON mein_Vater_centosRUN yum -y installiere curlCMD ["crul", "-s","http://ip.cn"] docker build -f /usr/local/docker/mycentos/Dockerfile3 -t my_son_centos . Sie können sehen, dass die Anweisungen im übergeordneten Bild ausgegeben werden. Dies ist das Ende dieses Artikels über reservierte Wortanweisungen in Dockerfile. Weitere relevante Dockerfile-Anweisungen für reservierte Wörter finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Implementierung eines einfachen Altersrechners auf Basis von HTML+JS
>>: CSS füllt das übergeordnete Container-Div mit img-Bildern und passt sich der Containergröße an
1. Übersicht Redis Cluster ermöglicht hohe Verfüg...
Dieser Artikel veranschaulicht anhand von Beispie...
Dieser Artikel veranschaulicht anhand von Beispie...
1. Prinzip des Hotlinking 1.1 Vorbereitung der We...
Inhaltsverzeichnis Zunächst müssen Sie wissen, da...
Ergebnis: Implementierungscode: Muss mit der Swip...
Inhaltsverzeichnis Einführung in FTP, FTPS und SF...
Szenario: Nach der Installation der neuesten Vers...
Wenn wir lernen, die 3D-Effekte von CSS3 zum Erst...
In diesem Artikelbeispiel wird der spezifische Co...
In diesem Artikel zeigt Ihnen der Blogger die häu...
Inhaltsverzeichnis 1. Installation und Betrieb vo...
Kürzlich habe ich festgestellt, dass nach der Ver...
Vorbereiten: Downloadadresse für das MySQL 8.0 Wi...
Wir, die bescheidenen Programmierer, müssen immer...