阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Docker分离环境搭建LNMP并部署Discuz

122次阅读
没有评论

共计 4169 个字符,预计需要花费 11 分钟才能阅读完成。

一、安装 Docker 环境

1、配置 YUM 源
vi /etc/yum.repos.d/CentOS-Base.repo
末行添加
[docker-repo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
2、安装 docker 引擎

yum install -y docker-engine
mkdir /etc/docker/

vi /etc/docker/daemon.json // 配置阿里镜像加速器
{
“registry-mirrors”: [“https://qtid6917.mirror.aliyuncs.com”]
}

systemctl daemon-reload // 重新加载配置
systemctl enable docker     // 开机自启
systemctl start docker  // 启动服务

二、Docker 部署 LNMP-nginx

1、新建 nginx 的工作目录

mkdir nginx
cd nginx

上传 nginx 源码包到工作目录下
2、编辑 dockerfile 文件
vi dockerfile // 编辑 dockerfile
# 基础镜像
FROM centos
MAINTAINER this is nginx <jsh>
# 准备运行环境
RUN yum -y install \
gcc \
make \
pcre-devel \
zlib-devel \
openssl-devel
# 新建账户
RUN useradd -M -s /sbin/nologin nginx
# 添加源码包
ADD nginx-1.13.9 /nginx-1.13.9
# 编译安装
RUN cd /nginx-1.13.9 && ./configure \
–prefix=/usr/local/nginx \
–user=nginx \
–group=nginx \
–with-http_stub_status_module && make && make install
# 重新添加本地修改后的配置文件
ADD nginx.conf /usr/local/nginx/conf/nginx.conf
# 指定工作端口
EXPOSE 80
# 关闭守护进程
RUN echo “daemon off;”>>/usr/local/nginx/conf/nginx.conf
# 开启服务
CMD [“/usr/local/nginx/sbin/nginx”]
3、本地修改 nginx 配置文件

cp nginx-1.13.9/conf/nginx.conf /root/nginx/        // 将源码包中的配置文件加入 ngingx 目录下
vi nginx.conf   // 编辑 nginx 配置文件

….. 默认配置 ……
……
server {
listen 80;
server_name localhost;
#charset koi8-r;

#access_log logs/host.access.log main;

location / {
root /web; #指定网站工作目录
index index.php index.html index.htm; #添加 index.php 格式
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /web;
}
location ~ .php$ {
root /web; #同上修改
fastcgi_pass php:9000; #其中 php 对应运行容器名 php 作用与容器互联
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /web$fastcgi_script_name; #对应改为工作目录
include fastcgi_params;
}
4、最后检查镜像制作的文件
ls nginx // 检查 nginx 工作目录文件
—nginx-1.13.9
—nginx.conf
—dockerfile
5、制作 nginx 镜像文件
docker build -t lnmp/nginx . 生成 nginx 镜像

三、Docker 部署 LNMP-MySQL

1、新建 mysql 工作目录

mkdir mysql
cd mysql

2、编辑 dockerfile 文件
vi dockerfile
# 基础镜像
FROM guyton/centos6
MAINTAINER this is msyql images <chen>
# 安装 mysql
RUN yum -y install mysql mysql-server
# 开启 mysql 并且授权
RUN /etc/init.d/mysqld start &&\
mysql -e “create database bbs;” &&\
mysql -e “grant all privileges on . to ‘root’@’%’ identified by ‘abc123’;” &&\
mysql -e “grant all privileges on . to ‘root’@’localhost’ identified by ‘abc123’;”
# 指定容器内工作端口
EXPOSE 3306
# 开启多线程服务
CMD [“mysqld_safe”]
3、制作 mysql 镜像文件
docker build -t lnmp/mysql . 生成 mysql 镜像

四、Docker 部署 LNMP-php

1、新建 php 工作目录

mkdir php
cd php

上传 php-7.1.10 源码包到工作目录下
2、编辑 php.ini

cp php-7.1.10/php.ini-production /root/nginx/php.ini
vi php.ini

[PHP]下加入指定数据库对接文件
mysqli.default_socket = /var/lib/mysql/mysql.sock
date.timezone = Asia/Shanghai
3、编辑 dockerfile 文件
vi dockerfile
# 基础镜像
FROM centos
MAINTAINER this is php <jsh>
# 安装运行环境
RUN yum -y install \
gcc make \
libjpeg \
libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 \
libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel
# 添加源码包
ADD php-7.1.10 /php-7.1.10
# 编译安装
RUN cd php-7.1.10 && ./configure \
–prefix=/usr/local/php \
–with-mysql-sock=/var/lib/mysql/mysql.sock \
–with-mysqli \
–with-zlib \
–with-curl \
–with-gd \
–with-jpeg-dir \
–with-png-dir \
–with-freetype-dir \
–with-openssl \
–enable-mbstring \
–enable-xml \
–enable-session \
–enable-ftp \
–enable-pdo \
–enable-tokenizer \
–enable-zip \
–enable-fpm && make && make install
# 添加配置文件
ADD php.ini /usr/local/php/lib/php.ini
# 修改 fpm 对应的配置文件
RUN cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf &&\
sed -i ‘s\;pid = run/php-fpm.pid\pid = run/php-fpm.pid\g’ /usr/local/php/etc/php-fpm.conf &&\
sed -i ‘s\;daemonize = yes\daemonize = no\g’ /usr/local/php/etc/php-fpm.conf
# 修改监听端口,否则 nginx 即使做了容器互联也无法解析.php 文件
RUN cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf &&\
sed -i ‘s\127.0.0.1\0.0.0.0\g’ /usr/local/php/etc/php-fpm.d/www.conf
# 新建用户
RUN useradd -M -s /sbin/nologin php
# 指定端口
EXPOSE 9000
开启服务
CMD [“/usr/local/php/sbin/php-fpm”]
4、最后检查镜像制作的文件
ls php // 查看目录
—php-7.1.10
—php.ini
—dockerfile
5、制作 php 镜像文件
docker build -t lnmp/php . 生成 php 镜像

五、按顺序启动对应的镜像

docker images // 查看制作的镜像
Docker 分离环境搭建 LNMP 并部署 Discuz

docker run -d --name mysql -v /var/lib/mysql -p 3306:3306 lnmp/mysql    // 启动 mysql
docker run -d --name php --volumes-from mysql -v /web:/web lnmp/php     // 启动 php
docker run -d --name nginx --link php:php -p 80:80 -v /web/:/web lnmp/nginx // 启动 nginx
docker ps       // 查看容器是否启动

Docker 分离环境搭建 LNMP 并部署 Discuz
注意:以上由于做了数据卷和容器互联,因此一定要按照顺序启动,否则会报错。

六、上传 DISCUZ 项目到 /web 目录下

cp -r dir_SC_UTF8/upload/ /web/bbs  // 将对应的项目复制到 /web 下
cd /web/bbs // 进入项目目录下更改权限
chmod -R 777 ./config/
chmod -R 777 ./data/
chmod -R 777 ./uc_client/
chmod -R 777 ./uc_server/

Web 浏览器访问 192.168.80.100/bbs
Docker 分离环境搭建 LNMP 并部署 Discuz
Docker 分离环境搭建 LNMP 并部署 Discuz
Docker 分离环境搭建 LNMP 并部署 Discuz
Docker 分离环境搭建 LNMP 并部署 Discuz

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计4169字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中