前言
本文为本人学习过程中搜集网络资料并自行实验操作所得,中间可能基于个人配置会有部分误差,欢迎一起学习探讨、共同攀登进步。
一、基本架构、环境
服务器 | IP地址 | 所需软件包 | 所需配置文件 |
---|---|---|---|
宿主机 | 192.168.233.20 | couchbase/centos7-systemd镜像、docker容器 | |
nginx容器 | 172.17.0.2 | nginx-1.12.0.tar.gz、Discuz_X3.3_SC_UTF8.zip | Dockerfile、nginx.conf |
mysql容器 | 172.17.0.3 | mysql-boost-5.7.20.tar.gz | Dockerfile、my.cnf |
php容器 | 172.17.0.4 | php-7.1.10.tar.bz2 | Dockerfile、php.ini、php-fpm.conf、www.conf |
二、实验步骤
2.1 宿主机环境搭建
#关闭防火墙
[root@goodwood ~]# setenforce 0
#安装docker并启动
[root@goodwood ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@goodwood ~]# yum install -y docker-ce
[root@goodwood ~]# systemctl enable docker
#修改国内源仓库
[root@goodwood ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://i4gs4xxq.mirror.aliyuncs.com"]
}
#获取centos7镜像源
[root@goodwood ~]# docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos DEPRECATED; The official build of CentOS. 7573 [OK]
kasmweb/centos-7-desktop CentOS 7 desktop for Kasm Workspaces 36
bitnami/centos-base-buildpack Centos base compilation image 0 [OK]
bitnami/centos-extras-base 0
couchbase/centos7-systemd centos7-systemd images with additional debug… 7 [OK]
continuumio/centos5_gcc5_base 3
[root@goodwood ~]# docker pull couchbase/centos7-systemd
[root@goodwood ~]# mkdir -p {nginx,mysql,php}_lnmp
2.2 创建nginx容器
[root@goodwood ~]# cd /root/nginx_lnmp
#通过rz命令从本地获取nginx-1.16.0.tar.gz Discuz_X3.3_SC_UTF8.zip源码包
#编写Dockerfile配置文件
[root@goodwood nginx_lnmp]# vim Dockerfile
FROM couchbase/centos7-systemd #指定基础镜像
RUN yum install -y pcre-devel zlib-devel gcc gcc-c++ make;useradd -M -s /sbin/nologin nginx #安装依赖
ADD nginx-1.16.0.tar.gz /usr/local/src/ #获取并解压nginx源码包
WORKDIR /usr/local/src/nginx-1.16.0 #指定工作目录,类似cd
RUN ./configure \ #配置编译安装
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module;make -j 2 && make install
ENV PATH /usr/local/nginx/sbin:$PATH #设置优化nginx命令路径
ADD nginx.conf /usr/local/nginx/conf/ #获取nginx配置文件
ADD Discuz_X3.3_SC