客串文章,最初发表在Sighup的博客上,作者Alessandro Lo Manto
2020年底,Kubernetes团队废弃了Docker,并宣布将在2021年底完全取消支持。 这一废弃带来了多种变化,因为使用Docker作为CRI而不是Docker作为OCI,造成了一点混乱。
那么,为什么这么大惊小怪?我们应该继续编写Dockerfiles吗?
在今天的世界里,人们仍然很难理解Docker是什么。似乎公司、容器、镜像和开发者使用的工具之间没有什么区别。 迄今为止,对许多人来说,只有一个词叫 "DOCKER "来指代这一切。
Docker内部的奥秘
Docker是一个用于开发、运输和运行应用程序的开放平台。Docker使你能够将你的应用程序与你的基础设施分开,这样你就可以快速交付软件。
Docker概述中的官方Docker文档
Docker利用了Linux内核和内核的功能。由于独立运行进程,隔离方法很重要。
Docker使用Linux容器(LXC)是因为运行时的后端。随着任务的发展,LXC被改变为containerd。
目前的Docker设置分为:containerd
,用于管理容器,和dockerd
,一个持久的进程守护者,提供来自Docker主机的信息。
被定义为 "容器 "的Docker,只不过是一个与容器互动的用户友好工具。它的创建方式是,每个人都可以安装它,构建容器镜像,从注册表中拉出,并创建、启动和管理容器。这就是为什么Docker成为如此受欢迎的 "容器"。
Kubernetes?它与这一切有什么关系?
为了理解为什么Kubernetes和Docker会一起出名,让我们了解Docker是如何在Kubernetes中整合的,以及开放容器倡议(OCI)和容器运行时接口(CRI)的含义。
什么是OCI?
Kubernetes采用了容器的理念,并不是在一台服务器上运行容器化的应用程序,而是将它们分布在一个集群中。
由于容器的普及,需要有一个开放的图像标准。Docker公司和CoreOS创建了开放容器倡议,其使命是产生标准格式。他们推出了两个具体的标准。
- 对二进制格式的图像的要求。
- 一个描述如何交互和运行容器的规范。OCI维护着一个名为