基于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
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应用了