1. Docker-Image1.1 Docker-Image Die Anwendung verwendet das veröffentlichte Standardformat, um den Betrieb eines Docker-Containers zu unterstützen 1.2 So erstellen Sie ein Docker-Image
Docker-Images sind geschichtete Strukturen ① Jede Anweisung im Dockerfile erstellt eine neue Bildebene ② Die Bildebene wird zwischengespeichert und wiederverwendet ③ Wenn die Anweisung im Dockerfile geändert wird, sich die kopierte Datei ändert oder die beim Erstellen des Images angegebenen Variablen unterschiedlich sind, wird der entsprechende Bildebenen-Cache ungültig ④ Wenn der Bildcache einer Ebene ungültig wird, wird auch der nachfolgende Bildebenen-Cache ungültig ⑤ Die Bildebene ist unveränderlich. Wenn Sie einer Ebene eine Datei hinzufügen und sie dann in der nächsten Ebene löschen, enthält das Image immer noch die Datei 2. Erstellen Sie eine Instanz basierend auf einem vorhandenen ImageVerpacken Sie die im Container ausgeführten Programme und die Betriebsumgebung, um ein neues Image zu generieren Docker-Commit-Optionen Container-ID Name des zu erstellenden Images: Tag Beispiele [root@server1 ~]# docker ps -a #Vorhandener Container CONTAINER ID IMAGE BEFEHL ERSTELLT STATUS PORTS NAMEN 86cf506635da centos:7 "/bin/bash" vor 6 Sekunden Up 5 Sekunden nervous_shockley [root@server1 ~]# docker commit -m "image" -a "zf" -p 86cf506635da docker:new #Docker erstellen: neues Image sha256:e3056b40acd772abc9a39c6c4f3cb42ba119eb9392b32fb275414f00e82d55b2 [root@server1 ~]# Docker-Bilder #Das generierte Bild anzeigen REPOSITORY TAG IMAGE ID CREATED SIZE Docker neu e3056b40acd7 vor 9 Sekunden 267 MB centos 7 4f280dc8c807 vor 21 Stunden 267 MB #Am besten den Container stoppen und das Image erstellen 3. Erstellen auf Basis einer lokalen VorlageGenerieren Sie ein neues Image, indem Sie die Vorlagendatei des Betriebssystems importieren und verwenden Sie den Befehl wget, um es als lokales Image zu importieren. [root@server1 ~]# cat debian-7.0-x86-minimal.tar.gz | docker import - daoke:new #Import Vorlagenname Imagename daoke:new [root@server1 ~]# Docker-Bilder #Das generierte Bild anzeigen REPOSITORY TAG IMAGE ID CREATED SIZE daoke neu 61b2d8af0457 vor 38 Sekunden 215 MB Docker neu e3056b40acd7 vor 10 Minuten 267 MB centos 7 4f280dc8c807 vor 22 Stunden 267 MB 4. Basierend auf Dockerfile erstellenEine Docker-Datei ist eine Datei, die aus einer Reihe von Anweisungen besteht. Dateistruktur:
Dockerfile unterstützt eine Anweisung pro Zeile. Jede Anweisung kann mehrere Parameter enthalten und unterstützt Kommentare, die mit „#“ beginnen. Anweisungen zum Betrieb der Dockerfile : |
Anweisung | erklären |
---|---|
Vom Bild | Gibt das Bild an, auf dem das neue Bild basiert. Die erste Anweisung muss die FROM-Anweisung sein. |
Name des Betreuers | Beschreiben Sie die Betreuerinformationen des neuen Images |
RUN-Befehl | Ausführen von Befehlen auf dem darauf basierenden Image und Übermitteln an das neue Image |
CMD ["Auszuführendes Programm", "Parameter 1", "Parameter 2"] | Der Befehl oder das Skript, das ausgeführt werden soll, wenn die Anweisung den Container startet. Dockerfile kann nur einen CMD-Befehl haben. Wenn mehrere Befehle angegeben sind, wird nur der letzte ausgeführt. |
EXPOSE-Portnummer | Geben Sie die Portnummer des Spiegels bekannt, um die Zuordnung zu externen Knoten beim Ausführen des Spiegels und Bereitstellen von Diensten zu erleichtern. |
Wert der Umgebungsvariable ENV | Setzen Sie den Wert einer Umgebungsvariablen, die von den folgenden RUN-Befehlen verwendet wird. |
ADD Quelldatei/-verzeichnis Zieldatei/-verzeichnis | Kopieren Sie die Datei vom Host in den Container. Wenn es sich um ein komprimiertes Paket handelt, dekomprimieren Sie es. Die Quelldatei sollte sich im selben Verzeichnis wie die Docker-Datei befinden. |
COPY Quelldatei/-verzeichnis Zieldatei/-verzeichnis | Kopieren Sie die Dateien/Verzeichnisse auf dem lokalen Host an den Zielspeicherort. Die Quelldateien/-verzeichnisse sollten sich im selben Verzeichnis wie das Dockerfile befinden. |
VOLUME ["Verzeichnis"] | Erstellen Sie einen Einhängepunkt im Container |
USERBenutzername/UID | Geben Sie den Benutzer an, der den Container ausführen soll |
WORKDIR-Pfad | Geben Sie das Arbeitsverzeichnis für nachfolgende RUN-, CMD- und ENTRYPOINT-Befehle an, das entspricht cd |
ONBUILD-Befehle | Gibt den Befehl an, der ausgeführt werden soll, wenn das generierte Image als Basisimage verwendet wird |
GESUNDHEITSCHECK | Gesundheitscheck |
Beispiele
[root@server1 ~]# mkdir apache #Erstellen Sie ein Spiegelverzeichnis [root@server1 ~]# cd apache/ #Dockerfile erstellen [root@server1 apache]# vi Docker-Datei FROM centos:7 #Basierend auf dem Basisimage, im Centos-Kernel ausführen MAINTAINER, dies ist zzf web #Maintainer-Informationen RUN yum -y update Führen Sie den Befehl yum -y install httpd aus. EXPOSE 80 #Öffnen Sie Port 80 für externes Mapping ADD index.html /var/www/html/index.html #Fügen Sie die Datei der Host-Website zum Image hinzu ADD run.sh /run.sh #Kopieren Sie das Ausführungsskript in das Image RUN chmod 755 /run.sh #Erhöhen Sie die Berechtigungen CMD ["/run.sh"] #Führen Sie das Skript beim Starten des Containers aus und starten Sie den Apache-Dienst #Erstellen Sie index.html und run.sh im aktuellen Verzeichnis [root@server1 apache]# vi run.sh #!/bin/bash rm -rf /run/httpd/* exec /usr/sbin/apachectl -D FOREGROUND #Starten Sie den Dienst, wenn Sie den Container starten [root@server1 apache]# vi index.html Hallo #Um ein Image zu erstellen, müssen Sie sich im Verzeichnis befinden, in dem sich das Dockerfile aktuell befindet. Beachten Sie, dass das Leerzeichen plus . das aktuelle Verzeichnis darstellt [root@server1 apache]# docker build -t http:centos . #Zeigen Sie das erstellte Image an [root@server1 apache]# Docker-Images REPOSITORY TAG BILD ID ERSTELLT GRÖSSE http centos 5db0e8103d54 vor 5 Minuten 539 MB daoke neu 61b2d8af0457 vor 33 Minuten 215 MB Docker neu e3056b40acd7 vor 43 Minuten 267 MB centos 7 4f280dc8c807 vor 22 Stunden 267 MB #Führen Sie das Image als Container aus -p ist der Mapping-Port, ordnen Sie den Container-Port 80 dem Host-Port 1212 zu (muss unbesetzt sein) -P gibt den Knotenport nicht an, weist den Port zufällig zu und die Standardzuweisung beginnt bei Port 32168 [root@server1 apache]# docker run -d -p 1212:80 http:centos #Containerstatus anzeigen [root@server1 apache]# docker ps -a CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN a8fa8ae6be42 http:centos "/run.sh" vor 3 Minuten Vor 3 Minuten 0.0.0.0:1212->80/tcp xenodochial_franklin 86cf506635da centos:7 "/bin/bash" vor 48 Minuten Up 48 Minuten nervous_shockley
Deaktivieren Sie die Firewall und testen Sie den Apache-Dienst
Dies ist das Ende dieses Artikels über die Verwendung von Dockerfile zum Erstellen eines Apache-Images. Weitere Informationen zur Verwendung von Dockerfile zum Erstellen eines Images finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!
<<: Detaillierte Erklärung des MySQL-Ausführungsplans
>>: Natives JS zum Erzielen von Book-Flipping-Effekten
Inhaltsverzeichnis Vorwort LED-Trigger Entdecken ...
Hintergrund - Online Alert Ein Online-Server hat ...
Im vorherigen Artikel wurden mehrere Methoden zur...
Hintergrundbeschreibung: Auf einem vorhandenen La...
1. Neuer und alter Domain-Namenssprung Anwendungs...
Vorwort Die meisten Benutzer führen diesen Vorgan...
Inhaltsverzeichnis Hintergrund Erzielen Sie einen...
Wenn Sie CSS-Pseudoelemente zur Steuerung von Ele...
Unter Linux ist alles eine Datei, daher besteht d...
Designabsichten Beim Entwickeln einer Seite müsse...
Im Allgemeinen ist es unwahrscheinlich, dass Sie ...
Ein einfacher Rechner, der als Referenz in das We...
Die Fallstricke 1. In vielen Tutorials im Interne...
Geschichte von ZFS Das Z-Dateisystem (ZFS) wurde ...
Ich habe schon lange keinen Blog mehr geschrieben...