Verwenden von Docker zum Erstellen statischer Website-Anwendungen (mehrere Möglichkeiten)

Verwenden von Docker zum Erstellen statischer Website-Anwendungen (mehrere Möglichkeiten)

Es gibt viele Server, die statische Websites hosten können. Dieser Artikel verwendet Nginx-, Apache- und Tomcat-Server, um die Docker-Anwendungseinstellungen für statische Websites zu demonstrieren.

Erstellen Sie zunächst eine Docker-Datei.

Die Docker-Dateien für verschiedene Server sind unterschiedlich. Im Folgenden finden Sie die Docker-Dateien für Nginx-, Apache- und Tomcat-Server. Tatsächlich ist der Hauptunterschied das FROM-Tag im Projektdateiverzeichnis.

Verzeichnisstruktur:

1. Docker-Datei für nginx

VON nginx
KOPIEREN ./www /usr/share/nginx/html/
ARBEITSVERZEICHNIS /usr/share/nginx/html/RUN chown -R daemon:daemon * && chmod -R 755 *
AUSSETZEN 80

2. Docker-Datei von Apache

VON httpd
KOPIEREN ./www/ /usr/local/apache2/htdocs/
ARBEITSVERZEICHNIS /usr/local/apache2/htdocs/RUN chown -R daemon:daemon * && chmod -R 755 *
AUSSETZEN 80

3. Docker-Datei von Tomcat

VON Kater
KOPIEREN ./www/ /usr/local/tomcat/webapps/ROOT/webapp
WORKDIR /usr/local/tomcat/webapps/ROOT/webapp #Zum Projektverzeichnis wechseln RUN chown -R daemon:daemon * && chmod -R 755 * #Berechtigungen festlegen

Hier erstellen wir ein Projekt namens webapp. Wenn Sie darauf zugreifen, fügen Sie nach der URL-Adresse /webapp hinzu. Beachten Sie auch, dass der Standardport von Tomcat 8080 ist.

Die drei Dateien werden verwendet, um Ihre Website in verschiedenen Umgebungen bereitzustellen. Sie können Berechtigungen je nach Situation festlegen oder nicht.

Zweitens: Erstellen Sie das Projekt

 docker build -t imageName . (Beachten Sie den Punkt am Ende. Am besten ist es, wenn imageName der „Hub-Kontoname/Projektname“ ist, um das Pushen in die öffentliche Bibliothek zu erleichtern.)

Nachfolgend ist der Build-Prozess dargestellt

3. Ins öffentliche Lager pushen

Sie müssen zuerst Docker-Login ausführen

Docker Push Ejiyuan/Webanwendung

Viertens ziehen Sie das Projekt auf den Server

Sie müssen zuerst Docker-Login ausführen

Docker-Pull Ejiyuan/Webanwendung

Führen Sie Docker-Images aus, um zu prüfen, ob das Image vorhanden ist

5. Durchführung des Projekts

docker run -d -p 8081:80 ejiyuan/webapp

Überprüfung

Greifen Sie direkt auf die Host-IP-Adresse plus die beim Start angegebene Portnummer 8081 zu oder verwenden Sie curl

Locke http://192.168.99.100:8081

7. Fragen

Hier nehmen wir nginx als Beispiel. Wenn die Standardseite Ihres Projekts nicht index.html ist, wird 401 oder die folgende Seite angezeigt:

Der Hauptgrund ist, dass die Standardseite nicht angegeben ist. Verwenden Sie den folgenden Befehl, um sich beim Image anzumelden

docker exec -it containerId /bin/bash

Die Container-ID kann mithilfe von Docker PS abgerufen werden. Ändern Sie dazu /etc/nginx/conf.d/default.cnf. Wenn im Container kein Vim oder Vi vorhanden ist, installieren Sie es mit den folgenden beiden Befehlen

passendes Update
apt install vim

Oder verwenden Sie den Befehl sed

sed -i '10c index default.html;' /etc/nginx/conf.d/default.conf

Änderungen erfordern ein Neuladen

nginx -t # Prüfe, ob die Konfigurationsdatei korrekt ist service nginx reload # Lädt die Konfigurationsdatei erneut

Wenn der Dienst nicht vorhanden ist, beenden Sie den Container mit „exit“ und starten Sie ihn mit „docker restart containerId“ neu.

8. Kontrast

Führen Sie Docker-Images aus und sehen Sie sich die Ergebnisse selbst an. Nginx ist das kleinste, Apache das zweitgrößte und Tomcat das größte.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Implementierung eines statischen Website-Layouts im Docker-Container

<<:  Beispiel für eine automatische Importmethode für das Vue3.0-Routing

>>:  Grafisches Tutorial zur Installation von mysql5.7.17.msi

Artikel empfehlen

Lösung zum Importieren weiterer Daten aus MySQL in Hive

Ursprünglicher abgeleiteter Befehl: bin/sqoop imp...

Detaillierte Erläuterung der Nginx Rewrite-Nutzungsszenarien und Codebeispiele

Nginx Rewrite-Nutzungsszenarien 1. Sprung der URL...

Erzielen Sie mit reinem CSS3 in wenigen einfachen Schritten einen 3D-Flip-Effekt

Als Pflichtkurs für Frontend-Entwickler kann CSS3...

Lösung für Indexfehler in MySQL aufgrund unterschiedlicher Feldzeichensätze

Was ist ein Index? Warum einen Index erstellen? I...

Programme zum Abfragen und Löschen der Portnutzung im Windows-Betriebssystem

Im Windows-Betriebssystem das Programm zum Abfrag...

So erstellen Sie DockerHub selbst

Der Docker Hub, den wir zuvor verwendet haben, wi...

CSS3-Implementierungscode für einfaches Karussellbildschneiden

Umsetzungsideen Erstellen Sie zunächst einen über...

HTML-Tabellen-Markup-Tutorial (38): Rahmenfarben-Attribut der Kopfzeile BORDERCOLOR

Um die Tabelle zu verschönern, können Sie für die...

Reacts Methode zur Realisierung einer sekundären Verknüpfung

In diesem Artikel wird der spezifische Code von R...

Detailliertes Tutorial zum Herunterladen und Installieren von VMware Workstation

Virtuelle Maschinen sind eine sehr praktische Tes...

So betten Sie mithilfe von Iframe andere Webseiten in eine Webseite ein

So verwenden Sie Iframe: Code kopieren Der Code l...