白癜风怎么治 http://baidianfeng.39.net/a_kycg/160210/4769980.html在容器的远古时期(大约4年前),Docker是容器游戏中仅有的参与者。但是现在情况不一样了,Docker不再是唯一的一个了,只是另一个容器引擎而已。Docker允许我们构建,运行,拉取,上传,查看容器镜像,但是对每一项任务都有其他可以比Docker做得更好的工具。因此,让我们看看现在的情况,卸载(只是可能)并且忘记Docker的全部信息。
01
—
不过,为什么不使用Docker?
如果你是一名Docker的老鸟,我想即使考虑使用不同的工具,也需要一些说服自己的理由。那么,理由就在这里:
首先,Docker是一个尝试做所有事情的工具,通常来说这并不是最好的方式。大多数情况下,最好选择一种专门只做一件事,并且能把这件事做得非常好的工具。
如果你担心切换到不同的工具后,不得不学着使用不同的CLI,不同的API或者通常不太一样的概念,那么这不会成为一个问题。选择接下来文章中的任何工具都是完全无缝的,因为它们(包括Docker)都遵循了OCI(OpenContainerInitiative)的相同规范。这个规范中包含了容器的运行时,分布式,镜像,涵盖了容器需要的所有特性。
由于OCI的存在,你可以选择一套最适合你的工具集,与此同时,仍然可以使用相同的API和CLI命令,就像Docker一样。
所以,如果你想尝试新的工具,接下来我们比较一下Docker和它的竞争对手都有哪些优缺点和特性,看看是不是有必要考虑放弃Docker,而使用一些新的亮瞎眼的工具。
02
—
容器引擎
在比较Docker和其他亮瞎眼的工具时,我们需要将其分解为组件。首先我们要讨论的是容器引擎。容器引擎是一种可以提供操作镜像和容器用户接口的一种工具,有了它你就不需要处理SECCOMP机制或者SELinux策略等一系列的事情。它的工作还包括从远程仓库中拉取镜像并将其扩展到硬盘。它看起来也运行容器,但实际上它的工作是创建容器清单和带有镜像层的目录。然后将他们传递到容器运行时,就像runc或crun(稍后讨论)。
现在有许多可用的容器引擎,但Docker众多的竞争中最突出的是RedHat开发的Podman。和Docker不同的是,Podman不需要守护进程来运行,也不需要root权限,这是Docker长期以来