Heim > Betrieb und Instandhaltung > Docker > Analysieren Sie, wie Docker eine lnmp-Umgebung erstellt (php7.4 + nginx)

Analysieren Sie, wie Docker eine lnmp-Umgebung erstellt (php7.4 + nginx)

青灯夜游
Freigeben: 2022-02-15 10:25:08
nach vorne
6959 Leute haben es durchsucht

Dieser Artikel stellt Ihnen die Installationsmethode von Docker unter Linux vor und erfährt mehr über die Schritte zum Erstellen einer lnmp-Umgebung (php7.4 + nginx) mit Docker. Ich hoffe, er wird Ihnen hilfreich sein! 1. Docker-Grundlagen 1.1 Docker-Installation

yum install -y docker
Nach dem Login kopieren

beweist, dass die Installation abgeschlossen ist: Analysieren Sie, wie Docker eine lnmp-Umgebung erstellt (php7.4 + nginx)

[root@localhost docker]# docker version
Client:
 Version:         1.13.1
 API version:     1.26
 Package version: docker-1.13.1-204.git0be3e21.el7.x86_64
 Go version:      go1.10.3
 Git commit:      0be3e21/1.13.1
 Built:           Fri Mar 19 13:57:09 2021
 OS/Arch:         linux/amd64

Server:
 Version:         1.13.1
 API version:     1.26 (minimum version 1.12)
 Package version: docker-1.13.1-204.git0be3e21.el7.x86_64
 Go version:      go1.10.3
 Git commit:      0be3e21/1.13.1
 Built:           Fri Mar 19 13:57:09 2021
 OS/Arch:         linux/amd64
 Experimental:    false
[root@localhost docker]#
Nach dem Login kopieren

sudo systemctl enable docker #Docker so einrichten, dass er beim Booten automatisch startet

Wir müssen die Docker-Image-Quelle vor dem Start ändern:

systemctl start docker   # 启动docker
systemctl stop docker    # 停止docker
systemctl status docker  # 查看docker状态
systemctl restart docker # 重新启动docker
Nach dem Login kopieren
After Nach Abschluss führen Sie „systemctl start docker“ aus, um den Docker-Dienst zu starten.

2. Docker erstellt eine LNMP-Umgebung

Einführung in die Umgebungssoftware:

2

Die von Docker erstellte LNMP-Verzeichnisstruktur:

[root@localhost docker]# vim /etc/docker/daemon.json

{
  "registry-mirrors": ["https://ftnejmh3.mirror.aliyuncs.com"]
}
Nach dem Login kopieren

2.1 Von Docker erstelltes Nginx

Wir können den Befehl docker search nginx verwenden, um das Nginx-Image auf Docker Hub zu finden. Hier rufen wir direkt das offizielle Image ab.

docker
│   └── nginx
│   │   └── default.conf #nginx配置文件
│   └── www
│       └── ...  #项目代码
Nach dem Login kopieren
Warten auf den Download Zum Abschluss finden Sie das Bild, dessen REPOSITORY Nginx ist, in der lokalen Bildliste.

[root@localhost ~]# docker pull nginx
Nach dem Login kopieren

Nginx-Konfiguration erstellen

[root@localhost www]# docker images
REPOSITORY       TAG       IMAGE ID        CREATED        SIZE
docker.io/nginx  latest    62d49f9bab67    12 days ago    133 MB
Nach dem Login kopieren
[root@localhost ~]# cd /docker/nginx
[root@localhost ~]# touch default.conf
[root@localhost ~]# vim default.conf

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;
    root /docker/www/lmrs-2008/public;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /docker/www/lmrs-2008/public;
    }

    location ~ \.php$ {
        root /docker/www/lmrs-2008/public;
        fastcgi_pass   172.17.0.3:9000;    //容器的ip地址
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}
Nach dem Login kopieren

IP-Informationen anzeigen

fastcgi_pass   172.17.0.3:9000;
Nach dem Login kopieren

