FROM centos:7
MAINTAINER swift
RUN yum install -y gcc gcc-c++ make openssl-devel pcre-develnstall git wget lrzsz vim libxml2 libxml2-devel openssl curl curl-devel libjpeg-turbo libjpeg-turbo-devel libpng-devel libpng freetype-devel freetype icu libicu-devel libicu libmcrypt libmcrypt-devel libxslt libxslt-devel php-mysql && \
yum provides "*/applydeltarpm" && \
yum install deltarpm -y && \
yum clean all && \
groupadd -f www && \
useradd -g www -s /usr/sbin/nologin www && \
cd /usr/local/src/ && \
wget http://nginx.org/download/nginx-1.14.0.tar.gz && \
tar zxvf nginx-1.14.0.tar.gz && \
cd /usr/local/src/nginx-1.14.0 && \
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --with-http_realip_module && \
make && make install && \
rm -rf /usr/local/src/nginx-1.14.0*
EXPOSE 80
CMD ["/usr/local/nginx/sbin/nginx", "-g", "daemon off;"]
或者
FROM centos:7
MAINTAINER swift
RUN yum -y install epel-release && \
rpm -ivh https://centos6.iuscommunity.org/ius-release.rpm && \
yum install -y git2u && \
yum -y groupinstall "Development Tools" && \
yum -y install wget lrzsz vim libxml2 libxml2-devel openssl openssl-devel curl curl-devel libjpeg-turbo libjpeg-turbo-devel libpng-devel libpng freetype-devel freetype icu libicu-devel libicu libmcrypt libmcrypt-devel libxslt libxslt-devel php-mysql pcre-devel libtool zlib-devel gcc gcc-c++ && \
yum clean all && \
groupadd -f www && \
useradd -g www -s /usr/sbin/nologin www && \
RUN cd /usr/local/src/ && \
wget http://nginx.org/download/nginx-1.14.0.tar.gz && \
wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz && \
wget https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/master.tar.gz && \
wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.4.8.tar.gz && \
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz && \
wget https://src.fedoraproject.org/lookaside/pkgs/jemalloc/jemalloc-4.5.0.tar.bz2/sha512/76953363fe1007952232220afa1a91da4c1c33c02369b5ad239d8dd1d0792141197c15e8489a8f4cd301b08494e65cadd8ecd34d025cb0285700dd78d7248821/jemalloc-4.5.0.tar.bz2 && \
wget https://ftp.openssl.org/source/old/1.0.2/openssl-1.0.2.tar.gz && \
tar zxvf openssl-1.0.2.tar.gz && tar xjf jemalloc-4.5.0.tar.bz2 && tar zxvf nginx-1.14.0.tar.gz && tar zxvf ngx_cache_purge-2.3.tar.gz && tar zxvf master.tar.gz && tar zxvf GeoIP-1.4.8.tar.gz && gunzip GeoIP.dat.gz && \
mv nginx-goodies-nginx-sticky-module-ng-08a395c66e42/ nginx-sticky-module/ && \
cd /usr/local/src/GeoIP-1.4.8 && \
./configure && \
make -j 4 && make install \
cd /usr/local/src/jemalloc-4.5.0 && \
./configure --prefix=/usr/local/jemalloc && \
make -j 4 && make install && \
echo '/usr/local/lib' >> /etc/ld.so.conf.d/local.conf && \
echo /usr/local/jemalloc/lib >> /etc/ld.so.conf && \
ldconfig && \
cd /usr/local/src/nginx-1.14.0 && \
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --with-ld-opt="-L/usr/local/jemalloc/lib -ljemalloc" --with-openssl=/usr/local/src/openssl-1.0.2 --add-module=/usr/local/src/nginx-sticky-module --add-module=/usr/local/src/ngx_cache_purge-2.3 --with-http_geoip_module --with-http_realip_module && \
make && make insall
EXPOSE 80
CMD ["/usr/local/nginx/sbin/nginx", "-g", "daemon off;"]
1 查看镜像
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.184.130:5000/lnmp-7-nginx14 base b78ae1e6fedd 3 hours ago 454MB
2 镜像上传到私有仓库
docker push 192.168.184.130:5000/lnmp-7-nginx14:base
3 运行镜像测试
docker run -d -p 80:80 --name nginx-test 192.168.184.130:5000/lnmp-7-nginx14:base
4 访问测试
[root@node1 nginx]# curl -I 127.0.0.1
HTTP/1.1 200 OK
Server: nginx/1.14.0
Date: Fri, 31 May 2019 08:14:09 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Fri, 31 May 2019 05:32:12 GMT
Connection: keep-alive
ETag: "5cf0bc5c-264"
Accept-Ranges: bytes