Rumah >Operasi dan penyelenggaraan >Docker >Analisis cara docker membina persekitaran lnmp (php7.4 nginx)
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.
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.
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 dockerdocker │ └── 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 MBLihat 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 nginxSemak 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!