Nginx   发布时间:2022-05-11  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了docker部署lnmp集群大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

LNMP的网段为:@H_944_1@172.16.10.0/24

服务容器与各个ip:@H_944_1@Nginx 172.16.10.10@H_944_1@mysqL 172.16.10.20@H_944_1@php 172.16.10.30**

导入一下镜像包:@H_944_1@mysqL5.7@H_944_1@php.7.2-fpm.tar@H_944_1@wordpress.tar@H_944_1@Nginx.tar

将导入的镜像包导成docker可用的镜像:@H_944_1@docker load < Nginx.tar && docker load < wordpress.tar && docker load < MysqL-5.7.tar && docker load < Nginx.tar && docker load < php.7.2-fpm.tar

宿主机创建两个目录:@H_944_1@分别是:@H_944_1@网站的访问主目录:mkdir /wwwroot@H_944_1@配置文件目录: mkdir /docker

Nginx准备工作:@H_944_1@Nginx配置文件:/etc/Nginx/conf.d@H_944_1@Nginx主目录:/usr/share/Nginx/html

先运行一个Nginx容器,将容器里的Nginx主目录和配置文件导出来:@H_944_1@docker run -itd --name test Nginx:latest

docker cp test:/etc/Nginx /docker

docker cp test:/usr/share/Nginx/html /wwwroot

查看80端口,不可被占用:@H_944_1@netstat -anpt | grep 80

准备工作已经完成,接下来开始部署各个服务:

1)创建一个自定义网络:@H_944_1@docker network create -d bridge --subnet 172.16.10.0/24 --gateway 172.16.10.1 lnmp

2)运行Nginx:@H_944_1@docker run -itd --name Nginx -v /docker/Nginx:/etc/Nginx -v /wwwroot/html:/usr/share/Nginx/html -p 80:80 --network lnmp --ip 172.16.10.10 Nginx

更改Nginx访问界面:@H_944_1@cd /wwwroot/html@H_944_1@cat index.html@H_944_1@Hello lnmp

访问本机验证:@H_944_1@curl 127.0.0.1@H_944_1@Hello lnmp

浏览器访问出下面就成功:

docker部署lnmp集群

3)运行MysqL:@H_944_1@运行一个MysqL容器,并为它创建密码为123.com:@H_944_1@docker run --name MysqL -e MysqL_ROOT_password=123.com -d -p 3306:3306 --network lnmp --ip 172.16.10.20 MysqL:5.7

登录MysqL验证:@H_944_1@先下载一个MysqL@H_944_1@[root@localhost ~]# yum -y install MysqL

访问验证:@H_944_1@[root@localhost ~]# MysqL -u root -p123.com -h 127.0.0.1 -P 3306

便新建一个库做验证:@H_944_1@mysqL [(nonE)]> create database name;

再查看有没有刚创建的库:@H_944_1@mysqL [(nonE)]> show databases;

4)运行php容器:

运行一个php容器@H_944_1@[root@localhost ~]# docker run -itd --name phpfpm -p 9000:9000 -v /wwwroot/html:/usr/share/Nginx/html --network lnmp --ip 172.16.10.30 php:7.2-fpm

添加php测试界面:@H_944_1@[root@localhost html]# pwd@H_944_1@/wwwroot/html@H_944_1@[root@localhost html]# vim test.php

<?php@H_944_1@phpinfo();@H_944_1@?>@H_944_1@浏览器访问:出现下面界面就成功

docker部署lnmp集群

5)修改Nginx配置文件,Nginx和php连接@H_944_1@[root@localhost conf.d]# pwd@H_944_1@/docker/Nginx/conf.d

[root@localhost conf.d]# vim default.conf

10行:添加index.php解析

​ index index.html index.htm index.php;