Nginx-Image zum Öffnen des Nginx-Anwendungscontainers verwenden

[root@localhost docker]# docker inspect php | grep "IPAddress"
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.3",
                    "IPAddress": "172.17.0.3",
Nach dem Login kopieren

2.2 Docker-Installations-PHP

Wie Nginx können wir Suchen Sie zuerst das Bild über Docker Search PHP, hier Es ist direkt das offizielle Bild mit der Bezeichnung 7,4-fpm. Sie können selbst andere Versionen auswählen

[root@localhost ~]# docker run -p 80:80 -d --name nginx -v /docker/nginx/default.conf:/etc/nginx/conf.d/default.conf -v /docker/www:/docker/www  --privileged=true nginx

-p 80:80:将容器的80端口映射到主机的80端口
-d 后台运行(守护进程)
--name nginx:将容器命名为nginx
-v 将主机中当前目录下的www挂载到容器的www目录

#查看docker目前的容器
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
8781afd1bf13        nginx               "/docker-entrypoin..."   About an hour ago   Up 17 minutes       0.0.0.0:80->80/tcp                  nginx
Nach dem Login kopieren

Nachdem der Download abgeschlossen ist, können wir das Bild mit dem PHP-REPOSITORY und der Bezeichnung 7,4-fpm im lokalen Verzeichnis finden Bildliste.

[root@localhost ~]# docker pull php:7.4-fpm
Nach dem Login kopieren

Verwenden Sie das PHP-Bild, um den PHP-FRM-Anwendungscontainer zu öffnen.

[root@localhost docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/nginx     latest              62d49f9bab67        12 days ago         133 MB
docker.io/php       7.4-fpm             41b17b0f90e6        2 weeks ago         405 MB
Nach dem Login kopieren
Überprüfen Sie den Startstatus des Containers.
[root@localhost docker]# docker run -p 9000:9000 -d --name php -v /docker/www:/docker/www --privileged=true php:7.4-fpm
-p 9000:9000 :将容器的9000端口映射到主机的9000端口
-d 后台运行(守护进程)
--name php:将容器命名为php
-v 将主机中当前目录下的www挂载到容器的www目录
Nach dem Login kopieren

An diesem Punkt können Sie sehen, dass sowohl Nginx als auch PHP erfolgreich ausgeführt werden (der STATUS zeigt an, dass sie ausgeführt werden). )

Sehen Sie sich das von Nginx konfigurierte PHP an. Ist die FPM-Dienst-IP konsistent:

[root@localhost docker]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
cbf73ca0f17c        php:7.4-fpm         "docker-php-entryp..."   About an hour ago   Up About an hour    0.0.0.0:9000->9000/tcp              php
8781afd1bf13        nginx               "/docker-entrypoin..."   About an hour ago   Up 23 minutes       0.0.0.0:80->80/tcp                  nginx
Nach dem Login kopieren

In der obigen Konfiguration muss

fastcgi_pass 172.17.0.3:9000

; mit der IP des PHP-Containers übereinstimmen, den wir anzeigen .

Vervollständigen Sie die obige Konfiguration und bestätigen Sie, dass beim Starten des Containers kein Problem vorliegt. Sie können es testen:


Beim Zugriff auf Laravel kann es zu Problemen mit der Verzeichnisberechtigung kommen. Folgendes ist die Lösung:

location ~ \.php$ {
    root /docker/www/lmrs-2008/public;
    fastcgi_pass   172.17.0.3:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}
Nach dem Login kopieren
Empfohlenes Lernen: „

Docker-Video-Tutorial

"

Das obige ist der detaillierte Inhalt vonAnalysieren Sie, wie Docker eine lnmp-Umgebung erstellt (php7.4 + nginx). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
Docker installiert PHPStudy
Aus 1970-01-01 08:00:00
0
0
0
Über Docker
Aus 1970-01-01 08:00:00
0
0
0
Docker: Ungültiges Referenzformat
Aus 1970-01-01 08:00:00
0
0
0
Docker-Pull-Fehler?
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage