So erstellen Sie ein Apache-Image mit Dockerfile

So erstellen Sie ein Apache-Image mit Dockerfile

1. Docker-Image

1.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

  • Auf Basis eines vorhandenen Bildes erstellen
  • Basierend auf einer lokalen Vorlage erstellen
  • Erstellen basierend auf Dockerfile

Docker-Images sind geschichtete Strukturen

Bildbeschreibung hier einfügen

① 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 Image

Verpacken 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
-m: Beschreibungsinformationen
-a: Autoreninformationen
-p: Stoppt den Container während des Build-Prozesses

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 Vorlage

Generieren Sie ein neues Image, indem Sie die Vorlagendatei des Betriebssystems importieren und verwenden Sie den Befehl wget, um es als lokales Image zu importieren.

Bildbeschreibung hier einfügen

[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 erstellen

Eine Docker-Datei ist eine Datei, die aus einer Reihe von Anweisungen besteht.

Dateistruktur:

  • Basisbildinformationen
  • Informationen zum Betreuer
  • Bedienungsanleitung für den Spiegel
  • Anweisungen ausführen, wenn der Container startet

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

Bildbeschreibung hier einfügen

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!

Das könnte Sie auch interessieren:
  • Schritte zum Erstellen eines Docker-Images mit Dockerfile
  • Multiservice-Image-Packaging-Vorgang von Dockerfile unter Aufsicht
  • Docker-Image erstellen Dockerfile und Commit-Operationen
  • So erstellen Sie ein Tomcat-Image basierend auf Dockerfile
  • So passen Sie Docker-Images mit Dockerfile an
  • Detaillierte Erläuterung des Dockerfiles zum Erstellen eines benutzerdefinierten Docker-Images und Vergleich der CMD- und ENTRYPOINT-Anweisungen
  • Implementierung eines Tomcat-Images, das mit Dockerfile basierend auf Alpine erstellt wurde
  • Implementierung eines Crawler-Scrapy-Image, das von Dockerfile basierend auf Alpine erstellt wurde
  • So erstellen Sie Ihr eigenes Image mit Dockerfile
  • Erstellen Sie ein Docker-Image mit Dockerfile

<<:  Detaillierte Erklärung des MySQL-Ausführungsplans

>>:  Natives JS zum Erzielen von Book-Flipping-Effekten

Artikel empfehlen

Entdecken Sie, wie Ihnen eine LED den Einstieg in den Linux-Kernel erleichtert

Inhaltsverzeichnis Vorwort LED-Trigger Entdecken ...

Beispielcode zur Implementierung einer Pivot-Tabelle in MySQL/MariaDB

Im vorherigen Artikel wurden mehrere Methoden zur...

Implementierung des Umschreibesprungs in Nginx

1. Neuer und alter Domain-Namenssprung Anwendungs...

5 einfache Möglichkeiten, Speicherplatz auf Ubuntu freizugeben

Vorwort Die meisten Benutzer führen diesen Vorgan...

js realisiert eine schrittweise zunehmende digitale Animation

Inhaltsverzeichnis Hintergrund Erzielen Sie einen...

So verwenden Sie das Schreiben von Dateien zum Debuggen einer Linux-Anwendung

Unter Linux ist alles eine Datei, daher besteht d...

Diskussion über die numerische Begrenzung des OL-Elements im HTML-Dokument

Im Allgemeinen ist es unwahrscheinlich, dass Sie ...

Das WeChat-Applet implementiert einen einfachen Rechner

Ein einfacher Rechner, der als Referenz in das We...

Was ist ZFS? Gründe für die Verwendung von ZFS und seine Funktionen

Geschichte von ZFS Das Z-Dateisystem (ZFS) wurde ...