Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Analisis cara docker membina persekitaran lnmp (php7.4 nginx)

Analisis cara docker membina persekitaran lnmp (php7.4 nginx)

青灯夜游
青灯夜游ke hadapan
2022-02-15 10:25:086780semak imbas

Artikel ini akan memperkenalkan anda kepada kaedah pemasangan docker di bawah Linux, dan mengetahui lebih lanjut tentang langkah membina persekitaran lnmp (php7.4 nginx) dengan docker.

Analisis cara docker membina persekitaran lnmp (php7.4 nginx)

1. Asas Docker

1.1 Pemasangan Docker

Pemasangan Docker sangat mudah, kita boleh terus Gunakan arahan yum dalam sistem centos untuk dipasang:

yum install -y docker

Selepas selesai, semak maklumat versi docker:

[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]#

Untuk membuktikan bahawa pemasangan telah selesai, arahan docker adalah sebagai berikut:

systemctl start docker   # 启动docker
systemctl stop docker    # 停止docker
systemctl status docker  # 查看docker状态
systemctl restart docker # 重新启动docker

sudo systemctl enable docker #Set docker to start automatically at boot

Sebelum bermula, kita perlu mengubah suai sumber imej docker:

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

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

Selepas selesai, jalankan systemctl start docker, mulakan perkhidmatan docker.

2. Docker membina persekitaran lnmp

Pengenalan perisian alam sekitar:

1 docker

2 🎜>

4. php7.4 [Pembelajaran yang disyorkan: "

Tutorial Video PHP

"]

Struktur direktori lnmp dibina oleh docker:

2.1 Bina nginx dengan docker
docker
│   └── nginx
│   │   └── default.conf #nginx配置文件
│   └── www
│       └── ...  #项目代码

Kita boleh menggunakan perintah nginx carian docker untuk mencari imej nginx pada Docker Hub Di sini kita terus tarik imej rasmi

Tunggu muat turun untuk diselesaikan Kita boleh mencari imej yang REPOSITORInya adalah nginx dalam senarai imej tempatan.

[root@localhost ~]# docker pull nginx

Buat konfigurasi nginx

[root@localhost www]# docker images
REPOSITORY       TAG       IMAGE ID        CREATED        SIZE
docker.io/nginx  latest    62d49f9bab67    12 days ago    133 MB

Lihat maklumat ip
[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;
    }
}
fastcgi_pass   172.17.0.3:9000;

Gunakan imej nginx untuk membuka bekas aplikasi nginx

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

2.2 Docker installation php
[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

Sama seperti nginx, kita boleh cari dulu gambar melalui docker search php, di sini kita terus tarik imej rasmi, labelnya ialah 7.4- fpm, yang lain Anda boleh memilih versi sendiri

Selepas muat turun selesai, kita boleh mencari imej dengan REPOSITORI php dan label 7.4-fpm dalam senarai imej tempatan.

[root@localhost ~]# docker pull php:7.4-fpm

Gunakan imej php untuk membuka bekas aplikasi php-frm

[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

Semak status permulaan kontena

[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目录

Pada ketika ini, anda boleh lihat bahawa kedua-dua nginx dan php Operasi berjaya (STATUS meningkat, menunjukkan bahawa ia sedang berjalan)

[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
Semak sama ada IP perkhidmatan php-fpm yang dikonfigurasikan dalam nginx adalah konsisten:

Dalam konfigurasi di atas,

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;
}
fastcgi_pass 172.17.0.3 :9000

perlu konsisten dengan IP bekas php yang sedang kami lihat. Selepas melengkapkan konfigurasi di atas dan mengesahkan bahawa tiada masalah memulakan bekas, anda boleh mengujinya:

Mungkin terdapat masalah kebenaran direktori semasa mengakses laravel. Berikut ialah penyelesaiannya:

Pembelajaran yang disyorkan: "

tutorial video buruh pelabuhan
[root@localhost docker]# cd /docker/www
[root@localhost www]# chmod -R 777  文件名
"

Atas ialah kandungan terperinci Analisis cara docker membina persekitaran lnmp (php7.4 nginx). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:cnblogs.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam