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
<?php phpinfo(); ?>

[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
    docker-lnmp架构搭建
    以上是我的配置可以参考下
    然后重新启动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文件如下:
    docker-lnmp架构搭建
    docker-lnmp架构搭建