一、安装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.pidpid = run/php-fpm.pidg’ /usr/local/php/etc/php-fpm.conf &&
sed -i ‘s;daemonize = yesdaemonize = nog’ /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 ‘s127.0.0.1 .0.0.0g’ /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