之后会弹出一个菜单,输入2选择Some Useful Tools,然后输入18选择安装docker和compose。
编写Dockerfile
clone以上在阿里云Kelude创建的Dockerfile镜像到本地,在此项目中创建centos.bz,然后在centos.bz目录分别创建mysql,nginx,php目录,用于存放它们各自Dockerfile及配置文件。
这里我们还约定以下目录:
/home/docker/nginx/logs/centos.bz:存放www.centos.bz网站的日志
/home/docker/nginx/www/centos.bz: 存放www.centos.bz网站的文件
/home/docker/php: 存放php-fpm的日志
/home/docker/mysql:mysql data目录
nginx Dockerfile
在nginx目录创建Dockerfile文件,写入如下内容:
# 从debian:jessie镜像基础上安装nginx
FROM debian:jessie# 声明此Dockerfile维护者的邮箱,有什么问题可以发到此邮件寻问
LABEL maintainer "admin@centos.bz"
# 定义软件版本及编译工具变量
ENV NGINX_VERSION 1.10.3
ENV OPENSSL_VERSION 1.0.2h
ENV ZLIB_VERSION 1.2.11
ENV PCRE_VERSION 8.40
ENV CONCAT_VERSION 1.2.2
ENV BUILD_TOOLS wget gcc make g++
ENV SRC_DIR /opt/nginx
# 切换到工作目录
WORKDIR ${SRC_DIR}
# 开始编译nginx,我们这里使用编译安装nginx而不是使用官方提供的nginx镜像是因为这里使用到了第三方的concat模块,只能编译了。
# 把所有的安装命令都写在一个RUN指令中是因为这样可以减小镜像层数,缩减镜像大小。推荐使用反斜杠和&&把所有的安装命令放置到一行中。
RUN apt-get update
&& apt-get -y --no-install-recommends install ca-certificates ${BUILD_TOOLS}
&& wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz
&& wget https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz
&& wget http://www.zlib.net/zlib-${ZLIB_VERSION}.tar.gz
&& wget https://ftp.pcre.org/pub/pcre/pcre-${PCRE_VERSION}.tar.gz
&& wget https://github.com/alibaba/nginx-http-concat/archive/${CONCAT_VERSION}.tar.gz -O nginx-http-concat-${CONCAT_VERSION}.tar.gz
&& tar xf nginx-${NGINX_VERSION}.tar.gz
&& tar xf openssl-${OPENSSL_VERSION}.tar.gz
&& tar xf zlib-${ZLIB_VERSION}.tar.gz
&& tar xf pcre-${PCRE_VERSION}.tar.gz
&& tar xf nginx-http-concat-${CONCAT_VERSION}.tar.gz
&& cd nginx-${NGINX_VERSION}
&& ./configure --prefix=/usr/local/nginx --with-pcre=../pcre-${PCRE_VERSION}
--with-zlib=../zlib-${ZLIB_VERSION}
--with-http_ssl_module
--with-openssl=../openssl-${OPENSSL_VERSION}
--add-module=../nginx-http-concat-${CONCAT_VERSION}
&& make -j$(nproc)
&& make install
&& rm -rf ${SRC_DIR}
&& apt-get purge -y --auto-remove ${BUILD_TOOLS}










