目录
一、无优化构建镜像
[root@docker ~]#mkdir /mnt/nginx
[root@docker ~]#cd /mnt/nginx/
[root@docker nginx]#vim Dockerfile
FROM centos:7
RUN yum install -y gcc pcre pcre-devel devel zlib-devel make
ADD nginx-1.22.0.tar.gz /mnt/nginx
WORKDIR /mnt/nginx/nginx-1.22.0
#关闭debug日志
RUN sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc
RUN ./configure --prefix=/usr/local/nginx
RUN make
RUN make install
EXPOSE 80
VOLUME ["/usr/local/nginx/html"]
CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]
[root@docker nginx]#docker build -t nginx:v1 .
#构建镜像
[root@docker nginx]#docker images #查看大小
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx v1 61893d48f2cf 6 minutes ago 469MB
二、不需要输出的指令丢入/dev/null
[root@docker ~]#mkdir /mnt/nginx
[root@docker ~]#cd /mnt/nginx/
[root@docker nginx]#rz -E
rz waiting to receive.
[root@docker nginx]#ls
nginx-1.22.0.tar.gz
[root@docker nginx]#vim Dockerfile
FROM centos:7
RUN yum install -y gcc pcre pcre-devel devel zlib-devel make &> /dev/null && yum clean all
ADD nginx-1.22.0.tar.gz /mnt/nginx
WORKDIR /mnt/nginx/nginx-1.22.0
RUN sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc
RUN ./configure --prefix=/usr/local/nginx &> /dev/null
RUN make &> /dev/null
RUN make install &> /dev/null
RUN rm -rf /mnt/nginx/nginx-1.22.0
EXPOSE 80
VOLUME ["/usr/local/nginx/html"]
CMD ["/usr/local/nginx/sbin/nginx""-g","daemon off;"]
[root@docker nginx]#docker build -t nginx:v2 .
#构建镜像
[root@docker nginx]#docker images #查看大小对比发现减少了100多MB
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx v2 fd74f489dc08 About a minute ago 311MB
三、减少RUN构建
[root@docker nginx]#vim Dockerfile
FROM centos:7
ADD nginx-1.22.0.tar.gz /mnt/nginx
WORKDIR /mnt/nginx/nginx-1.22.0
RUN yum install -y gcc pcre pcre-devel devel zlib-devel make &> /dev/null && \
yum clean all && \
sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && \
./configure --prefix=/usr/local/nginx &> /dev/null && \
make &> /dev/null && make install &> /dev/null &&\
rm -rf /mnt/nginx/nginx-1.22.0
EXPOSE 80
VOLUME ["/usr/local/nginx/html"]
CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]
[root@docker nginx]#docker build -t nginx:v3 .
#构建镜像
[root@docker nginx]#docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx v3 2247fd0e7f54 About a minute ago 309MB
nginx v2 fd74f489dc08 11 minutes ago 311MB
四、多阶段构建
[root@docker nginx]#vim Dockerfile
FROM centos:7 as build
ADD nginx-1.22.0.tar.gz /mnt/nginx
WORKDIR /mnt/nginx/nginx-1.22.0
RUN yum install -y gcc pcre pcre-devel devel zlib-devel make &> /dev/null && \
yum clean all &&\
sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && \
./configure --prefix=/usr/local/nginx &> /dev/null && \
make &>/dev/null && \
make install &>/dev/null && \
rm -rf /mnt/nginx/nginx-1.22.0
FROM centos:7
EXPOSE 80
VOLUME ["/usr/local/nginx/html"]
COPY --from=build /usr/local/nginx /usr/local/nginx
CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]
[root@docker nginx]#docker build -t nginx:v4 .
#构建镜像
[root@docker nginx]#docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx v4 39550a9162bc 11 minutes ago 205MB
nginx v3 2247fd0e7f54 19 minutes ago 309MB
nginx v2 fd74f489dc08 28 minutes ago 311MB