Umweltvorbereitung: Stellen Sie lnmp auf einem Host bereit, der auf mehreren Containern basiert: Lösen Sie das Problem der festen Container-IP-Adresse: Hinweis: Wenn der Container gestoppt oder gelöscht wird und derselbe Container erneut ausgeführt wird, ist seine IP-Adresse nicht mehr die ursprüngliche Adresse. Daher müssen wir ein Netzwerksegment anpassen, um die IP-Adresse des Containers anzugeben. Projektabwicklung: (1) Passen Sie zunächst ein Netzwerk an: [root@sqm-docker01 ~]# Docker-Netzwerk erstellen -d Bridge --Subnetz 172.16.10.0/24 --Gateway 172.16.10.1 mynet1 (2) Laden Sie das Image nginx, php:fpm, mysql-5.7 herunter: [root@sqm-docker01 ~]# Docker zieht nginx [root@sqm-docker01 ~]# docker pull php:7.2-fpm <!--Verwende das Image von php:7.2-fpm--> [root@sqm-docker01 ~]# docker pull mysql:5.7 <!--Verwende das Image von mysql:5.7--> (3)####Führen Sie einen Container basierend auf dem Nginx-Image aus##### #Führen Sie zuerst den Nginx-Dienst aus, um die Nginx-Konfigurationsdatei zu kopieren: Parametererklärung:
Erstellen Sie auf dem Host ein Verzeichnis, in dem Sie die Dateien mounten möchten: Hauptverzeichnis der Website: /wwwroot; nginx-Konfigurationsdatei: /docker; [root@sqm-docker01 ~]# mkdir /wwwroot [root@sqm-docker01 ~]# mkdir /docker ##Verwenden Sie den Befehl Docker cp, um das Verzeichnis, in dem die Nginx-Konfigurationsdateien gespeichert sind, auf den lokalen Computer zu kopieren. Hinweis: Der Befehl „Docker cp“ kann Dateien vom Host in den Container kopieren oder Dateien oder Verzeichnisse im Container auf den lokalen Computer kopieren. [root@sqm-docker01 ~]# docker cp test1:/etc/nginx /docker/ #Verwenden Sie Docker cp, um das Verzeichnis, in dem die Nginx-Konfigurationsdateien gespeichert sind, auf den Host zu kopieren . [root@sqm-docker01 ~]# ls /docker/nginx/conf.d/ Datei default.conf Kopieren Sie das Nginx-Webverzeichnis: [root@sqm-docker01 ~]# docker cp test1:/usr/share/nginx/html /wwwroot/ [root@sqm-docker01 ~]# ls /wwwroot/html/ 50x.html index.html Ändern Sie die Standard-Testwebseite von nginx: [root@sqm-docker01 html]# echo "<h1>Hallo, willkommen im Nginx-Web</h1>" > index.html (4) Führen Sie den Nginx-Container aus: Mounten Sie die Verzeichnisse im Container in das lokale Verzeichnis und geben Sie die IP-Adresse an [root@sqm-docker01 ~]# docker run -itd --name nginx --network my_net1 --ip 172.16.10.10 -p 80:80 -v /docker/nginx:/etc/nginx -v /wwwroot/html:/usr/share/nginx/html nginx:latest Parametererklärung:
(5) Führen Sie den MySQL-Container aus: [root@sqm-docker01 ~]# docker run --name mysql -e MYSQL_ROOT_PASSWORD=123.com -d -p 3306:3306 --network my_net1 --ip 172.16.10.20 mysql:5.7 -e dient zum Festlegen der Umgebungsvariable im Container. Wir legen die Umgebungsvariable mysql password fest, die an den Container übergeben wird, um das mysql password festzulegen Testen Sie, ob sich der Root-Benutzer auf diesem Computer bei MySQL anmelden kann: Zuerst müssen Sie den MySQL-Client herunterladen: [root@sqm-docker01 ~]# yum -y installiere mysql (6) Führen Sie den PHP-Container aus: [root@sqm-docker01 ~]# docker run -itd -p 9000:9000 --name phpfpm -v /wwwroot/html:/usr/share/nginx/html --network my_net1 --ip 172.16.10.30 php:7.2-fpm Beachten: (7) Konfigurieren Sie nginx und php-fpm: Wir müssen PHP zum Parsen von nginx konfigurieren: Erstellen Sie eine einfache Test-Webseite: Als nächstes müssen Sie die Nginx-Konfigurationsdatei ändern: [root@sqm-docker01 html]# vim /docker/nginx/conf.d/default.conf (8) Konfigurieren Sie MySQL: Einrichten von phpMyadmin: phpMyAdmin ist ein PHP-basiertes, webbasiertes MySQL-Datenbankverwaltungstool auf einem Website-Host, das Administratoren die Verwaltung von MySQL-Datenbanken über eine Weboberfläche ermöglicht. Diese Weboberfläche kann eine bessere Möglichkeit sein, komplexe SQL-Syntax auf einfache Weise einzugeben, insbesondere für den Import und Export großer Datenmengen. Einer der größten Vorteile besteht darin, dass phpMyAdmin wie andere PHP-Programme auf einem Webserver ausgeführt wird, sodass Sie die von diesen Programmen generierten HTML-Seiten überall verwenden können, d. h. MySQL-Datenbanken remote verwalten und Datenbanken und Tabellen einfach erstellen, ändern und löschen können. [root@sqm-docker01 html]# pwd /wwwroot/html In das aktuelle Verzeichnis entpacken: [root@sqm-docker01 html]# entpacken Sie phpMyAdmin-4.9.1-all-languages.zip Umbenennen: [root@sqm-docker01 html]# mv phpMyAdmin-4.9.1-alle-Sprachen phpmyadmin Ändern Sie die Nginx-Konfigurationsdatei – konfigurieren Sie die Verbindung mit phpMyAdmin: [root@sqm-docker01 html]# vim /docker/nginx/conf.d/default.conf Kopieren Sie das ursprüngliche Standortkonfigurationselement und fügen Sie die folgenden beiden Standortkonfigurationsabschnitte hinzu. Starten Sie nginx neu, nachdem Sie die nginx-Konfigurationsdatei geändert haben: Besuchen Sie die Testwebseite: Der Port im Container wurde dem Host zugeordnet, greifen Sie also direkt auf die Hostadresse zu: 172.16.1.30 Greifen Sie auf PHP zu, um die Nginx-Webseite zu analysieren: Testen Sie als Nächstes die Anmeldung bei phpMyAdmin: Besuchen Sie die URL : http://172.16.1.30/phpmyadmin/index.php Das MySQLI-Modul fehlt, deshalb kann nicht darauf zugegriffen werden. Sie müssen also PHP hinzufügen, um das MySQL-Konfigurationsmodul zu unterstützen: So fügen Sie dem Container Erweiterungsmodule hinzu: Wir können uns bei Dockerhub anmelden, um die relevanten Dokumente abzufragen: Linkpfad: https://hub.docker.com/ Kopieren Sie das obige Dockerfile-Skript und installieren Sie es lokal: Beachten Sie, dass einige zusätzliche Inhalte hinzugefügt werden müssen: [root@sqm-docker01 ~]# vim Docker-Datei VON php:7.2-fpm Führen Sie apt-get update && apt-get install -y \ aus. libfreetype6-dev \ libjpeg62-turbo-dev \ libpng-dev \ && docker-php-ext-install -j$(nproc) iconv \ && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ && docker-php-ext-install -j$(nproc) gd \ && docker-php-ext-install mysqli pdo pdo_mysql Dockerfile erstellen: [root@sqm-docker01 ~]# docker build -t phpfpm-mysqli . Parametererklärung:
Nachdem der Build abgeschlossen ist, löschen Sie das ursprüngliche PHP-Image und führen Sie das Image aus, das gerade erfolgreich erstellt wurde und das MySQLI-Modul unterstützt: [root@sqm-docker01 ~]# Docker stoppt phpfpm phppfpm [root@sqm-docker01 ~]# docker rm phpfpm phppfpm [root@sqm-docker01 ~]# docker run --name phpfpm -d -p 9000:9000 -v /wwwroot/html:/usr/share/nginx/html --network my_net1 --ip 172.16.10.30 phpfpm-mysqli:latest #Mirror gibt den Image-Namen an, der von der gerade erstellten Docker-Datei generiert wurde. Ändern Sie das Standardbeispiel (Beispieldatei) von phpMyAdmin: Wenn Sie es in der Konfigurationsdatei verwenden möchten, müssen Sie es umbenennen und das Beispiel entfernen. [root@sqm-docker01 phpmyadmin]# pwd /wwwroot/html/phpmyadmin [root@sqm-docker01 phpmyadmin]# cp config.sample.inc.php config.inc.php Ändern Sie die Konfigurationsdatei: [root@sqm-docker01 phpmyadmin]# vim config.inc.php Starten Sie PHP nach der Änderung der Konfigurationsdatei neu: [root@sqm-docker01 phpmyadmin]# docker restart phpfpm phppfpm Greifen Sie auf die phpMyAdmin-Webseite zu: Geben Sie die URL ein: http://172.16.1.30/phpmyadmin/index.php
Auf die MySQL-Datenbank wurde erfolgreich zugegriffen. . . . . . An diesem Punkt ist die Bereitstellung von lnmp zwischen mehreren Containern in Docker abgeschlossen. 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:
|
<<: Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.15 unter Win10
>>: Eine kurze Diskussion über die Verwendung der Web Storage API
Virtualisierung und Containerisierung sind zwei u...
Inhaltsverzeichnis Typische Wasserfall-Website Wa...
Bei der Hintergrundverwaltung von Projekten werde...
Inhaltsverzeichnis Stil mit Gültigkeitsbereich St...
Inhaltsverzeichnis # Nachbereitung der Daten # SQ...
Ändern Sie die Gruppe, zu der ein Benutzer in Lin...
Mobile Browser platzieren Webseiten in einem virtu...
Ernsthafte MySQL-Optimierung! Wenn die MySQL-Date...
In diesem Artikel werden hauptsächlich das Prinzi...
1. Echart in HTML-Datei importieren <!-- E-Cha...
Inhaltsverzeichnis 0. Hintergrund 1. Installation...
Es gibt zwei Möglichkeiten, mit Nginx mehrere Pro...
Installieren Zuerst müssen Sie Java und Scala ins...
Inhaltsverzeichnis Wirkungsdemonstration:Hauptimp...
Voraussetzungen Git muss installiert werden Insta...