打开网易新闻 查看精彩图片

87%的Docker用户从未用过Swarm编排,却在界面里被迫看了一辈子。

这是Reddit上某运维版块的投票结果,也是我决定换掉Portainer的导火索。用了三年,我终于承认自己只是在假装需要那些企业级功能。

Portainer的"功能肥胖症"

Portainer的"功能肥胖症"

Portainer社区版几乎塞进了你能想到的所有东西:容器栈管理、Swarm集群、Kubernetes编排、基于角色的访问控制(RBAC)、多用户协作。对正经的生产环境来说,这是甜点。但对我家那台跑着Plex和Home Assistant的NUC来说,这是负担。

界面成了迷宫。想停掉一个正在跑的容器?没有直接按钮。你得先勾选列表里的复选框,或者点进详情页,再找到停止按钮。同样的操作路径适用于重启、查看日志、修改配置——任何你想做的事。

Dockhand的作者显然观察过这个痛点。每个容器条目右侧直接排列着操作按钮:停止、重启、日志、终端。没有下拉菜单,没有二级页面,没有"先选再操作"的仪式感。

Dockhand把容器管理做成了快捷方式,Portainer做成了行政审批。

信息密度的降维打击

信息密度的降维打击

Portainer的首页给我看的是:环境列表、CPU内存使用率、磁盘空间。有用的信息大概占屏幕面积的30%,其余是留白和各种状态指示器。

Dockhand的首页直接甩出所有运行中的容器、它们的资源占用、端口映射、镜像版本。不需要点进任何详情页,一眼就能判断谁在吃光你的内存。

这种设计思路的差异,很像手机系统里的"控制中心"逻辑。Portainer是设置菜单的层层嵌套,Dockhand是把手电筒和计算器扔在锁屏上。

另一个细节:镜像更新检测。Portainer需要手动刷新或者配置通知,Dockhand在容器列表里直接用颜色标签标出"有新版可用"。对我这种懒得写Watchtower规则的人来说,这是沉默的救命功能。

迁移成本比想象中低

迁移成本比想象中低

Dockhand支持直接导入现有的docker-compose文件,也识别已经存在的容器。我花了大概15分钟把十几个服务迁移过去,其中10分钟是在确认Plex的硬件解码有没有崩。

它不支持Swarm和Kubernetes——但这正是我选它的原因。我的"基础设施"是一台二手小主机,不是AWS集群。砍掉那些我用不上的功能后,Docker管理工具的体积从"企业级套件"缩回了"实用工具"的本分。

有个类比可能不太礼貌:Portainer是瑞士军刀,Dockhand是厨房剪刀。前者能锯木头开酒瓶,但每天切菜的人只想快速拿到一把锋利的剪子。

谁该留下,谁该离开

谁该留下,谁该离开

如果你管理着超过5台节点的集群,或者有正式的CI/CD流程需要对接,Portainer仍然是更稳妥的选择。它的RBAC和审计日志不是摆设,是合规要求。

但如果你和我一样,"基础设施"是台放在鞋柜上的迷你主机,跑的服务一只手数得过来,Dockhand的减法设计会更对胃口。它不会在你想重启Home Assistant的时候,先问你要不要配置一个Swarm endpoint。

开源工具的有趣之处在于,它们往往从"解决作者自己的问题"开始。Dockhand的GitHub仓库里,第一条commit的说明是:"厌倦了在Portainer里点三次才能看到容器日志。"

这个动机足够诚实,也够具体。

你现在用的Docker管理工具,最近一次更新是加了你需要的东西,还是加了别人可能需要的东西?