Nginx-Container erstellen und verwenden

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Docker hat die Softwareentwicklung und -bereitstellung revolutioniert und das Packen und Verteilen von Anwendungen einfacher denn je gemacht. In diesem Tutorial werden wir untersuchen, wie man einen Container mit dem Nginx-Image, einem beliebten Webserver, ausführt und wie man den Container an die individuellen Bedürfnisse anpasst.

Docker und Nginx verstehen

Docker ist eine beliebte Open-Source-Plattform, die Entwicklern ermöglicht, Anwendungen in Containern zu erstellen, bereitzustellen und auszuführen. Container sind leichte, portablen und selbst enthaltene Umgebungen, die eine Anwendung und ihre Abhängigkeiten verpacken und eine konsistente und zuverlässige Bereitstellung in verschiedenen Umgebungen gewährleisten.

Nginx (ausgesprochen "engine-x") ist ein leistungsstarker und vielseitiger Webserver, der häufig zum Bereitstellen statischer Inhalte, zum Lastausgleich und als Reverse-Proxy verwendet wird. Er ist bekannt für seine hohe Leistung, Skalierbarkeit und Flexibilität.

Was ist Docker?

Docker ist eine Softwareplattform, die Entwicklern ermöglicht, Anwendungen in Containern zu erstellen, bereitzustellen und auszuführen. Container sind eine Methode, eine Anwendung und ihre Abhängigkeiten in einer einzigen, standardisierten Einheit zu verpacken, die einfach auf jedem System bereitgestellt und ausgeführt werden kann. Dies stellt sicher, dass die Anwendung immer gleich läuft, unabhängig von der zugrunde liegenden Infrastruktur.

Was ist Nginx?

Nginx ist ein leistungsstarker Webserver, der häufig zum Bereitstellen statischer Inhalte, zum Lastausgleich und als Reverse-Proxy verwendet wird. Er ist bekannt für seine Geschwindigkeit, Stabilität und den geringen Ressourcenverbrauch. Nginx wird häufig als Reverse-Proxy vor anderen Webservern wie Apache oder Node.js eingesetzt, um den hohen Datenverkehr zu bewältigen und die Verarbeitung statischer Inhalte zu entlasten.

Warum Docker mit Nginx verwenden?

Die Kombination von Docker und Nginx bietet mehrere Vorteile:

  1. Konsistente Bereitstellung: Durch das Verpacken von Nginx und Ihrer Anwendung in einem Docker-Container wird sichergestellt, dass die Bereitstellungsumgebung auf verschiedenen Systemen konsistent ist, wodurch das Risiko von Problemen aufgrund von Unterschieden in der zugrunde liegenden Infrastruktur reduziert wird.

  2. Skalierbarkeit: Docker erleichtert die Skalierung Ihrer Anwendung durch die Ausführung mehrerer Instanzen des Nginx-Containers, wodurch Sie erhöhten Datenverkehr und Last bewältigen können.

  3. Flexibilität: Docker-Container sind hochgradig portabel und ermöglichen es Ihnen, Ihre Nginx-basierte Anwendung auf verschiedenen Plattformen auszuführen, von lokalen Entwicklungsumgebungen bis hin zu Produktionsservern.

  4. Isolierung: Container bieten eine hohe Isolierung, wodurch sichergestellt wird, dass Ihre Nginx-basierte Anwendung von anderen Anwendungen auf demselben Host isoliert ist, was die Sicherheit und Stabilität verbessert.

graph TD A[Entwickler] --> B[Docker Image] B --> C[Docker Container] C --> D[Nginx Webserver] D --> E[Anwendung]

Durch das Verständnis der Grundlagen von Docker und Nginx sind Sie bestens gerüstet, Nginx-Container zu erstellen und anzupassen, um Ihre Webanwendungen bereitzustellen.

Einen Nginx-Container starten

Das Nginx-Image herunterladen

Um einen Nginx-Container zu starten, müssen Sie zuerst das Nginx-Image vom Docker Hub-Repository herunterladen. Verwenden Sie dazu den folgenden Befehl:

docker pull nginx

Dadurch wird die neueste Version des Nginx-Images in Ihre lokale Docker-Umgebung heruntergeladen.

Einen Nginx-Container starten

Sobald Sie das Nginx-Image haben, können Sie einen neuen Container mit folgendem Befehl starten:

docker run -d --name my-nginx -p 80:80 nginx

Lassen Sie uns die verschiedenen Teile dieses Befehls genauer betrachten:

  • docker run: Dies teilt Docker mit, dass ein neuer Container gestartet werden soll.
  • -d: Dies führt den Container im detachierten Modus aus, d. h. er läuft im Hintergrund.
  • --name my-nginx: Dies weist dem Container den Namen "my-nginx" zu.
  • -p 80:80: Dies ordnet den Hostport 80 dem Containerport 80 zu, sodass Sie auf den Nginx-Server von Ihrem Host aus zugreifen können.
  • nginx: Dies gibt das Image an, das für den Container verwendet werden soll.

