“「K8S 生态周报」内容主要包含我所接触到的 K8S 生态相关的每周值得推荐的一些信息。欢迎订阅知乎专栏「k8s生态」[1]。
”
大家好,我是张晋涛。
Docker v23.0.0 正式发布
Docker 上一个发布的正式版本是 v20.10 发布于 2020 年的 12 月份,至今已过两年有余。不过其 patch 版本倒是也一直在更新,目前最新的是 v20.10.23 。
作为一个引领了容器化浪潮的基础技术,Docker 经历了每年发多个版本,到每年两个版本,每年一个版本,以及现在这个历经两年才发布了一个正式版本的过程。 这其实也从侧面反映出来了 Docker 的发展。
作为一个真正被用户采用的开源项目,在初期会不断的满足用户需求,并且也不断的有贡献者参与进来,迭代速度相对较快。 但是当大多数需求已经被满足,成为一个基础设施的时候,大多数用户会更加关注于上层的项目,比如 Kubernetes,而逐步放弃对该项目的投入。
加上 Docker 也把自己的底层容器运行时 containerd 和 runc 拆分出来,还有很多其中的模块和通用基础库也都拆分成为了一些独立的项目,这也就使得主仓库更加的专注,活跃度慢慢降低。
同时,过去的两年多时间,Docker 开源项目,及其创办者 Docker Inc. 过的也并不好。
比如 2020 年,它在技术圈内的两度成为(舆论的)焦点。 ,具体信息可以看我之前的文章:
K8S 弃用 Docker 了?Docker 不能用了?别逗了! | MoeLove
和视频:
不过从 2022 年初,Docker Inc. 拿到 C 轮 1.05 亿美金的融资后,展开了多个收购项目和扩充团队,也逐步的让 Docker Inc. 和 Docker 项目回到了正轨。
好了,回到 Docker v23.0.0 版本中,我们一起来看看这个已经跳票两年的版本为我们带来了哪些值得关注的更新吧!
构建系统默认切换到了 BuildKit
Docker 其实在 2017 年就开始着手增加自己的新一代构建引擎 BuildKit 了,并且在 Docker v18.09 中已经可以通过增加 DOCKER_BUILDKIT=1
环境变量的方式来默认启用它了。 后来 Docker Desktop 中也已经将 BuildKit 设置成了默认的构建引擎。
BuildKit 有很多优秀的特性,比如:
它可以在多阶段构建中检测并跳过执行未使用的构建阶段。但是 Docker 旧版本中的 builder 只能按顺序执行 Dockerfile 中的阶段;
并发构建独立的构建阶段,这可以显著提升构建的效率;
在两