In diesem Tutorial erfahren Sie, wie Sie Nginx als Docker-Container ausführen und Ihrem lokalen Netzwerk zur Verfügung stellen.
Darüber hinaus erfahren Sie, wie Sie ein Docker-Datenvolumen erstellen, um Informationen zwischen einem Container und dem Host-Dateisystem auszutauschen.
Nginx ist eine beliebte Open-Source-Software, die für Webserver, Reverse-Proxy, Caching, Lastenausgleich usw. verwendet wird. Sie ist sehr beliebt und wird heute auf vielen stark frequentierten Websites verwendet. Eine der häufigsten Workloads von Docker ist die Containerisierung von Webservern. Wir zeigen Ihnen, wie Sie es mit Nginx einrichten. Lassen Sie sich also von uns durch den Prozess führen.
Docker ist eine Containerisierungsplattform, die Ihre Anwendung in ein einfach zu verwaltendes Container-Image verpackt.
Voraussetzungen
Sie müssen die folgenden Anforderungen erfüllen, um dieses Tutorial abzuschließen:
- Docker sollte installiert sein und lokal auf Ihrem System ausgeführt werden.
- Sie benötigen ein Root-Konto, oder ein Benutzer kann sudo-Befehle ausführen.
Einrichten von Nginx Inside Docker
Bild ziehen
Zuerst ziehen wir das offizielle Nginx-Image. Führen Sie den folgenden Docker-Pull-Befehl auf dem Terminal aus, um das neueste Nginx-Image vom Docker-Hub auf Ihrem Docker-Host herunterzuladen.
sudo docker pull nginx
Nginx-Docker-Container ausführen
Wir sind bereit, den Nginx-Docker-Container auszuführen und seinen Port Ihrem lokalen Netzwerk bereitzustellen. Dazu führen wir das Image mit dem Befehl:
aussudo docker run -d -p 80:80 --name my-nginx-server nginx
-d
– Starten Sie einen Container im getrennten Modus (Container läuft im Hintergrund).-p
– Binden Sie einen Port vom Container an den Host (leitet Host-Traffic-Port 80 an Container-Port 80 weiter).-name
– Der Name unseres Docker-Containers.
Das letzte Argument, nginx
, teilt Docker mit, welches Image für den Container verwendet werden soll.
Öffnen Sie nun einen Browser und zeigen Sie ihn auf die Adresse des Hosts, auf dem Sie Ihren Nginx-Container ausgeführt haben. In meinem Fall ist es http://192.168.122.101
. Die Standardseite des Nginx-Webservers sollte Sie begrüßen.
Da ist es. Sie haben eine funktionierende Instanz des Nginx-Docker-Containers.
Docker-Container auflisten
Um alle laufenden Docker-Container aufzulisten, führen Sie den folgenden Befehl aus:
sudo docker container ls
Basierend auf der obigen Ausgabe können wir unseren Nginx-Docker-Container mit einem der folgenden beiden stoppen:
sudo docker stop 19411f8b3f35
sudo docker stop my-nginx-server
Um alle Container anzuzeigen, auch diejenigen, die nicht ausgeführt werden, müssen Sie das -a
hinzufügen Flagge.
sudo docker container ls -a
Freigabe von Daten zwischen dem Nginx-Docker-Container und dem Host
Docker-Container sind kurzlebig. Standardmäßig sind alle innerhalb des Containers erstellten Daten nur innerhalb des Containers und nur während der Ausführung des Containers verfügbar.
Lassen Sie uns Ihnen also zeigen, wie Sie Daten aus dem Container auf dem Hostcomputer zugänglich machen. Unser Ziel ist es, eine einfache HTML-Datei zu erstellen, sie in einem Container zu hosten und sie mithilfe des Nginx-Docker-Containers außerhalb bereitzustellen.
Dieses Setup ermöglicht es uns, persistente Website-Inhalte außerhalb des Containers zu hosten.
Um diese Funktion zu erreichen, verwenden wir die Bind-Mounting-Funktion in Docker. Wenn Sie ein Bind-Mount verwenden, wird eine Datei oder ein Verzeichnis auf dem Host-Computer in einen Container gemountet.
Lassen Sie uns also zunächst ein neues Verzeichnis für Ihre Website-Inhalte im Home-Verzeichnis erstellen.
mkdir ~/www
Lassen Sie uns nun eine einfache HTML-Datei erstellen und etwas Text auf Ihrer Indexseite einfügen.
vim ~/www/index.html
<html>
<head>
<title>Nginx Docker</title>
</head>
<body>
<h1>My static page.</h1>
</body>
</html>
Bitte kopieren Sie das obige Snippet und fügen Sie es ein. Speichern Sie dann die Datei und beenden Sie Vim.
Als Nächstes führen wir den Nginx-Docker-Container mit dem angehängten Volume auf dem Container /usr/share/nginx/html
aus bis zur Gegenwart auf dem Host www
Verzeichnis, in dem sich die index.html
befindet Datei wird gespeichert.
docker run -d -p 80:80 -v ~/www:/usr/share/nginx/html/ --name my-nginx-server nginx
Der Nginx-Container ist standardmäßig so eingerichtet, dass er unter /usr/share/nginx/html/
nach einer Indexseite sucht . Im obigen Befehl ist der -v
Die Option richtet ein Bind-Mount-Volume ein, das /
Verzeichnis aus dem Nginx-Docker-Container in den usr/share/nginx/html/
verknüpft ~/www
Verzeichnis auf dem Host-Rechner.
Docker verwendet ein Doppelpunktsymbol (:
), um den Pfad des Hosts vom Containerpfad zu trennen. Denken Sie daran, dass der Hostpfad immer zuerst kommt.
Nochmals, wenn Sie http://192.168.122.101
durchsuchen , erhalten Sie die unten angegebene Ausgabe im Browserfenster.
Das ist alles. Sie haben jetzt einen laufenden Nginx-Docker-Container, der eine benutzerdefinierte Webseite bereitstellt.
Fazit
Nginx und Docker arbeiten sehr gut zusammen. In diesem Tutorial wurde gezeigt, wie Sie den Nginx Docker-Container einrichten und verwenden. Sie wissen auch, wie Sie Informationen zwischen einem Container und dem Host-Dateisystem austauschen.
Bei Fragen hinterlassen Sie bitte Ihre Kommentare.