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.
[email protected]'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

Beispiel zum Erstellen und Ausführen mehrerer MySQL-Container in Docker

1. Verwenden Sie das Image mysql/mysql-server:lat...

So richten Sie geplante Sicherungsaufgaben in Linux CentOS ein

Implementierungsvorbereitung # Der Dateipfad muss...

Drei Vererbungsmethoden in JavaScript

erben 1. Was ist Vererbung? Vererbung: Zunächst e...

Ubuntu16.04 erstellt eine php5.6-Webserverumgebung

Ubuntu 16.04 installiert standardmäßig die PHP7.0...

So aktivieren Sie das langsame Abfrageprotokoll in MySQL

1.1 Einleitung Durch Aktivieren des Slow Query Lo...

Beispielcode zur Implementierung der olympischen Ringe mit reinem HTML+CSS

Rendern Code - Nehmen Sie die blauen und gelben R...

HTML (CSS-Stilspezifikation) muss lauten

CSS-Stilspezifikationen 1. Klassenauswahl 2. Tag-...

So überprüfen Sie die Festplattengröße und mounten die Festplatte in Linux

Es gibt zwei Arten von Festplatten in Linux: gemo...

So verwenden Sie fdisk zum Partitionieren der Festplatte in Linux

Häufig verwendete Befehle für Linux-Partitionen: ...

Detaillierte Erläuterung der Verwendung von Object.create-Instanzen in js

1. Erstellen Sie mit der Methode Object.create() ...