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

Vue + OpenLayers Schnellstart-Tutorial

Openlayers ist ein modulares, leistungsstarkes un...

MySQL-Reihe: Redo-Log, Undo-Log und Binlog – ausführliche Erklärung

Durchführung von Transaktionen Das Redo-Protokoll...

So verwendet MySQL Transaktionen

Grundlagen Eine Transaktion ist eine atomare Oper...

Zusammenfassung der Grundsätze zum Schreiben von HTML-Seiten für E-Mails

Da HTML-E-Mail keine unabhängige HOST-Seite auf di...

MySQL-Datenbank-JDBC-Programmierung (Java stellt eine Verbindung zu MySQL her)

Inhaltsverzeichnis 1. Grundvoraussetzungen für di...

Eine kurze Diskussion über zwei Strombegrenzungsmethoden in Nginx

Die Belastung wird im Allgemeinen während des Sys...

So verwenden Sie Axios-Anfragen im Vue-Projekt

Inhaltsverzeichnis 1. Installation 2. Es gibt kei...

Detaillierte Diskussion der Unterschiede zwischen Schleifen in JavaScript

Inhaltsverzeichnis Vorwort Aufzählbare Eigenschaf...

Detaillierte Erklärung des Unterschieds zwischen JavaScript onclick und click

Inhaltsverzeichnis Warum wird addEventListener be...

Erklärung der Funktionsweise und Verwendung von Redux

Inhaltsverzeichnis 1. Was ist Redux? 2. Das Redux...

Beispielcode für HTML-Framesets

Dieser Artikel stellt ein möglichst einfaches Fra...