DockerFile实践–构建WordPress

2019年8月15日15:09:17 发表评论 97 views
摘要

本文主要是利用wordpres,对之前docker的一个总结,通过自定义镜像的方式,对我们LNMP架构进行部署,中间我们使用dockerfile进行简单的编排,使docker构建变得相当简单,接下来一起动手试试吧,几分钟就能搭建自己专属的博客。

本文主要是利用wordpres,对之前docker的一个总结,通过自定义镜像的方式,对我们LNMP架构进行部署,中间我们使用dockerfile进行简单的编排,使docker构建变得相当简单,接下来一起动手试试吧,几分钟就能搭建自己专属的博客。

一、自定义构建基础镜像

我们这里使用Dockerfile进行创建。

Nginx+PHP+MYSQL

1,构建nginx镜像

FROM centos:7
MAINTAINER www.ctnrs.com
RUN yum install -y gcc gcc-c++ make \
    openssl-devel pcre-devel gd-devel \
    iproute net-tools telnet wget curl && \
    yum clean all && \
    rm -rf /var/cache/yum/*
RUN wget http://nginx.org/download/nginx-1.15.5.tar.gz && \
    tar zxf nginx-1.15.5.tar.gz && \
    cd nginx-1.15.5 && \
    ./configure --prefix=/usr/local/nginx \
    --with-http_ssl_module \
    --with-http_stub_status_module && \
    make -j 4 && make install && \
    rm -rf /usr/local/nginx/html/* && \
    echo "ok" >> /usr/local/nginx/html/status.html && \
    cd / && rm -rf nginx-1.15.5* && \
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

ENV PATH $PATH:/usr/local/nginx/sbin
COPY nginx.conf /usr/local/nginx/conf/nginx.conf
WORKDIR /usr/local/nginx
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

2,构建PHP镜像

这个构建时间长一些

FROM centos:7
MAINTAINER www.dgstack.cn
RUN yum install epel-release -y && \
    yum install -y gcc gcc-c++ make gd-devel libxml2-devel \
    libcurl-devel libjpeg-devel libpng-devel openssl-devel \
    libmcrypt-devel libxslt-devel libtidy-devel autoconf \
    iproute net-tools telnet wget curl && \
    yum clean all && \
    rm -rf /var/cache/yum/*

COPY php-5.6.36.tar.gz /
RUN tar zxf php-5.6.36.tar.gz && \
    cd php-5.6.36 && \
    ./configure --prefix=/usr/local/php \
    --with-config-file-path=/usr/local/php/etc \
    --enable-fpm --enable-opcache \
    --with-mysql --with-mysqli --with-pdo-mysql \
    --with-openssl --with-zlib --with-curl --with-gd \
    --with-jpeg-dir --with-png-dir --with-freetype-dir \
    --enable-mbstring --with-mcrypt --enable-hash && \
    make -j 4 && make install && \
    cp php.ini-production /usr/local/php/etc/php.ini && \
    cp sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf && \
    sed -i "90a \daemonize = no" /usr/local/php/etc/php-fpm.conf && \
    mkdir /usr/local/php/log && \
    cd / && rm -rf php* && \
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

ENV PATH $PATH:/usr/local/php/sbin
COPY php.ini /usr/local/php/etc/
COPY php-fpm.conf /usr/local/php/etc/
WORKDIR /usr/local/php
EXPOSE 9000

百度云dockerfile大礼包链接提取码:e4df

构建基础镜像

docker  build -t nginx:v1 -f Dockerfile-nginx .

docker build -t tomcat:v1 -f Dockerfile-tomcat .

docker build -t php:v1 -f Dockerfile-php .

DockerFile实践--构建Wordpress

二、快速部署LNMP

1,你要知道用哪个镜像
2,镜像到底怎么用
3,wordpres 是php开源软件
4,数据的持久化

1,自定义网络

docker network create dgstack

DockerFile实践--构建Wordpress

2,创建mysql容器

mysql我们直接使用官方源即可。

docker run -d \
--name dg_mysql \
--net dgstack \
--mount src=mysql-vol,dst=/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress mysql:5.7 --character-set-server=utf8
#mysql-vol数据卷不存在自动创建,参数设置不知道的可以去hub.docker.com查看

3,创建php 容器

docker run -d --name lnmp_php --net dgstack --mount src=wwwroot,dst=/wwwroot php:v1

4,创建nginx 容器

docker run -d --name lnmp_nginx --net dgstack -p 88:80 \
--mount type=bind,src=$(pwd)/nginx.conf,dst=/usr/local/nginx/conf/nginx.conf --mount src=wwwroot,dst=/wwwroot nginx:

创建Tomcat 容器

如果你需要tomcat,也可以安装哦

docker run -d \
--name dg-tomcat1 \
-p 8080:8080 \
--net dgstack \
--mount src=tomcat,dst=/usr/local/tomcat/webapps/ROOT/ \
tomcat:v1

#然后上传项目即可
cd /var/lib/docker/volumes/tomcat/_data
rz *.war
unzip -o *.war

5,测试

cd  /var/lib/docker/volumes/wwwroot/_data   #进入数据卷,将项目上传
# 主要测试php与nginx是否能够通信
echo "<?php phpinfo();?>"  > phpinfo.php     #浏览器测试
#下载wordpress
[root@k8s-node2 _data]# wget https://cn.wordpress.org/latest-zh_CN.tar.gz
[root@k8s-node2 _data]# tar -zxvf latest-zh_CN.tar.gz 
[root@k8s-node2 _data]# mv wordpress/* ./

DockerFile实践--构建Wordpress
DockerFile实践--构建Wordpress
DockerFile实践--构建Wordpress
DockerFile实践--构建Wordpress

  • QQ精品交流群
  • weinxin
  • 微信公众号
  • weinxin
admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: