Docker nginx Beispielmethode zum Bereitstellen mehrerer Projekte

Docker nginx Beispielmethode zum Bereitstellen mehrerer Projekte

Voraussetzungen

1. Docker wurde auf dem lokalen Computer und Server installiert. Bitte googeln Sie die Download-Methode.

2. Sie haben bereits ein Konto bei Docker Hub? Registrieren Sie sich unter: https://hub.docker.com/

3. Sie müssen mit Docker vertraut sein und einige Anweisungen in Dockerfile verstehen

Verwenden von Dockerfile zum Erstellen eines Images

Wenn auf dieser Maschine ein Projekt mit dem Namen „Web“ läuft,

Erstellen Sie ein neues Dockerfile im Web-Stammverzeichnis und schreiben Sie den folgenden Inhalt

VON nginx:1.13.6-alpine
LABEL-Betreuer="lilywang <[email protected]>"

ARG TZ="Asien/Shanghai"

ENV TZ ${TZ}

Führen Sie den Befehl „apk upgrade --update \“ aus.
 && apk bash tzdata hinzufügen \
 && ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime \
 && echo ${TZ} > /etc/Zeitzone \
 && rm -rf /var/cache/apk/*

KOPIEREN Sie dist /usr/share/nginx/html 

CMD ["nginx", "-g", "Daemon aus;"]

Derzeit sieht die Dateistruktur im Web wie folgt aus:

.
|____Dockerdatei
|____dist // Für das Projekt gepackte Dateien| |____index.html

Als nächstes geben Sie das Webverzeichnis in bash ein

CD-Web

Docker-Build -t lilywang711/web.

Wenn in den gedruckten Informationen Folgendes angezeigt wird, bedeutet dies, dass das Image erfolgreich erstellt wurde.

Erfolgreich erstellt 4c050212ce0d
Erfolgreich getaggt mit lilywang711/web:latest

Sie können auch docker images eingeben, um die aktuelle Imageliste anzuzeigen

Geben Sie als Nächstes den Befehl docker push lilywang711/web ein, um das gerade erstellte Image auf den Docker-Hub hochzuladen, damit wir das Image später auf den Server abrufen können.

Wenn mehrere Projekte bereitgestellt werden sollen, wiederholen Sie einfach die obigen Schritte und erstellen Sie so viele Images, wie Projekte vorhanden sind.

Serverbereitstellung

Melden Sie sich über SSH beim Server an, erstellen Sie einen neuen Nginx-Ordner im aktuellen Benutzerverzeichnis (mein Verzeichnis ist root) und erstellen Sie darin nginx.conf
Schreiben Sie Folgendes in nginx.conf

Benutzer nginx;
Arbeiterprozesse 2;
Fehlerprotokoll /var/log/nginx/error.log warnen;
pid /var/run/nginx.pid;
Ereignisse {
 verwenden Sie epoll;
 Arbeiterverbindungen 2048;
}
http {
 /etc/nginx/mime.types einschließen;
 # /etc/nginx/conf.d/*.conf einschließen;
 root /usr/share/nginx/html;
 Index Index.html Index.htm;
 Server {
  hören Sie 80;
  Servername a.IhreDomäne.cn;
  Standort / {
  }
 }
 Server {
  hören Sie 80;
  Servername b.IhreDomäne.cn;
  Standort / {
   Proxy-Passwort http://Ihre_VPS-IP:81;
  }
 }
 Server {
  hören Sie 80;
  Servername localhost;
  Standort / {
  }
 }
}

Nächste Schritte

Starten Sie Docker systemctl start docker

Ziehen Sie die beiden gerade erstellten und hochgeladenen Bilder

docker pull lilywang711/web

docker pull lilywang711/web1

Geben Sie den folgenden Befehl ein, um den Container zu starten

docker run -itd --name web -p 80:80 -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf lilywang711/web
// -i führt den Container im interaktiven Modus aus, -t weist dem Container ein Pseudoterminal zu, -d führt den Container im Hintergrund aus, Sie können direkt -itd schreiben
// --name gibt dem Container einen Namen namens „Web“ zur einfachen Identifizierung. // -p bindet den lokalen Port 80 an den Container-Port 80.
// -v deklariert das Volume, was bedeutet, dass /etc/nginx/nginx.conf im Container in /root/nginx/nginx.conf im Host gemountet wird. Um nginx in Zukunft zu konfigurieren, müssen Sie nur /root/nginx/nginx.conf ändern

Dasselbe gilt für ein anderes lilywang711/web1-Bild. Ändern Sie einfach den Port und den Namen.

docker run -itd --name web1 -p 81:80 -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf lilywang711/web1

Geben Sie an dieser Stelle docker ps ein und Sie sehen, dass die beiden Container bereits ausgeführt werden.

Das Dockerisieren des Projekts und die Bereitstellung in nginx sind abgeschlossen

Geben Sie http://a.yourdomain.cn und http://b.yourdomain.cn in den Browser ein, um den Effekt zu sehen, der jeweils den Web- und Web1-Projekten auf dem lokalen Computer entspricht.

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:
  • Docker erstellt eine Nginx+PHP+MySQL-Umgebung und implementiert WordPress-Praxis
  • So stellen Sie nginx mit Docker bereit und ändern die Konfigurationsdatei
  • Docker für Anfänger und detaillierte Schritte zum Bereitstellen von NGINX
  • Docker-Bereitstellung - Nginx-Implementierungsprozess - Grafik und Text - detaillierte Erläuterung
  • Docker stellt Nginx bereit und konfiguriert Reverse-Proxy
  • Versuchen Sie Docker+Nginx, um die Single-Page-Anwendungsmethode bereitzustellen
  • Implementierungsmethode für die Produktion und Bereitstellung von Docker Nginx-Containern
  • So stellen Sie Nginx auf Docker bereit

<<:  Detaillierte Erläuterung der 8 Möglichkeiten zum Übergeben von Parametern in Vue-Routing-Komponenten

>>:  Installieren Sie zwei MySQL5.6.35-Datenbanken unter Win10

Artikel empfehlen

So verwenden Sie iostat zum Anzeigen der IO-Leistung von Linux-Festplatten

TOP-Beobachtung: Der Prozentsatz der CPU-Zeit, de...

Anwendungsbeispiele für die MySQL-Volltextsuche

Inhaltsverzeichnis 1. Umweltvorbereitung 2. Daten...

Docker-Tutorial: Container verwenden (einfaches Beispiel)

Wenn Sie mit Docker noch nicht vertraut sind, seh...

Beispiele für die Verwendung der MySQL-EXPLAIN-Anweisung

Inhaltsverzeichnis 1. Nutzung 2. Ausgabeergebniss...

Tutorial zur Master-Slave-Konfiguration der MySQL-Datenbank unter Windows

Der detaillierte Prozess zum Konfigurieren des My...

So installieren Sie Tomcat8 im Docker

1. Installieren Sie Tomcat8 mit Docker 1. Suchen ...

Einige Möglichkeiten zum Eliminieren doppelter Zeilen in MySQL

SQL-Anweisung /* Einige Methoden zum Eliminieren ...

Detaillierte Erklärung zum Datenaustausch zwischen Vue-Komponenten

Inhaltsverzeichnis 1. In der Projektentwicklung w...