一、无优化构建镜像
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
mkdir /mnt/nginx vim DockerfileFROM centos:7RUN yum install -y gcc pcre pcre-devel devel zlib-devel makeADD nginx-1.22.0.tar.gz /mnt/nginxWORKDIR /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 makeRUN make installEXPOSE 80VOLUME ["/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:7RUN yum install -y gcc pcre pcre-devel devel zlib-devel make &> /dev/null && yum clean allADD nginx-1.22.0.tar.gz /mnt/nginxWORKDIR /mnt/nginx/nginx-1.22.0RUN sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gccRUN ./configure --prefix=/usr/local/nginx &> /dev/nullRUN make &> /dev/nullRUN make install &> /dev/nullRUN rm -rf /mnt/nginx/nginx-1.22.0EXPOSE 80VOLUME ["/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:7ADD nginx-1.22.0.tar.gz /mnt/nginxWORKDIR /mnt/nginx/nginx-1.22.0RUN 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.0EXPOSE 80VOLUME ["/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.0RUN 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.0FROM centos:7EXPOSE 80VOLUME ["/usr/local/nginx/html"]COPY --from=build /usr/local/nginx /usr/local/nginxCMD ["/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.gzdocker import debian-7.0-x86-minimal.tar.gz -- debian:v1 生成镜像docker images 查看 |
总结
到此这篇关于docker进阶教程之dockerfile优化镜像大小的文章就介绍到这了,更多相关dockerfile优化镜像大小内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!