Centos下Docker搭建LNMP环境

Centos下Docker搭建LNMP环境

1. 安装Docker

[1]前提: Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

[root@kewen ~]# uname -r

[2] Docker 软件包和依赖包已经包含在默认的 CentOS-Extras 软件源里,安装命令如下:

[root@kewen ~]# yum -y install docker-io
[root@kewen ~]# service docker start
[root@kewen ~]# docker run hello-world
[root@kewen ~]# docker ps

[3] 镜像加速

鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是网易的镜像地址:http://hub-mirror.c.163.com。

新版的 Docker 使用 /etc/docker/daemon.json(Linux), 网易的镜像中心网址为: https://c.163.com,可以在上面看到各镜像的版本号,选择需要的版本。

请在该配置文件中加入(没有该文件的话,请先建一个):

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

2. 安装Nginx

[1] 首先,创建目录nginx,用于存放后面的相关东西。

[root@kewen ~]# mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf
[root@kewen ~]# touch ~/nginx/conf/nginx.conf (注: 该文件要写好基本配置,不然nginx启动不了)

[2] 拉取nginx镜像,启动nginx

[root@kewen nginx]# docker pull nginx
[root@kewen nginx]# docker run -p 8080:80 --name dk-nginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs  -d nginx

[3] 查看nginx进程和查看nginx响应页面

[root@kewen nginx]# docker ps
[root@kewen nginx]# curl http://127.0.0.1:8080

[4] 如果出现了,docker ps 看不到nginx进程的话,通过以下手段排查, 查看容器的日志, 并确定-v指向的目录或文件存在,特别是$PWD/conf/nginx.conf,里面配置要正确

[root@kewen nginx]# docker logs dk-nginx

3. 安装php-fpm

[1] 创建目录

[root@kewen ~]# mkdir php-fpm
[root@kewen ~]# mkdir -p ~/php-fpm/conf ~/php-fpm/logs
[root@kewen ~]# cd php-fpm

[2] pull php-fpm 镜像,并查看是否安装成功

[root@kewen php-fpm]# docker run -p 9090:9000 --name dk-php-fpm -v /root/nginx/www:/www -v /root/php/conf:/usr/local/etc/php -v /root/php/logs:/phplogs -d php:7.1-fpm
[root@kewen php-fpm]# docker ps

[3] 修改nginx的fastcgi的php-fpm解析ip和端口

[root@kewen nginx]# docker exec -ti dk-nginx /bin/bash
root@3c590147bf6d:/#

[4] 如果发现里面的vi或vim用不了,则必须通过下面的命令安装

root@3c590147bf6d:/# apt-get update
root@3c590147bf6d:/# apt-get install -y vim

[5] 修改/etc/nginx/conf.d/default.conf默认,修改php的解析ip和端口, 设置fastcgi_pass 172.17.0.3:9000

root@3c590147bf6d:/# vim /etc/nginx/conf.d/default.conf
root@3c590147bf6d:/# exit
[root@kewen nginx]# docker restart dk-nginx
[root@kewen nginx]# docker inspect dk-php-fpm |grep '"IPAddress"' (查找容器对应的ip和端口)

[6] 修改内容

server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        fastcgi_pass   172.17.0.3:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /www/$fastcgi_script_name;
        include        fastcgi_params;
    }
}

4.安装 mysql

[1] 创建mysql需要的目录映射

[root@kewen ~]# mkdir mysql
[root@kewen ~]# mkdir -p ~/mysql/conf ~/mysql/logs ~/mysql/data

[2] pull mysql 和 启动mysql

[root@kewen mysql]# docker run -p 6306:3306 --name dk-mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
[root@kewen mysql]# docker ps

完成,一个简单的docker学习过程,记录一下

相关推荐