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-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 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       //查看容器是否启动


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

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



原文地址:https://blog.51cto.com/13871362/2354010

时间: 2024-10-08 21:31:52

Docker分离环境搭建LNMP并部署Discuz的相关文章

centos7.3搭建LNMP并部署wordpress站点

centos7.3搭建LNMP并部署wordpress站点 一.拓扑图 二.准备工作: 1.三台独立主机(虚拟机) nginx:10.0.0.11 php-fpm:10.0.0.2 mariadb:10.0.0.13 准备好yum环境(推荐阿里云yum源,请百度搜索) 2.相关的软件包准备 10.0.0.11(nginx) yum install nginx -y 10.0.0.2(php-fpm) yum install php-fpm php-mysql  php-mbstring php-

Docker Swarm 环境搭建

Docker Swarm 环境搭建 swarm 使用前提 1.Docker版本1.12+ Docker升级教程:https://www.cnblogs.com/xiangsikai/p/9935894.html 2.集群节点之间保证如下端口通信: TCP 2377(管理节点与集群模式的通信manager与worker) TCP/UDP 7946(节点之前其他数据的传输) UDP 4789(overlay网络通信) 节点规划 系统:Centos 7.4 x64 应用版本:Docker 18.09.

学习环境搭建&lt;一&gt;批量部署,无人值守,部署salt master/minion

%新人自学的,肯定有不对的地方,指出来大家共同学习% 准备: rhel-server-6.4-x86_64-dvd.iso salt.tar.gz 第一步: 准备一台服务器,用以管理其他服务器 system---→       rhel-server-6.4-x86_64-dvd.iso ip---→                20.10.10.111 hostname----→  admin.black.com 配置好yum源 mkdir /iso mount /dev/cdrom /is

如何使用mysql(lamp)分离环境搭建dedecms织梦网站及apache服务器常见的403http状态码及其解决方法

一.实验环境 centos6.5+mysql5.5.32+php5.3.27 软件:DedeCMS-V5.7-GBK-SP1 本实验是使用lamp环境搭建,但mysql数据库与之分离,本实验成功的关键在于防火墙及其selinux关闭的前提下实现. 二.实验步骤 1)下载产品,并解压至www目录内 wget -O /home/chen/tools/  http://updatenew.dedecms.com/base-v57/package/DedeCMS-V5.7-GBK-SP1.tar.gz

阿里云ECS+CentOS 7.0+Docker+Redmine环境搭建

前言 搭建Redmine环境可以选择使用分别安装Ruby+Rails+Redmine+MySQL的方式, 但是过程中需要解决各种扰人的依赖问题.Docker为我们提供的Plan B,方便,快捷. 安装环境 当然可以选择Ruby+Rails+Redmine+MySQL的安装方式,请参考: http://www.jyguagua.com/?p=2026 阿里云ECS安装 因为是实际生产需要,所以,直接购买阿里云的ECS. 安装和使用方法参考: https://bbs.aliyun.com/read/

docker compose环境搭建

概述 Docker Compose提供一个简单的基于YAML配置语言,用于描述和组装多容器的分布式应用. 使用docker定义和运行复杂的应用,使用compose,可以在一个文件里,定义多容器的应用.只需要三步即可完成一个应用的创建. Dockerfile定义app的运行环境 docker-compose.yml定义组成app的services run docker-compose up 环境搭建 系统:ubuntu 14.04 curl -L https://github.com/docker

CentOS+Nginx+Tomcat+Mysql+PHP 环境搭建及系统部署

==============安装centos 7.0=======================选择最小安装,将相关的"调试工具"."兼容性程序库"."开发工具"选中.此操作是为了减少后期安装或编译相关服务时出现依赖.或环境的问题.硬盘分区,可根据个人的习惯而定,不清楚的可以直接选择系统自动分区,由于个人的习惯,本人的分区如下,仅供参考:/boot 500M 用于启动Linux的核心文件swap 5120M(5G) Linux下的交换分区,又称

appium使用教程(一 环境搭建)-------------2.安装部署

1)      安装appium     2)      SDK(不建议使用模拟器,占用内存很大,会造成机器卡顿.另外模拟器还存在兼容性问题:pc为x86架构,绝大多数的手机都是ARM架构,app的兼容性会有问题) 官方下载地址https://android-sdk.en.softonic.com/ 安装完成后截图:   安装模拟器(使用真机跳过这一步)     启动模拟器(使用真机跳过这一步)     先新建模拟器,再启动模拟器 3)      检查appium环境 a.进入D:\Progra

OA环境搭建及项目部署

创建虚拟机Windows Server 2003 安装准备:Jdk安装包,Tomcat服务器安装,Mysql安装包,oa数据开发包 将下图文件共享至需要搭建OA环境的操作系统中 一.    JDK的安装 1.双击桌面jdk安装图标 点击我接受条款 更改JDK安装路径,在C盘根目录下建立java文件夹,点击下一步 2.再次点击下一步,出现如下安装页面,点击下一步 3.语言无需更改,点击下一步 4.继续点击下一步,安装完成. 5.为了在任何命令下都能对源文件进行编译,需要设置环境变量 6.点击 "新