基于Docker的LNMP环境微服务搭建

1、LNMP解释:

Linux:Linux 操作系统
Nginx:Web 服务器
MariaDB:数据库
PHP:脚本语言
在这里插入图片描述

2、 操作步骤

说明:以下环境搭建在linux系统内需要切换至root用户,已是root的不用管

(1)搭建Docker环境

1.查看版本内核,需要在3.8以上

uname -r 

在这里插入图片描述

2.下载docker安装包,版本看自己需要,几乎都是可以的,本次选择18.09.8版本

wget https://download.docker.com/linux/static/stable/x86_64/docker-18.09.8.tgz

在这里插入图片描述

4 解压到docker目录下

tar -zxvf  ./docker-18.09.8.tgz -C /usr/local/ 

在这里插入图片描述

5 创建docker映射在宿主机上的文件夹

mkdir -p /usr/local/docker/data  

6 进入配置文件,按i进入编辑模式;

vim /etc/profile ##

在文件的最末尾加上docker路径:

PATH=$PATH:/usr/local/docker

然后按:wq保退出;

7 刷新配置文件生效

source /etc/profile 

8 进入docker目录下

cd /usr/local/docker

9 后台运行docker程序

./dockerd -g /usr/local/docker/data & 

在这里插入图片描述

10 查看是否安装成功,显示docker版本信息

docker --version  

在这里插入图片描述

(2)部署Mysql(与MariaDB选择一个就行)

1.docker search mysql##寻找docker镜像

docker search mysql

在这里插入图片描述

2.docker pull mysql:5.7 ##不加版本号,默认拉取最新的,也可以 docker pull mysql:[tag] 拉取指定版本

docker pull mysql:5.7

在这里插入图片描述

3.docker images ##查看镜像,找到mysql镜像名

docker images

在这里插入图片描述

4.mkdir -p /usr/local/mysql/data ##创建mysql挂载目录

mkdir -p /usr/local/mysql/data

5.docker run -d --name my-mysql -p 3306:3306 -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=12345678
mysql:5.7 r ##–name 后面是自定的容器名,后续查看或者进入容器都能用到,-p 端口映射,容器内部端口映射到宿主机的端口 ;-v mysql数据和配置文件挂载目录 -e mysql 的启动参数,设置root密码;

docker run -d --name my-mysql  -p 3303:3306 -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=12345678 mysql:5.7

-p后边的5000:80代表把容器里的80端口映射给宿主机的5000端口。这样做了映射之后,可以通过5000端口访问该项目的主页。
-p后边的3303:3306代表把容器里的3306端口映射给宿主机的3303端口。这样做了映射之后,可以通过3303端口访问mysql。
在这里插入图片描述

5.使用navicat等工具或者docker exec -it 容器id bash 进入容器内部,都可以连接上数据库;
查看容器id

docker ps

在这里插入图片描述

docker exec -it efd460899249 bash 

进入bash后
输入:

mysql -uroot -p12345678

在这里插入图片描述

在这里插入图片描述

(3)部署Php环境

1.docker search php ##寻找docker镜像

docker search php

在这里插入图片描述

2.docker pull php:7.3.7-fpm ##拉取指定版本镜像

docker pull php:7.3.7-fpm

在这里插入图片描述

3.docker images ##查看镜像,找到php镜像名后面启动参数里会用镜像名

docker images

在这里插入图片描述

4.mkdir -p /usr/local/nginx/html ##创建挂载目录

mkdir -p /usr/local/nginx/html

5.docker run -d --name my-php -p 9000:9000 -v /usr/local/nginx/html:/www php:7.3.7-fpm ##–name 后面是自定的容器名,后续查看或者进入容器都能用到,-p 端口映射,容器内部端口映射到宿主机的端口 ;-v 挂载数据卷;

docker run -d --name my-php -p 9000:9000 -v /usr/local/nginx/html:/www  php:7.3.7-fpm

在这里插入图片描述

5.docker ps 可以查看创建成功的php容器

docker ps

在这里插入图片描述

(4)部署Nginx

1.docker search nginx ##寻找docker镜像

docker search nginx

在这里插入图片描述

2.docker pull nginx ##不加版本号,默认拉取最新的,也可以 docker pull nginx:[tag] 拉取指定版本

docker pull nginx

在这里插入图片描述

3.docker images ##查看镜像,找到nginx镜像名后面启动参数里会用镜像名

docker images 

在这里插入图片描述

4.mkdir -p /usr/local/nginx/conf.d ##创建nginx宿主机配置文件目录

mkdir -p /usr/local/nginx/conf.d

5.vim /usr/local/nginx/conf.d/nginx.conf ##把下面配置文件内容写进去

vim /usr/local/nginx/conf.d/nginx.conf
docker run -d --name my-nginx -p 80:80 -v /usr/local/nginx/conf.d:/etc/nginx/conf.d -v /usr/local/nginx/html:/usr/share/nginx/html --privileged=true --link my-php:php nginx

7.docker ps ##可以看到运行的容器

docker ps

8.访问服务器地址可以看到nginx页面,说明部署成功
###配置文件内容###

server {
    
    
    listen       80;
    server_name  localhost;
 
    location / {
    
    
        root   /usr/local/nginx/html;
        index  index.html index.htm index.php;
    }
 
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
    
    
        root   /usr/local/nginx/html;
    }
    location ~ \.php$ {
    
    
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /www/$fastcgi_script_name;
        include        fastcgi_params;
    }
}

至此LNMP环境搭建完成,接下来就是相应的php服务,php服务放在/usr/local/nginx/html目录下,通过服务器地址+php文件名,就可以访问具体的php应用了

猜你喜欢

转载自blog.csdn.net/m0_38139250/article/details/129708211