谷歌技术人员解决Docker镜像体积太大问题的方法

2020-06-17 06:55:22易采站长站整理

使用 Bazel的声明式语言: WORKSPACE和 BUILD,开发者可以用文件描述整个构建和部署的环境。谷歌使用 Bazel进行 Docker的构建已经很多年,它为谷歌带来以下收益:

1、支持跨平台构建,分布式缓存,优化依赖解析,并行构建,增量构建。

2、支持多语言(Java, C++, Android, iOS, Go等等)。

3、跨平台。

4、水平扩展和自定义扩展。

Bazel是以下理念的奠基石:由于 Bazel需要所有的依赖都被完整地指定,我们可以预测改动影响了哪些程序和测试,并在提交前执行他们。

谷歌提供的 Distroless镜像构建文件

Distroless (https://github.com/GoogleCloudPlatform/distroless)是谷歌内部使用的镜像构建文件,包括 Java、Node、Python等镜像构建文件,Distroless仅仅只包含运行服务所需要的最小镜像,不包含包管理工具、shell命令行等其他功能。

为什么你需要这些镜像?这些镜像是谷歌和其他大公司的最佳实践的产物,经过了漏洞扫描,镜像会持续更新,保持安全性。

如何使用?Distroless提供的构建镜像的 BUILD文件,通过 Bazel可以直接进行构建。

谷歌为大家介绍了内部如何解决镜像过大的问题,以及进行大规模并发构建、测试所用到的构建工具 Bazel,并且开源了 Docker镜像构建文件 Distroless项目。如果你认为你的镜像也存在体积太大的问题,可以参考谷歌的实践,体验他们的工具。

总结

以上就是本文关于谷歌技术人员解决Docker镜像体积太大问题的方法的全部内容,希望对大家有所帮助。感兴趣的朋友可以可以继续参阅本站:

Docker探索namespace详解

详解Docker使用Linux iptables 和 Interfaces管理容器网络

浅谈Docker安全机制内核安全与容器之间的网络安全

如有不足之处,欢迎留言指出。

您可能感兴趣的文章:docker中修改镜像容器的存放目录的方法在 docker 之间导出导入镜像的方法Docker配置国内加速器加速镜像下载的方法Dockerfile制作官方Tomcat镜像及镜像使用详解详解Docker 国内镜像的配置及使用详解在docker中制作自己的JDK+tomcat镜像如何给Docker配置官方国内加速镜像docker 如何删除none镜像