Analyse des Prozesses der einfachen Bereitstellung von Nginx im Docker-Container

Analyse des Prozesses der einfachen Bereitstellung von Nginx im Docker-Container

1. Stellen Sie den Nginx-Dienst im Container bereit

Das centos:7-Image führt einen Container aus und stellt den Nginx-Dienst in diesem Container bereit.

[root@Docker ~]# docker pull centos:7 //Laden Sie das Image herunter
[root@Docker ~]# docker run -itd --name webapp --restart=always centos:7 //Führen Sie einen Container mit dem Namen aus: webapp
[root@Docker ~]# docker cp nginx-1.16.0.tar.gz webapp:/root //Importiere das lokale nginx-Paket in den Webapp-Container
[root@Docker ~]# docker exec -it webapp /bin/bash //Geben Sie den Container ein
[root@85099880dabe ~]# tar zxf nginx-1.16.0.tar.gz
[root@85099880dabe ~]# cd nginx-1.16.0
[root@85099880dabe nginx-1.16.0]# yum install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel //Zugehörige Abhängigkeitspakete herunterladen
[root@85099880dabe nginx-1.16.0]# useradd -M -s /sbin/nologin nginx //Fügen Sie einen Nginx-Benutzer ohne Anmeldeberechtigung hinzu
[root@85099880dabe nginx-1.16.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx //Kompilieren und installieren

[root@85099880dabe nginx-1.16.0]# make && make install //Kompilieren und installieren
[root@85099880dabe nginx-1.16.0]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ //Erstelle einen Softlink
[root@85099880dabe nginx-1.16.0]# nginx
[root@85099880dabe nginx-1.16.0]# nginx //Bestätigen Sie, dass der Nginx-Dienst aktiviert ist
nginx: [emerg] bind() zu 0.0.0.0:80 fehlgeschlagen (98: Adresse wird bereits verwendet)
nginx: [emerg] bind() zu 0.0.0.0:80 fehlgeschlagen (98: Adresse wird bereits verwendet)
nginx: [emerg] bind() zu 0.0.0.0:80 fehlgeschlagen (98: Adresse wird bereits verwendet)
nginx: [emerg] bind() zu 0.0.0.0:80 fehlgeschlagen (98: Adresse wird bereits verwendet)
nginx: [emerg] bind() zu 0.0.0.0:80 fehlgeschlagen (98: Adresse wird bereits verwendet)
[root@85099880dabe nginx-1.16.0]# cd /usr/local/nginx/html/
[root@85099880dabe html]# echo "TEST WEB" > index.html
[root@85099880dabe html]# curl 127.0.0.1
TESTWEB

2. Migrieren des Images

Erforderliche Umgebung:

Docker1-Host: 192.168.45.129

Docker2-Host: 192.168.45.134

1) Docker1-Host

Importieren Sie den neu erstellten Container von Docker1 in den Docker2-Host.

[root@Docker ~]# docker commit webapp myweb //Mach den Webapp-Container zu einem Spiegel mit dem Namen myweb
sha256:b035b8e8a36140e1bdbda9cf3a736b139ea8a48db7871a10f509b8f34d4c0f82
[root@Docker ~]# docker save > myweb.tar myweb:latest //Exportiere das Image
[root@Docker ~]# scp myweb.tar 192.168.45.134:/root //cp das exportierte Tarball zum Docker2-Host
Die Authentizität des Hosts „192.168.45.134 (192.168.45.134)“ kann nicht festgestellt werden.
Der ECDSA-Schlüsselfingerabdruck lautet d7:77:71:90:34:25:c0:ec:e0:b6:5c:cc:6b:44:93:7b.
Möchten Sie die Verbindung wirklich fortsetzen (ja/nein)? ja
Warnung: „192.168.45.134“ (ECDSA) wurde dauerhaft zur Liste der bekannten Hosts hinzugefügt.
root@192.168.45.134's password: //Das Passwort ist das Passwort des Docker2-Hosts
myweb.tar 100 % 353 MB 176,4 MB/s 00:02

