一、无优化构建镜像
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
mkdir /mnt/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;" ] |
二、不需要输出的指令丢入/dev/null
1
2
3
4
5
6
7
8
9
10
11
12
|
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;" ] |
三、减少RUN构建
1
2
3
4
5
6
7
8
9
10
11
12
|
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;" ] |
docker build -t nginx:v3 . 构建镜像
docker images查看镜像
四、多阶段构建
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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;" ] |
1
2
|
docker build -t nginx:v4 . 构建镜像 docker images查看镜像 |
五、使用更为轻量级的linux发行版本
debian
alpine
apt add
Sandbox
Busybox
1
2
3
4
|
#下载debian压缩包 wget http: //download .openvz.org /template/precreated/debian-7 .0-x86-minimal. tar .gz docker import debian-7.0-x86-minimal. tar .gz -- debian:v1 生成镜像 docker images 查看 |
总结
到此这篇关于docker进阶教程之dockerfile优化镜像大小的文章就介绍到这了,更多相关dockerfile优化镜像大小内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!