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 Vergessen des Root-Passworts der MySQL 5.7- und 8.0-Datenbank

Hinweis: Um das Root-Passwort in MySQL 5.7 zu kna...

HTML-Tabellen-Tag-Tutorial (25): vertikales Ausrichtungsattribut VALIGN

In vertikaler Richtung können Sie die Zeilenausri...

Der Prozess der schnellen Konvertierung eines MySQL-Left-Joins in einen Inner-Join

Während des täglichen Optimierungsprozesses stell...

Vergleich der JS-Array-Loop-Methode und der Effizienzanalyse

Array-Methoden JavaScript bietet viele Array-Meth...

CSS löst das Problem der Front-End-Bildverformung perfekt

Ich habe in der Toutiao IT School einen Artikel g...

CentOS 6-7 Yum-Installationsmethode für PHP (empfohlen)

1. Überprüfen Sie die aktuell installierten PHP-P...

26 häufig vergessene CSS-Tipps

Dies ist eine Sammlung häufig verwendeter, aber l...

React+Koa-Beispiel zur Implementierung des Datei-Uploads

Inhaltsverzeichnis Hintergrund Serverabhängigkeit...

Einige Punkte, auf die wir beim Entwurf einer Webseite achten sollten

Webdesign: Je nach persönlichen Vorlieben und Inha...

So installieren und implementieren Sie einen Gitlab-Server auf CentOS7

Ich verwende hier das 64-Bit-System CentOS 7. Ich...

Tutorial zur Master-Slave-Konfiguration der MySQL-Datenbank unter Windows

Der detaillierte Prozess zum Konfigurieren des My...