30行:打开模块(去掉#并添加)并更改相信息:

LOCATIOn ~ .php$ {@H_944_1@root /usr/share/Nginx/html;@H_944_1@fastcgi_pass 172.16.10.30:9000;@H_944_1@fastcgi_index index.php;@H_944_1@fastcgi_param SCRIPT_FILename $document_root$fastcgi_script_name;@H_944_1@include fastcgi_params;@H_944_1@}

重启Nginx服务:

[root@localhost conf.d]# docker restart Nginx @H_944_1@Nginx

关闭防火墙:

[root@localhost conf.d]# systemctl stop firewalld@H_944_1@[root@localhost conf.d]# systemctl disable firewalld

重启docker:

[root@localhost conf.d]# systemctl daemon-reload @H_944_1@[root@localhost conf.d]# systemctl restart docker

重启所有容器:

[root@localhost conf.d]# docker ps -a -q | xargs docker start

接下来是php和MySQL的连接,在这里我们使用一个phpR_939_11845@yAdmin的数据库管理工具。

下载导入phpR_939_11845@yAdmin-4.9.1-all-languages

导入需要的包:@H_944_1@[root@localhost html]# pwd@H_944_1@/wwwroot/html

[root@localhost html]# ls@H_944_1@50x.html phpR_939_11845@yAdmin-4.9.1-all-languages.zip@H_944_1@index.html test.php

解压:

[root@localhost html]# unzip phpR_939_11845@yAdmin-4.9.1-all-languages.zip

[root@localhost html]# ls@H_944_1@50x.html phpR_939_11845@yAdmin-4.9.1-all-languages test.php@H_944_1@index.html phpR_939_11845@yAdmin-4.9.1-all-languages.zip

名字太长不好记,待会要在Nginx配置文件更改,重命名一下:

[root@localhost html]# mv phpR_939_11845@yAdmin-4.9.1-all-languages phpR_939_11845@yadmin

[root@localhost html]# ls@H_944_1@50x.html phpR_939_11845@yadmin test.php@H_944_1@index.html phpR_939_11845@yAdmin-4.9.1-all-languages.zip

//更改Nginx配置文件:

[root@localhost html]# cd /docker/Nginx/conf.d/@H_944_1@[root@localhost conf.d]# vim default.conf

27行添加:

   LOCATIOn /phpR_939_11845@yadmin {
            root   /usr/share/Nginx/html;
            index   index.html index.htm index.php;    }

41行添加:

LOCATIOn ~ /phpR_939_11845@yadmin/(?<after_ali>(.*).(php|php5)?$) {@H_944_1@root /usr/share/Nginx/html;@H_944_1@fastcgi_pass 172.16.10.30:9000;@H_944_1@fastcgi_index index.php;@H_944_1@fastcgi_param SCRIPT_FILename $document_root$fastcgi_script_name; include fastcgi_params;@H_944_1@}

重启Nginx:

[root@localhost conf.d]# docker restart Nginx@H_944_1@Nginx

浏览器访问@H_944_1@本机IP/phpR_939_11845@yadmin/index.php

docker部署lnmp集群

报红框属于正常现象,不要惊慌,接下来就解决它

需要我们对php镜像做出更改,添加php和MySQL连接的模块

写一个Dockerfile:@H_944_1@[root@localhost ~]# vim Dockerfile

FROM php:7.2-fpm@H_944_1@RUN apt-get update && apt-get install -y \@H_944_1@libfreetype6-dev \@H_944_1@libjpeg62-turbo-dev \@H_944_1@libpng-dev \@H_944_1@&& docker-php-ext-install -j$(nproC) iconv \@H_944_1@&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \@H_944_1@&& docker-php-ext-install -j$(nproC) gd \@H_944_1@&& docker-php-ext-install MysqLi pdo pdo_MysqL

执行一下:这条命令加载时间有点长,请耐心等待!!!

[root@localhost ~]# docker build -t phpR_939_11845@ysqL .

查看是否有新创建的镜像:

[root@localhost ~]# docker images

[root@localhost ~]# docker stop phpfpm

我的是这个:

phpR_939_11845@ysqL latest 6e65aee3bd4d 9 minutes ago 422MB

关闭原先的php镜像:

[root@localhost ~]# docker stop phpfpm @H_944_1@phpfpm

删除之前的php容器

[root@localhost ~]# docker rm phpfpm @H_944_1@phpfpm

使用新创建的php镜像创建新的php容器

[root@localhost ~]# docker run -itd --name phpfpm -p 9000:9000 -v /wwwroot/html:/usr/share/Nginx/html --network lnmp --ip 172.16.10.30 phpR_939_11845@ysqL

//修改phpR_939_11845@yadmin的配置文件,指定连接的数据库的ip

[root@localhost phpR_939_11845@yadmin]# pwd@H_944_1@/wwwroot/html/phpR_939_11845@yadmin

改名:

[root@localhost phpR_939_11845@yadmin]# cp config.sample.inc.php config.inc.php

编辑:

[root@localhost phpR_939_11845@yadmin]# vim config.inc.php

31行:改为MysqL数据库的ip

$cfg['Servers'][$i]['host'] = '172.16.10.20';

重启php容器:

[root@localhost phpR_939_11845@yadmin]# docker restart phpfpm @H_944_1@phpfpm

浏览器访问:本机IP/phpR_939_11845@yadmin/index.php @H_944_1@出现以下界面成功@H_944_1@

docker部署lnmp集群

@H_944_1@用户:root 密码:123.com

登录成功会看到之前创建的数据库:

docker部署lnmp集群

到这就lnmp部署完成!!!!

大佬总结

以上是大佬教程为你收集整理的docker部署lnmp集群全部内容,希望文章能够帮你解决docker部署lnmp集群所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: