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

Der Unterschied zwischen MySQL execute, executeUpdate und executeQuery

Die Unterschiede zwischen „execute“, „executeUpda...

Detaillierte Einführung in Robots.txt

Grundlegende Einführung in robots.txt Robots.txt i...

Methode der Iframe-Anpassung im webresponsiven Layout

Problem <br />Bei responsivem Layout sollte...

Grafisches Tutorial zur Installation und Konfiguration von MySQL (CentOS7)

1. Systemumgebung [root@localhost-Startseite]# ca...

Ausführliches Tutorial zur Installation von MySql 5.6.35 winx64

Hinweis: Beim Projektstart ist kein Fehler aufgru...

Implementierung von Socket-Optionen in der Linux-Netzwerkprogrammierung

Socket-Optionsfunktion Funktion: Methoden zum Les...

Erstellen von Befehlszeilen-Anwendungen mit JavaScript

Inhaltsverzeichnis 1. Knoten installieren 2. Inst...

Installieren Sie Ubuntu 18 ohne USB-Laufwerk unter Windows 10 mit EasyUEFI

1. BIOS überprüfen Überprüfen Sie zunächst, in we...

Analyse des Uniapp-Einsteiger-NVUE-Klettergrubenrekords

Inhaltsverzeichnis Vorwort Hallo Welt Bild Rahmen...

Das Vue-CLI-Framework implementiert eine Timer-Anwendung

Technischer Hintergrund Diese Anwendung verwendet...

Grundlegende Verwendung von Javascript-Array-Includes und -Reduces

Inhaltsverzeichnis Vorwort Array.Prototyp.enthält...

Tutorial zur Installation und Konfiguration von MySQL für Mac

In diesem Artikel finden Sie das MySQL-Installati...

Detaillierte Erklärung der Rolle des neuen Operators in Js

Vorwort Js ist heutzutage die am häufigsten verwe...