美文网首页
两个奇技淫巧,将 Docker 镜像体积减小 99%

两个奇技淫巧,将 Docker 镜像体积减小 99%

作者: xiaohei_e853 | 来源:发表于2022-03-18 09:43 被阅读0次

原文链接 Docker 镜像制作教程:减小镜像体积 – 云原生实验室 - Kubernetes|Docker|Istio|Envoy|Hugo|Golang|云原生 (fuckcloudnative.io)

多阶段构建

要想大幅度减少镜像的体积,多阶段构建是必不可少的。多阶段构建的想法很简单:“我不想在最终的镜像中包含一堆 C 或 Go 编译器和整个编译工具链,我只要一个编译好的可执行文件!”

多阶段构建可以由多个 FROM 指令识别,每一个 FROM 语句表示一个新的构建阶段,阶段名称可以用 AS 参数指定,例如:

FROM gcc AS mybuildstage
COPY hello.c .
RUN gcc -o hello hello.c
FROM ubuntu
COPY --from=mybuildstage hello .
CMD ["./hello"]

本例使用基础镜像 gcc 来编译程序 hello.c,然后启动一个新的构建阶段,它以 ubuntu 作为基础镜像,将可执行文件 hello 从上一阶段拷贝到最终的镜像中。最终的镜像大小是 64 MB,比之前的 1.1 GB 减少了 95%:


 docker images minimage
REPOSITORY          TAG                    ...         SIZE
minimage            hello-c.gcc            ...         1.14GB
minimage            hello-c.gcc.ubuntu     ...         64.2MB

相关文章

网友评论

      本文标题:两个奇技淫巧,将 Docker 镜像体积减小 99%

      本文链接:https://www.haomeiwen.com/subject/kazmdrtx.html