GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

So führen Sie Nginx in einem Docker-Container aus:Eine Schritt-für-Schritt-Anleitung

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:

  1. Docker sollte installiert sein und lokal auf Ihrem System ausgeführt werden.
  2. 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:

aus
sudo 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 /usr/share/nginx/html/ verknüpft Verzeichnis aus dem Nginx-Docker-Container in den ~/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.


Docker
  1. So führen Sie MySQL im Docker-Container aus:Eine einfache, leicht verständliche Anleitung

  2. NGINX auf openSUSE installieren – Schritt-für-Schritt-Anleitung?

  3. So stellen Sie einen Nginx-Container mit Docker auf Linode bereit

  4. Eine Einführung in Docker

  5. So führen Sie einen Befehl in einem laufenden Docker-Container aus

So führen Sie PHPMyAdmin in einem Docker-Container aus

So führen Sie Grafana in einem Docker-Container aus

So führen Sie Docker-Container aus

Docker-Befehle zum Verwalten des Containerlebenszyklus (Definitive Guide)

Anfängerleitfaden zur Docker-Neustartrichtlinie

Docker-Container im Hintergrund ausführen (getrennter Modus)