Docker Desktop收费后,这三款替代方案实测对比

2023年8月,Docker公司宣布调整订阅政策。个人用户依然免费,但大型企业(员工超250人或年收入超1000万美元)必须付费使用Docker Desktop,每人每年最低5美元。

消息一出,技术圈炸了锅。很多团队开始寻找替代方案。毕竟这笔账算下来,一个100人团队每年要花5000美元,折合人民币3.6万。

我花了三天时间,实测了三款主流替代品:Podman、Rancher Desktop和Colima。这篇文章只说真实体验,不吹不黑。

Podman:命令习惯几乎不用改

Podman由红帽开发,最大卖点是兼容Docker CLI。你可以在终端直接输入alias docker=podman,然后继续用docker psdocker run这些老命令。

实测下来,Podman在Linux上表现最好。我在Ubuntu 22.04上安装,一条sudo apt install podman搞定。启动一个Nginx容器,从拉取镜像到访问localhost:8080,耗时42秒,和Docker Desktop差不多。

但Mac用户要小心。Podman在macOS上需要启动一个虚拟机(通过Podman Machine),这个虚拟机基于Fedora,默认分配2GB内存。我跑一个Node.js应用加一个PostgreSQL,内存直接飙到85%。手动调整到4GB后才稳定。

痛点也有。Podman默认使用rootless模式,好处是安全,坏处是端口映射偶尔会失败。我试过podman run -p 8080:80 nginx,浏览器死活打不开。查了半天,发现要手动设置--userns=keep-id参数。新手可能卡在这里。

社区支持够用,但文档质量参差不齐。红帽官方文档偏重企业场景,个人开发者看Stack Overflow更实在。

Rancher Desktop:图形界面最友好

Rancher Desktop是SUSE旗下的产品,提供完整图形界面。安装包93MB,比Docker Desktop的400MB小不少。

第一次启动,它会自动配置k3s(轻量级Kubernetes)。这意味着你不仅能用Docker命令,还能直接跑K8s。我在界面里点了几下,就部署了一个含3个副本的Nginx服务。整个过程没写一行YAML,对新手很友好。

但资源占用是个问题。Rancher Desktop默认基于containerd,同时启动Docker和K8s两个进程。我在MacBook Pro M1上测试,空闲状态下吃掉4.2GB内存。对比之下,Docker Desktop空闲时约2.5GB,Podman约1.8GB。

团队协作时要注意。Rancher Desktop默认使用自己的socket路径,和Docker不一样。如果你们的CI/CD脚本写死了/var/run/docker.sock,需要手动配置软链接。

Colima:轻量级黑马

Colima是一个CLI工具,底层调用Lima虚拟机,默认使用containerd。安装命令只有一行:brew install colima

启动速度让我意外。第一次colima start耗时28秒,后续启动只需8秒。对比Docker Desktop的首次启动要1分15秒,优势明显。

内存控制很出色。默认分配2GB内存,我跑了一个Redis、一个MySQL和一个Go应用,内存占用稳定在1.7GB左右。如果你只是本地开发调试,Colima够用了。

但Colima有两个硬伤。第一,没有图形界面,一切靠命令行。第二,不支持Kubernetes。如果你需要本地K8s环境,还得额外装minikube。

兼容性方面,Colima提供了socket_vmnet选项,可以解决端口映射问题。但我在M1芯片上遇到过几次容器重启后网络不通的情况,重启Colima才解决。

选哪个?

如果你用Linux,Podman是首选。零依赖,命令行兼容,红帽背书。

如果你需要图形界面,或者要同时跑Docker和K8s,Rancher Desktop值得一试。但得给电脑配够16GB内存。

如果你追求轻量,只在本地跑几个容器,Colima最省资源。启动快,内存低,够用就好。

没有完美的替代品。Docker Desktop收费这件事,倒逼团队重新思考:我们到底需要什么?是完整的容器编排平台,还是一个能跑docker-compose up的轻量工具?

答案因人而异。但有一点是确定的:工具是手段,不是目的。