docker-lnmp架构搭建
【docker-lnmp架构搭建】
因公司的业务架构需要,要部署一套docker-lnmp,这边自己之前只是对于docker了解只是一般,在搭建过程中也在网上参考过很多资料,期间也遇见过很多坑,很让人抓狂,多的不说了,这边我直接附上自己的搭建过程
第一步:查看系统版本:
[[email protected] bbs.com]# uname -a
Linux server- 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
注意:内核版本不低于3.10,
升级系统可用:
yum -y update
这边还需要关闭selinux:
临时关闭:
[[email protected] bbs.com]# setenforce 0
永久关闭进入配置文件:
[[email protected] bbs.com]# cat /etc/sysconfig/selinux
SELINUX=disabled
SELINUXTYPE=targeted
第二步:开始安装
(1)下载安装依赖包
yum install -y yum-util device-mapper-persistent-data lvm2
添加yum软件源:
yum-config-manager
–add-repo
https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
(2)更新缓存,安装docker
yum makecache fast
yum install docker-ce
(3)启动docker
systemctl start docker
下面验证是否安装成功:
docker version
docker info
第三步:获取镜像
按照顺序获取镜像,启动容器也一样不然会报错
(1)获取Mysql镜像
docker pull mysql:5.7
(2)启动容器mysql
docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 --name csh_mysql mysql:5.7
命令参数解释:
-d:指定容器运行于后台
-p:指定映射的端口
-e:指定环境变量,后面就是密码和名称
-name:后面跟着容器的名字和获取的镜像
然后接下来就可以进入数据库,命令如下:
- docker start csh_mysql
- docker exec -it csh_mysql /bin/bash
(二)
(1)获取php7镜像
docker pull php:7.0-fpm
(2)创建phpfpm容器
docker run -d -v /data/web-data/bbs.com:/data/web-data/bbs.com -p 9000:9000 --link csh_mysql:mysql --name csh_phpfpm php:7.0-fpm
命令参数解释:
-v:给容器挂载存储卷,指定要挂载的目录
–link: 指定要构成关联的容器,进行连接
接下来就可以启动并进入php容器: - docker start csh_php
- docker exec -it csh_php /bin/bash
在容器里进入到/data/web-data/bbs.com目录,新建一个php文件和html文件
[email protected]:/data/web-data/bbs.com# touch index.php
然后在php文件写入如下内容,用于测试:
[email protected]:/data/web-data/bbs.com# cat index.php
[email protected]:/data/web-data/bbs.com# touch index.html
[email protected]:/data/web-data/bbs.com# cat index.html
123123123
保存退出容器: exit
进入到宿主机看/data/web-data/bbs.com 目录看看有没有index.php文件及相关内容
(3)安装php的扩展
先进入到php容器:
docker exec -it csh_phpfpm /bin/bash
开始安装扩展
docker-php-ext-install pdo_mysql
安装php-redis或者其他的扩展,下载,执行下面这个命令就可以了
pecl install redis && docker-php-ext-enable redis
如果有提问 直接no就好
enable igbinary serializer support? [no] : no
enable lzf compression support? [no] : no
(三)
(1)获取 nginx:1.12 镜像
docker pull nginx:1.12.2
(2)运行nginx容器
docker run -d -v /data/web-data/bbs.com:/data/web-data/bbs.com -p 80:80 --link csh_phpfpm:phpfpm --name csh_nginx nginx:1.12.2
然后进入nginx容器:
- docker start csh_nginx
- docker exec -it csh_nginx /bin/bash
修改容器csh_nginx配置文件:
首先安装vim 命令如下:
apt-get update
apt-get install vim
[email protected]:/# vi /etc/nginx/nginx.conf
以上是我的配置可以参考下
然后重新启动nginx
[[email protected] bbs.com]# docker stop csh_nginx
csh_nginx
[[email protected] bbs.com]# netstat -ntl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::9000 ::???? LISTEN
tcp6 0 0 :::3307 ::???? LISTEN
tcp6 0 0 :::22 ::???? LISTEN
[[email protected] bbs.com]# docker start csh_nginx
csh_nginx
[[email protected] bbs.com]# netstat -ntl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::9000 ::???? LISTEN
tcp6 0 0 :::3307 ::???? LISTEN
tcp6 0 0 :::80 ::???? LISTEN
tcp6 0 0 :::22 ::????
搭建结束
分别测试html文件和php文件如下: