Betriebsumgebung: Docker-Version: 1. Starten Sie den Nginx-Server Starten Sie den Nginx-Server und rufen Sie das simulierte Terminal auf docker run -p 8080:80 --name nginx_web -it nginx /bin/bash 2. Informieren Sie sich über den Speicherort der Nginx-Image-Konfigurationsdatei Speicherort der Protokolldatei: /var/log/nginx Speicherort der Konfigurationsdatei: /etc/nginx Speicherort der Ressourcen: /usr/share/nginx/html Der obige Konfigurationspfad ist die Adresse des virtuellen Linux auf meinem Computer. Bitte überprüfen Sie Ihren eigenen Konfigurationsspeicherort. 3. Ändern Sie die Standard-Homepage von Nginx und testen Sie, ob sie ausgeführt werden kann Wichtiger Tipp: Für diejenigen, die sich nicht darum kümmern möchten, können Sie es direkt von Schritt 4 aus ausführen /usr/share/nginx/html echo "<h1>Hallo Docker</h1>" > index.html Einige Freunde, die hierher gekommen sind, stellen möglicherweise fest, dass beim Zugriff auf den Port localhost:8080 zum ersten Mal die Nginx-Willkommensoberfläche und beim zweiten Mal eine 404-Eingabeaufforderung angezeigt wird. Dieser Artikel geht nicht näher auf dieses Problem ein. Wenn Sie es nicht verstehen, können Sie hier nachschlagen: Nachdem Docker „Docker Run“ ausgeführt hat, virtualisiert es zunächst eine vereinfachte Version von Linux (die nur die einfachsten Funktionen des Systembetriebs enthält) basierend auf dem aktuellen Betriebssystem und lädt dann unser Nginx-Image. Wenn das Nginx-Image in unsere virtuelle Linux-Umgebung geladen wird, entspricht dies der Ausführung eines Skripts im System, und dieses Skript ist Nginx. Weil Nginx standardmäßig nicht als Daemon-Prozess ausgeführt wird. Wenn Docker also auf Port 80 auf die Anforderung hört, beendet es den Nginx-Prozess nach Abschluss. Es gibt nur einen Prozess im Container, und dieser ist kein Daemon-Prozess. Er wird nach der Ausführung des Anforderungsprozesses zerstört. Dann besteht für die Existenz dieses Containers kein Bedarf mehr und dieser Dienst in Docker wird gestoppt. Aus diesem Grund können wir den aktuell ausgeführten Container nicht sehen, wenn wir Docker Top ausführen. Als vorübergehende Lösung für das Problem, dass Nginx nach nur einmaliger Ausführung beendet wird, können wir das interaktive Terminal aufrufen und nginx ausführen und nginx als Daemon-Prozess im Hintergrund laufen lassen. Sehen Sie sich unsere laufenden Container an Roverliang$ Docker PS CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN Wenn nichts vorhanden ist, bedeutet dies, dass kein Container ausgeführt wird. Zeigen Sie die Container an, deren Ausführung beendet ist Roverliang$ Docker ps -a CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN 5bff285f60b3 nginx "/bin/bash" vor 9 Minuten Beendet (0) vor 6 Minuten nginx_web Starten Sie den Container neu, den wir gerade gestartet haben Docker startet nginx_web Betreten unseres Containers Docker anhängen nginx_web echo "<h1>Hallo Docker</h1>" > /usr/share/nginx/html/index.html nginx und Verwenden Sie dann die Tastenkombination Strg + Q, um den aktuellen Container zu verlassen Anschließend besuchen wir noch einmal im Browser: http://localhost:8080/ Nach so vielen Schwierigkeiten sehen wir endlich den Inhalt, den wir erwartet haben.
4. Machen Sie aus der vorherigen Nginx-Demo eine spielbare Demo Erstellen Sie zunächst den Ordner, den wir auf unserem lokalen Computer zuordnen müssen mkdir -p docker_study/log docker_study/etc docker_study/html Hinweis: Erstellen Sie es in Ihrem Home-Verzeichnis Kopieren Sie die Konfigurationsdatei von nginx in unseren Docker Docker cp 65bc23f952db:/etc/nginx/ /Benutzer/roverliang/docker_study/etc/ Schließen Sie unseren Container Docker stoppt nginx_web Löschen Sie die Demo für unsere Praxis und erstellen Sie von Grund auf eine brauchbare. Docker RM Nginx_Web Ordnen Sie das Nginx-Image unserem lokalen Verzeichnis zu, um die Dateiänderung zu erleichtern Docker-Ausführung \ -p 8080:80 \ --name nginx_web \ -v /Benutzer/roverliang/docker_study/log/:/var/log/nginx \ -v /Benutzer/roverliang/docker_study/etc/nginx.conf:/etc/nginx/nginx.conf \ -v /Benutzer/roverliang/docker_study/html/:/usr/share/nginx/html \ -Es \ -D \ nginx \ /bin/bash \ An diesem Punkt stellen wir möglicherweise immer noch fest, dass beim Zugriff auf http://localhost:8080/ kein Inhalt vorhanden ist. Aber keine Sorge, der Prozess der Problemlösung ist der Prozess des Lernens neuer Dinge. Suchen Sie weiter online nach Informationen und lesen Sie Folgendes: Docker führt nginx aus Hier ist eine Passage aus dem Artikel, die mir plötzlich die Augen öffnete: Als ich es zuvor ausgeführt habe, habe ich normalerweise den interaktiven Modus verwendet: -i stellte sicher, dass die Standardeingabe des Containers aktiviert war. -t generierte ein TTY-Terminal für den Container und fügte am Ende des Befehls ein /bin/bash hinzu, um die Interaktion sicherzustellen. Tatsächlich lief Nginx jedoch nicht, was mich zu der Annahme veranlasste, dass die Portbindung des Containers nicht persistent war. Als nächstes müssen wir unseren Container herunterfahren und löschen und ihn dann mit dem folgenden Befehl neu starten: Docker-Ausführung \ -p 8080:80 \ --name nginx_web \ -v /Benutzer/roverliang/docker_study/log/:/var/log/nginx \ -v /Benutzer/roverliang/docker_study/etc/nginx.conf:/etc/nginx/nginx.conf \ -v /Benutzer/roverliang/docker_study/html/:/usr/share/nginx/html \ -D \ nginx 5. Nginx-Konfiguration ändern und eine Website analysieren Ändern Sie die soeben kopierte Nginx-Konfiguration cd /Benutzer/roverliang/docker_study/etc vim nginx.conf Fügen Sie dem HTTP-Modul die folgende Konfiguration hinzu: Server { hören Sie 80; Servername www.test_nginx.com; Index Index.html; root /usr/share/nginx/html; } Gehen Sie dann zurück zum Host und binden Sie den Host 127.0.0.1 www.test_nginx.com Sie sind fertig! 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:
|
Zusammenfassung: MySQL bietet eine Vielzahl von S...
Ich habe die Mysql FIND_IN_SET-Funktion vor einig...
Inhaltsverzeichnis vue - Verwenden Sie das Swiper...
Teil.0 Hintergrund Die Intranetserver des Unterne...
Standardmäßig unterstützt Nginx nur ein SSL-Zerti...
Problembeschreibung Wie wir alle wissen, wird bei...
1. Software-Einführung VirtualBox VirtualBox ist ...
Vorwort Dieser Artikel verwendet die Vorverarbeit...
Hintergrund Ich möchte die Webpack-Version überpr...
1. Inline-Elemente nehmen nur die Breite des Inhal...
Vorwort Wir wissen bereits, dass MySQL den SQL-Be...
Inhaltsverzeichnis Hintergrund Hauptinhalt 1. Kom...
1. Frühere Versionen yum entfernen Docker Docker-...
Frage Frage 1: Wie kann der Leistungsverlust beho...
Inhaltsverzeichnis Vorwort 1. Laden Sie MySQL 8.0...