千家信息网

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

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,一、安装Docker环境1、配置YUM源vi /etc/yum.repos.d/CentOS-Base.repo末行添加[docker-repo]name=Docker Repositorybaseu
千家信息网最后更新 2026年10月31日Docker分离环境搭建LNMP并部署Discuz

一、安装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-enginemkdir /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 nginxcd nginx

上传nginx源码包到工作目录下
2、编辑dockerfile文件
vi dockerfile //编辑dockerfile
#基础镜像
FROM centos
MAINTAINER this is nginx
#准备运行环境
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 mysqlcd mysql

2、编辑dockerfile文件
vi dockerfile
#基础镜像
FROM guyton/centos6
MAINTAINER this is msyql images
#安装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 phpcd php

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

cp php-7.1.10/php.ini-production /root/nginx/php.inivi 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
#安装运行环境
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 run -d --name mysql -v /var/lib/mysql -p 3306:3306 lnmp/mysql    //启动mysqldocker run -d --name php --volumes-from mysql -v /web:/web lnmp/php     //启动phpdocker run -d --name nginx --link php:php -p 80:80 -v /web/:/web lnmp/nginx //启动nginxdocker ps       //查看容器是否启动


注意:以上由于做了数据卷和容器互联,因此一定要按照顺序启动,否则会报错。

六、上传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



文件 镜像 目录 工作 配置 容器 制作 源码 端口 服务 环境 基础 项目 互联 检查 生成 运行 数据 顺序 编译 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 咖啡 广州百单互联网科技有限公司 互联网 科技公司 北京互联网科技有限公司 以房互联网科技 互联网科技美容 济南和联互联网科技有限公司 安控科技rtu产品工业互联网 哈尔滨新华互联网科技学院 消费医药和互联网科技 互联网公司黑科技创始人 佛山市翊博互联网络科技有限公司 科技赋能视角下互联网保险发展 互联网科技快讯热点 江苏互联网科技小贷 互联网科技和医药行业 安徽零酒互联网科技有限公司 承德科技产业互联网平台 知域互联网科技有限公司官网 利用互联网等科技手段 百单网互联网科技有限公司 金融科技还是互联网 互联网科技与金融科技 哈尔滨秒房互联网科技有限公司 佛山市翊博互联网络科技有限公司 群盈汇互联网科技有限公司 图游互联网科技 唐山双旺合互联网科技产业园 华人运通互联网科技公司 重庆科技产业互联网有哪些
0