2) Docker2-Host

[root@Docker2 ~]# docker load < myweb.tar //Das Tar-Paket einfach per cp in einen Spiegel kopieren
[root@Docker2 ~]# docker run -itd --name newweb myweb:latest //Starte einen Container
[root@Docker2 ~]# docker exec -it newweb /bin/bash //Geben Sie den Container ein
[root@4e419b580248 /]# nginx
[root@4e419b580248 /]# nginx //Bestätigen Sie, dass der Nginx-Dienst gestartet wurde
nginx: [emerg] bind() zu 0.0.0.0:80 fehlgeschlagen (98: Adresse wird bereits verwendet)
nginx: [emerg] bind() zu 0.0.0.0:80 fehlgeschlagen (98: Adresse wird bereits verwendet)
nginx: [emerg] bind() zu 0.0.0.0:80 fehlgeschlagen (98: Adresse wird bereits verwendet)
nginx: [emerg] bind() zu 0.0.0.0:80 fehlgeschlagen (98: Adresse wird bereits verwendet)
nginx: [emerg] bind() zu 0.0.0.0:80 fehlgeschlagen (98: Adresse wird bereits verwendet)
nginx: [emerg] bind() konnte immer noch nicht ausgeführt werden
[root@4e419b580248 /]# curl 127.0.0.1
TESTWEB

Hinweis: Hier können wir sehen, dass die im Docker1-Hostcontainer erstellte einfache Nginx-Umgebung erfolgreich als Spiegel auf den Docker2-Host migriert wurde.

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:
  • Implementierungsmethode für die Produktion und Bereitstellung von Docker Nginx-Containern
  • Analyse des Prozesses der einfachen Bereitstellung von Nginx im Docker-Container
  • Versuch der Bereitstellung von Docker-Containern – Kommunikation mit mehreren Containern (Node+MongoDB+Nginx)
  • Docker-Bereitstellung - Nginx-Implementierungsprozess - Grafik und Text - detaillierte Erläuterung
  • So stellen Sie ein Vue-Projekt mit Docker-Image + nginx bereit
  • Implementierung der Docker-Bereitstellung von Django+Mysql+Redis+Gunicorn+Nginx
  • So stellen Sie nginx mit Docker bereit und ändern die Konfigurationsdatei

<<:  Beheben Sie das Problem, dass die MySQL-Datenbank unerwartet abstürzt, wodurch die Tabellendatendatei beschädigt wird und nicht gestartet werden kann

>>:  5 Möglichkeiten, Ihre JavaScript-Codebasis sauberer zu machen

Artikel empfehlen

Lösung für FEHLER 1366 bei der Eingabe von Chinesisch in MySQL

Beim Eingeben von Chinesisch in MySQL tritt der f...

Grafische Erläuterung der Lösungen zur Frontend-Verarbeitung kleiner Symbole

Vorwort Bevor wir mit diesem Artikel beginnen, be...

Native JS-Drag-and-Drop-Funktion zum Erstellen eines Slider-Beispielcodes

Drag & Drop ist eine gängige Funktion im Fron...

Prozessdiagramm zur Implementierung des CentOS-IP-Verbindungsnetzwerks

1. Melden Sie sich beim System an und geben Sie d...

Tutorial zur MySQL-Datensicherungsmethode mit Multi-Master und One-Slave

Überblick Vorgänge, die auf einer Datenbank ausge...

Tutorial zur Installation des Tomcat-Servers unter Windows

1 Herunterladen und vorbereiten Zuerst müssen wir...

VUE + SpringBoot implementiert die Paging-Funktion

Dieser Artikel stellt hauptsächlich vor, wie pagi...

So verwenden Sie CSS-Zähler, um geordnete Zahlenlisten zu verschönern

Beim Webdesign ist es sehr wichtig, eine organisi...

So blockieren und verbieten Sie Webcrawler im Nginx-Server

Jede Website stößt normalerweise auf viele Crawle...