Nach Ausführung dieses Befehls sollten Sie in der Lage sein, den Nginx-Server aufzurufen, indem Sie http://localhost in Ihrem Webbrowser besuchen.

Den Nginx-Container überprüfen

Sie können überprüfen, ob der Nginx-Container läuft, indem Sie die folgenden Befehle verwenden:

## Liste aller laufenden Container
docker ps

## Zeige die Logs des Nginx-Containers
docker logs my-nginx

Der Befehl docker ps zeigt Ihnen alle laufenden Container, einschließlich des gerade gestarteten Nginx-Containers. Der Befehl docker logs zeigt Ihnen die Logs des Nginx-Containers an, was bei der Fehlerbehebung hilfreich sein kann.

Mit dem Verständnis, wie man einen Nginx-Container herunterlädt, startet und überprüft, können Sie nun fortfahren und den Container an Ihre spezifischen Bedürfnisse anpassen.

Den Nginx-Container anpassen

Ein benutzerdefiniertes Nginx-Konfigurations-File mounten

Standardmäßig verwendet der Nginx-Container die Standard-Nginx-Konfigurationsdatei. Möglicherweise möchten Sie jedoch eine benutzerdefinierte Konfigurationsdatei verwenden, um das Verhalten Ihres Nginx-Servers anzupassen. Sie können dies tun, indem Sie eine benutzerdefinierte Konfigurationsdatei in den Container mounten.

Erstellen Sie zunächst eine neue Datei namens nginx.conf in einem Verzeichnis auf Ihrem Host-System. Fügen Sie Ihre benutzerdefinierte Nginx-Konfiguration in diese Datei ein. Starten Sie dann den Nginx-Container mit der eingebundenen benutzerdefinierten Konfigurationsdatei:

docker run -d --name my-nginx -p 80:80 -v /path/to/nginx.conf:/etc/nginx/nginx.conf nginx

In diesem Befehl ist /path/to/nginx.conf der Pfad zur benutzerdefinierten Nginx-Konfigurationsdatei auf Ihrem Host-System. Die Option -v mount diese Datei in den Container an der Position /etc/nginx/nginx.conf, dem Standardpfad für die Nginx-Konfigurationsdatei.

Benutzerdefinierte Inhalte bereitstellen

Standardmäßig stellt der Nginx-Container die Standard-Nginx-Webseite bereit. Um Ihre eigenen Inhalte bereitzustellen, können Sie ein Verzeichnis mit Ihren Webdateien in den Container mounten.

Erstellen Sie zunächst ein Verzeichnis auf Ihrem Host-System und fügen Sie Ihre Webdateien hinzu. Starten Sie dann den Nginx-Container mit dem eingebundenen Verzeichnis:

docker run -d --name my-nginx -p 80:80 -v /path/to/web/content:/usr/share/nginx/html nginx

In diesem Befehl ist /path/to/web/content der Pfad zum Verzeichnis mit Ihren Webdateien auf Ihrem Host-System. Die Option -v mount dieses Verzeichnis in den Container an der Position /usr/share/nginx/html, dem Standardverzeichnis, in dem Nginx Webinhalte bereitstellt.

Skalierung mit mehreren Containern

Ein Vorteil der Verwendung von Docker ist die einfache Skalierung Ihrer Anwendung durch die Ausführung mehrerer Instanzen des Nginx-Containers. Sie können dies mit Docker Compose oder durch manuelles Starten mehrerer Container tun.

Hier ist ein Beispiel für die Verwendung von Docker Compose zur Skalierung von Nginx:

version: "3"
services:
  nginx:
    image: nginx
    ports:
      - 80:80
    deploy:
      replicas: 3

Diese Docker Compose-Datei startet drei Nginx-Container und verteilt den Datenverkehr über diese.

Durch die Anpassung des Nginx-Containers mit Ihrer eigenen Konfiguration und Ihren Inhalten und durch die Skalierung des Containers mit Docker können Sie eine hochflexible und skalierbare Nginx-basierte Webanwendung erstellen.

Zusammenfassung

Am Ende dieses Tutorials verfügen Sie über ein fundiertes Verständnis der Ausführung eines Docker-Containers mit dem Nginx-Image, der Anpassung des Containers und der Verwaltung Ihrer Webanwendungen mithilfe der Leistungsfähigkeit von Docker und Nginx. Dieses Wissen ermöglicht es Ihnen, Ihre Webanwendungen effizienter und effektiver bereitzustellen.