构建镜像举例:
目录结构
# tree
.
├── apps
│ ├── cmake-2.8.4.tar.gz
│ ├── libiconv-1.15.tar.gz
│ ├── mysql-boost-5.7.25.tar.gz
│ └── php-5.6.40.tar.gz
├── conf
│ ├── index.conf
│ ├── my.cnf.57
│ └── nginx.conf
├── Dockerfile_Mysql
├── Dockerfile_Ngxin
└── Dockerfile_PHP
Dockerfile文件:
NGINX
FROM centos
MAINTAINER docker_Nginx
#安装依赖关系
RUN rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
RUN sed -i "s/gpgcheck=1/gpgcheck=0/g" /etc/yum.repos.d/*.repo
RUN yum install -y wget gcc gcc-c++ curl curl-devel openssl openssl-devel pcre
#安装nginx
RUN useradd www
WORKDIR /usr/local/src/
RUN wget http://nginx.org/download/nginx-1.15.9.tar.gz
RUN tar -zxf nginx-1.15.9.tar.gz
WORKDIR /usr/local/src/nginx-1.15.9
RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
RUN make && make install
WORKDIR /usr/local/nginx/conf
RUN mkdir /usr/local/nginx/conf/vhosts
RUN mv nginx.conf nginx.conf
ADD conf/nginx.conf /usr/local/nginx/conf/nginx.conf
ADD conf/index.conf /usr/local/nginx/conf/vhosts/index.conf
#端口映射
EXPOSE 80/tcp
ENV NGINX_HOME /usr/local/nginx
ENV PATH $PATH:$NGINX_HOME/sbin
CMD ["/sbin/init"]
PHP
FROM centos
MAINTAINER docker_PHP
#安装依赖关系
RUN rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
RUN sed -i "s/gpgcheck=1/gpgcheck=0/g" /etc/yum.repos.d/*.repo
RUN yum install -y wget gcc gcc-c++ file autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel gd gd-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel openssl openssl-devel libtool libtool-devel libtool-ltdl-devel c-ares libaio mhash mcrypt libmcrypt-devel bison mariadb
RUN useradd www
#下载软件包
#RUN wget http://php.net/distributions/php-5.6.40.tar.gz -P /usr/local/src/
#RUN wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz -P /usr/local/src/
ADD apps/libiconv-1.15.tar.gz /usr/local/src/
ADD apps/php-5.6.40.tar.gz /usr/local/src/
#安装libiconv
#WORKDIR /usr/local/src/
#RUN tar -zxf libiconv-1.15.tar.gz
WORKDIR /usr/local/src/libiconv-1.15
RUN ./configure --prefix=/usr/local/
RUN make && make install
#安装PHP
#WORKDIR /usr/local/src/
#RUN tar -zxf php-5.6.40.tar.gz
WORKDIR /usr/local/src/php-5.6.40
RUN ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gd --with-freetype-dir --with-jpeg-dir --with-gettext --with-png-dir --with-libxml-dir --with-iconv=/usr/local/ --with-zlib --with-bz2 --with-mcrypt --with-mhash --with-openssl --with-curl --with-pear --enable-mbstring --enable-gd-native-ttf --enable-zip --enable-ftp --enable-sockets --enable-calendar --enable-bcmath --enable-exif --enable-shmop --enable-fpm --with-fpm-user=www --with-fpm-group=www --disable-debug
RUN make && make install
RUN cp sapi/fpm/init.d.php-fpm.in /etc/init.d/php-fpm
RUN chmod +x /etc/init.d/php-fpm
RUN mkdir /usr/local/php/log
RUN chown www.www /usr/local/php/log
WORKDIR /usr/local/php/etc
RUN cp php-fpm.conf.default php-fpm.conf
RUN cp /usr/local/src/php-5.6.40/php.ini-production /usr/local/php/etc/php.ini
RUN sed -i "s/127.0.0.1:9000/0.0.0.0:9000/g" /usr/local/php/etc/php-fpm.conf
#配置环境变量
ENV PHP_HOME /usr/local/php
ENV PATH $PATH:$PHP_HOME/bin:$PHP_HOME/sbin
CMD ["/sbin/init"]
MYSQL
FROM centos
MAINTAINER docker_mysql
#安装依赖关系
RUN rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
RUN sed -i "s/gpgcheck=1/gpgcheck=0/g" /etc/yum.repos.d/*.repo
RUN yum install -y wget gcc gcc-c++ openssl openssl-devel biso ncurses ncurses-devel cmake
#安装Mysql
RUN useradd mysql -s /sbin/nologin
ADD apps/mysql-boost-5.7.25.tar.gz /usr/local/src/
#ADD apps/cmake-2.8.4.tar.gz /usr/local/src
#RUN wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.25.tar.gz -P /usr/local/src/
#WORKDIR /usr/local/src/
#RUN tar -zxf mysql-boot-5.7.25.tar.gz
#INSTALL CMAKE
#WORKDIR /usr/local/src/cmake-2.8.4
#RUN ./configure
#RUN gmake
#RUN make && make install
#INSTALL MYSQL
WORKDIR /usr/local/src/mysql-5.7.25
RUN cmake ./ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DWITH_BOOST=boost
RUN make && make install
RUN mkdir -p /data/mysql/data
RUN mkdir -p /data/mysql/log/binlog
RUN chown mysql.mysql /data/mysql/ -R
RUN cp support-files/mysql.server /etc/init.d/mysqld
RUN chmod +x /etc/init.d/mysqld
ADD conf/my.cnf.57 /etc/my.cnf
RUN /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/data/mysql/data/ --basedir=/usr/local/mysql
ENV MYSQL_HOME /usr/local/mysql
ENV PATH $PATH:$MYSQL_HOME/bin
CMD ["/sbin/init"]
创建镜像命令:
//Dockerfile默认名称
# docker build -t centos/nginx:v1.59 /data/docker/docker_images/lnmp/
//Dockerfile重命名&创建多个镜像
# docker build -t centos/nginx:v1 -t centos/nginx:v2 -f Dockerfile_Ngxin /data/docker/docker_images/lnmp/