专业的编程技术博客社区

网站首页 > 博客文章 正文

5个Docker Desktop的替代方案

baijin 2024-12-27 15:42:34 博客文章 5 ℃ 0 评论

对于Windows和MacOS用户来说,Docker Desktop多年来一直是使用Docker Containers的主要方式。虽然对于业余爱好者和小型开发团队来说,它仍然是一个可行的、可用的选择,但最近针对较大用户群的价格变化使人们开始寻找替代品。我自己并不打算取代Docker Desktop,但我有兴趣尝试替代方案,相互比较一下看看它们之间的效果如何。

技术簇

Containers本身并不是一个新的技术概念,但Docker早在2000年中期就普及了这一概念,并在正确的时间以正确的方式进行营销,使这一概念成为主流。

把Docker公司和Docker项目区分开来是很有必要的,因为大多数都很容易把它们混淆,它们是不同的实体。由于这种混淆,Docker公司重新命名并开源了许多与容器有关的技术,促成了现在的 "开放容器计划"(Open Container Initiative, OCI)。

1. Podman(波特曼)

Podman可能是最受欢迎的替代方案,许多来自红帽的贡献者都参与了项目的研发。由于红帽似乎正在计划Podman的商业版本,因此也可以说它是一个 "红帽项目"。

它可用于Windows、macOS和Linux,像这里介绍的许多其他工具一样,遵循与Docker类似的语法,但需要注意以下两点:

1. 默认情况下,你使用podman而不是Docker,但你可以创建一个别名。

2. Docker Desktop默认假设你想使用来自Docker中心的容器镜像,而所有其他替代方案都不做这种假设。这意味着你需要指定你可能经常使用的许多镜像的完整路径,例如,"docker.io/library/busybox"。

Podman与本文介绍的其他替代品(包括Docker Desktop)的主要区别之一是daemonless(无守护进程)。这意味着每个运行中的容器都是作为自己的运行进程运行的,而不是通过一个守护程序。如果Docker守护进程失败,所有运行中的容器都会失败,而在Podman中,只有单个容器会失败。也就是说,我个人从未遇到过Docker守护进程失败的情况,但我没有运行生产工作负载。

像这里的所有其他工具一样,Podman第一次运行时需要在macOS和Windows上创建一个虚拟机来承载容器。在macOS和Windows上,这并不总是必要的,但可以最大限度提高的跨平台(架构)兼容性。Podman使用Fedora CoreOS(又是红帽的关系)和QEMU来运行虚拟机。

Podman desktop

Podman的图形伙伴是Podman Desktop,但在理论上它应该列出由其他runtimes创建的图像和容器。像许多其他图形工具一样,它也增加了与Kubernetes互动的功能。它提供了与Docker Desktop类似的功能,比如:没有遵循任何标准的功能-扩展,但却没有Docker Desktop那么精致,缺乏Docker Desktop提供的一些特定的操作系统功能。

2. Colima(科里马)

仅适用于Linux和macOS,Colima使用Lima在macOS上启用Linux虚拟机。它支持Docker、Containerd和Kubernetes的runtimes,在所有情况下,你需要在Colima旁边安装该运行时。就MacOS上的Docker而言,这与Docker Desktop不完全相同。

尽管Colima使用起来很简单,但你仍然需要在它旁边安装一个runtime,这让我想知道 "Colima是什么?",而且说实话,它所拥有的最小的文档并没有使人更加清晰的理解它。它的口号是 "在macOS(和Linux)上以最小的设置实现容器runtimes",但这仍然没有向我说明为什么我需要它。就我所知,主要原因是使用containerd或作为Kubernetes后端(而不是Docker Dkestop、minikube等),也许支持Docker的主要原因是向下兼容。

3. Rancher desktop

虽然Rancher Desktop主要是作为Kubernetes管理工具,但它也提供Kubernetes之外的一些容器管理功能。它支持使用containerd或Docker运行的容器,并提供与本列表中其他图形化工具相同的大部分功能。同样,QEMU提供了一切运行的虚拟机,没有选项可以改变。它是一个完美的工具,也是更成熟的替代品之一,但我倾向于发现,当你做出改变时,它需要经常重启和重置虚拟机,这变得有点乏味。

4. VMWare Fusion

如果你已经使用VMWare Fusion来运行Windows和Linux虚拟机,它也支持容器。然而,该功能目前只适用于基于英特尔的Mac,尽管安装程序仍在安装CLI工具并给你带来虚假的希望。

5. Parallels

同样,如果你已经拥有并使用Parallels Desktop用于Linux和Windows虚拟机,那么你可以把它作为minikube的后台,它主要针对Kubernetes的使用,但它与容器相关,所以我把它作为一种选择。

我的采取方案

目前,作为一个个人贡献者,我对Docker Desktop很满意,我喜欢它提供的额外功能,以实现与主机操作系统的更高性能和无缝集成。

如果有什么变化使像我这样的人也失去动力,那么我很可能会转而使用Podman,也许会使用Podman Desktop,这将取决于项目当时的状态。各位读者你们的抉择是怎么样的呢?欢迎留下你们宝贵的评论!

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表