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

2023-10-16 17:39:47 浏览数 (2)

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

1、LNMP解释:

Linux:Linux 操作系统 Nginx:Web 服务器 MariaDB:数据库 PHP:脚本语言

2、 操作步骤

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

(1)搭建Docker环境

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

代码语言:javascript复制
uname -r 

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

代码语言:javascript复制
wget https://download.docker.com/linux/static/stable/x86_64/docker-18.09.8.tgz

4 解压到docker目录下

代码语言:javascript复制
tar -zxvf  ./docker-18.09.8.tgz -C /usr/local/ 

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

代码语言:javascript复制
mkdir -p /usr/local/docker/data  

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

代码语言:javascript复制
vim /etc/profile ##

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

代码语言:javascript复制
PATH=$PATH:/usr/local/docker

然后按:wq保退出;

7 刷新配置文件生效

代码语言:javascript复制
source /etc/profile 

8 进入docker目录下

代码语言:javascript复制
cd /usr/local/docker

9 后台运行docker程序

代码语言:javascript复制
./dockerd -g /usr/local/docker/data & 

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

代码语言:javascript复制
docker --version  
(2)部署Mysql(与MariaDB选择一个就行)

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

代码语言:javascript复制
docker search mysql

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

代码语言:javascript复制
docker pull mysql:5.7

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

代码语言:javascript复制
docker images

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

代码语言:javascript复制
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密码;

代码语言:javascript复制
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

代码语言:javascript复制
docker ps
代码语言:javascript复制
docker exec -it efd460899249 bash 

进入bash后 输入:

代码语言:javascript复制
mysql -uroot -p12345678
(3)部署Php环境

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

代码语言:javascript复制
docker search php

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

代码语言:javascript复制
docker pull php:7.3.7-fpm

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

代码语言:javascript复制
docker images

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

代码语言:javascript复制
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 挂载数据卷;

代码语言:javascript复制
docker run -d --name my-php -p 9000:9000 -v /usr/local/nginx/html:/www  php:7.3.7-fpm

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

代码语言:javascript复制
docker ps
(4)部署Nginx

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

代码语言:javascript复制
docker search nginx

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

代码语言:javascript复制
docker pull nginx

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

代码语言:javascript复制
docker images 

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

代码语言:javascript复制
mkdir -p /usr/local/nginx/conf.d

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

代码语言:javascript复制
vim /usr/local/nginx/conf.d/nginx.conf
代码语言:javascript复制
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 ##可以看到运行的容器

代码语言:javascript复制
docker ps

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

代码语言:javascript复制
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应用了

0 人点赞