近期,Kubernetes 官方发布公告,宣布自 v1.20 版本起将停止对 Docker 的支持。届时,用户将收到关于 Docker 被弃用的警告,并需切换至其他容器运行时。然而,Docker 作为容器镜像的构建工具仍将继续发挥作用,用户使用 Docker 构建的容器镜像仍然能够在集群中正常运行,兼容所有容器运行时。

官方指出,Docker 作为一个完整的容器技术栈,在设计之初并未考虑与 Kubernetes 的深度整合。除了作为容器运行时的基本功能外,Docker 还提供了一系列用户交互的功能,这些附加特性对于 Kubernetes 来说显得过于繁琐。
实际上,Docker 不符合 Kubernetes 的容器运行时接口标准(CRI),因此官方不得不维护一个名为 DockerShim 的中间件,以便将 Docker 作为 Kubernetes 的容器运行时使用。因此,官方推荐用户选择符合 CRI 标准的 containerd 或 CRI-O 作为替代 Docker 的容器运行时,并表示将最早在 v1.23 版本中移除 Kubelet 中的 DockerShim。
不过,Kubernetes 官方强调,用户未来仍可以使用 Docker 进行容器镜像的构建。Docker 生成的镜像实际上是符合 OCI(开放容器倡议)标准的镜像。无论使用什么工具构建,只要符合 OCI 标准的镜像在 Kubernetes 中都是可以互通的,containerd 和 CRI-O 也能够提取并运行这些镜像。
业内专家认为,自从 Docker 在容器编排引擎竞争中败给 Kubernetes 以来,这一结果似乎早已注定。
官方声明地址:https://kubernetes.io/blog/2020/12/02/dont-panic-kubernetes-and-docker/
本文标题:Kubernetes 将弃用 Docker
本文地址:https://www.oschina.net/news/122387/k8s-will-abandon-docker
