网站首页 > 教程文章 正文
对于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,这将取决于项目当时的状态。各位读者你们的抉择是怎么样的呢?欢迎留下你们宝贵的评论!
猜你喜欢
- 2025-08-06 攀登云巅 | 誉天云计算学员备考的实战心得与成长感悟
- 2025-08-06 CodeSpirit 开发环境搭建指南
- 2025-08-06 如何将Docker镜像从1.16GB瘦身到162MB?
- 2025-08-06 颜值爆表、实力超群!这款免费开源团队沟通工具千万别错过
- 2025-08-06 虚拟化与Docker容器之争
- 2025-08-06 在Ubuntu Linux上安装Minikube以便于Kubernetes开发
- 2025-08-06 M1和Docker谈了个恋爱!对于M1和Docker的爱情你们怎么看?
- 2025-08-06 Linux高级云计算教程
- 2025-08-06 Docker和Kubernetes配置安全基线检查工具vesta
- 2025-08-06 KUBERNETES超越RBAC – 通过WEBHOOK自定义授权
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- mybatis plus page (35)
- vue @scroll (38)
- 堆栈区别 (33)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)
- redis aof rdb 区别 (33)
- 302跳转 (33)
- http method (35)
- js array splice (33)