社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

终于有人把 Docker 管理这件事做简单了。

开源日记 • 4 月前 • 296 次点击  


5个月的时间,Star 数干到了 4400。

Docker 管理工具这个圈子,又冒出来一个好东西——Dockhand。

我瞅了一眼它主要就干了一件事:把Docker容器的管理工作,做得更简单一些。

管理只是它的一部分。

平时配 Compose 项目,可以直接图形化编辑,不用一直对着 YAML 文件改。

服务器多了,它也能帮你统一管理远程机器。

安全和运维这块同样没落下——镜像漏洞能扫描,更新支持自动化,真出问题还能随时回滚。

连认证都省得你再额外折腾,OIDC 和 SSO 已经内置,还完全免费。

像 Watchtower,Dozzle,Diun这一堆工具,以后就不用挨个去装了,一个界面就能全搞定。

它的定位,是一个比较现代化的Docker管理平台,算得上是 Portainer 的一个挺有分量的对手。

Dashboard
Dashboard

为什么这个东西值得你去关注一下?

它把Portainer那边需要付费才能用的功能,直接拿出来免费提供了。

这一点,确实是最让人没想到的地方。

到2025年底的时候,Portainer把 OIDC/SSO 和 RBAC,都锁到付费版本里面去了。

社区里头一下子就炸了——好多人用 Portainer,本来就是奔着自托管去的,结果现在想搞一个单点登录,每年还得掏出去几十欧元。

Dockhand走的路子正好反过来:OIDC/SSO它直接免费开放出来用,只是把RBAC和LDAP/AD放在了企业版里。

要是你想给自托管环境加上单点登录的话,用Dockhand是不用花钱的。

Authentication Settings
Authentication Settings

除了在认证策略上比较友好之外,它还把Docker管理的一整条链都给串起来了。

01 容器生命周期的管理。

启动,停止,重启,删除这些操作,在界面里头全都可以一键点下去,批量处理也是支持的。

想看日志的话,直接点进去就能看到实时流,ANSI颜色的渲染也没什么毛病,这样一来,Dozzle就不用单独再去开了。

要是想进到容器里面做些调试,直接在Web端打开一个终端就行,SSH完全用不着。

Containers View
Containers View

02 Compose栈的可视化编辑。

它里头有一个视觉化的编辑器,YAML要是写错了,会直接给你标出来,不会像有的工具那样,只是丢回来一句“部署失败”就没下文了。

更要紧的一点是,它支持直接从Git仓库里面把栈拉下来,把webhook配置好以后,每一次push操作都能自动去触发部署。

这个地方,我本人是比较喜欢的。

以前要是想搞那种GitOps式的部署,要么得自己去写一堆脚本,要么就得拖一套ArgoCD那样比较重的工具过来。

Dockhand是把这种能力收到了同一个界面里头,基本上不需要你再额外去折腾什么东西。

Stacks Editor
Stacks Editor

03 镜像漏洞的扫描。

它里面是内置了Grype和Trivy这两个扫描器的。

我想起来以前为了合规,要做镜像的漏洞扫描。

找了一些第三方工具,折腾半天装上去。

现在不用了。

只要点一下,结果立马就出来了,而且还可以按严重程度去做过滤。

扫描完之后的结果,会按照镜像的SHA256值去做缓存,不会每次都从头到尾重新跑一遍。

Images View
Images View

04 自动更新,而且是带着回滚保护的那种。

它支持给容器去配置定时的更新任务,不是拉一个新镜像就算完事的粗放做法。

在更新之前,它可以先帮你扫一遍漏洞。要是新镜像的漏洞比旧的那个还要多,它能够自动把这次更新操作给挡住。

万一更新过程中出了什么状况,回滚保护机制还在那里兜着底。

现在估计还有很有人在用 Watchtower 做自动更新,但是没有漏洞检查的功能,回滚也是没有的。

估计作者也看到这个痛点,就把这一套全部做到 Dockhand。

Schedules
Schedules

05 通过 Hawser Agent 进行远程管理。

它里头有一个叫做 Hawser 的Agent。

这个设计确实得说挺聪明的:

Agent只是往外去发起 WebSocket 连接,不需要你在防火墙上单独去开什么端口,也不用把Docker socket暴露出去。

对于那些躲在NAT后面,IP地址还是动态变化的服务器来讲,这种方式比直接把TCP端口展露出去,要安全得多。

Networks
Networks

核心功能说得差不多了,再来聊聊那些让你用起来感觉比较顺手的小细节。

界面的响应速度特别快。

它是用 Svelte 5 写的,比起那些还停留在老框架上的工具,感觉要清爽不少。

有亮色和暗色两种主题。

Dashboard Light
Dashboard Light
Dashboard Dark
Dashboard Dark

另外仪表盘上那些磁贴的大小,你也可以自己去配置,想看哪个环境的容器状态,直接拖一下就行了。

** 采用了Wolfi硬化镜像。**

从零开始构建它自己的 OS 层,每一个包都在 Dockerfile 里头显式写明。

做到了零遥测,不会背着你偷偷发数据出去。

Security Settings
Security Settings

通知框架的集成。

支持SMTP邮件方式,同时也集成了Apprise,像Discord,Slack,Telegram,ntfy,Gotify,Pushover等等,总共50多个服务都能接进来。

容器启动,停止,更新失败,发现新漏洞这些事件,全都可以自动把通知给你推送出去。

Activity Log
Activity Log

聊到这个地方,你极有可能会想:部署起来到底麻不麻烦?

部署的话,其实是相当简单的

一条命令就可以把它跑起来:

docker run -d --name dockhand --restart unless-stopped \
  -p 3000:3000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v dockhand_data:/app/data \
  fnsys/dockhand:latest

在浏览器里面访问localhost:3000,就可以用了。

部署的时候有个小坑还是得提一嘴:它默认是不会以root身份去运行的,Docker socket那边的权限可能要去调一下。

最省事的法子,是加上--user 0:0直接用root去跑,再不然通过--group-add把Docker组的GID加进去也行。

当然了,Dockhand也不是说就完美无缺了。

它目前只支持Docker和Compose,Kubernetes还有Swarm这边还管不了,这方面比起来,Portainer确实要更全面一些。

另外呢,RBAC这一类企业级功能,也是要付费的,不过门槛要比Portainer那边低上不少——毕竟OIDC/SSO是免费提供的,只有RBAC才需要花钱。

再来说一下许可证方面的事情。

目前用的是BSL 1.1,个人使用,内部商用,非营利性质还有教育用途,全都是免费的,但是你不能把它包装成一个SaaS服务拿去卖钱。

到了2029年1月1号以后,它会自动转成Apache 2.0,到那个时候就是完全开源的了。

但话说回来,如果你只是想把Docker管好,不想去折腾K8s那一套复杂的东西,Dockhand是够用的了。

Terminal & Logs
Terminal & Logs

写在最后

我之前搞运维的时候, 经常用 Docker。

刚开始学的时候基本全是用命令来管理。

后来用的熟练之后,发现 Portainer 免费还带界面。

我就顺手换了过去。

用了好几年,说心里话还是挺满意的。

不过最近发现了 Dockhand。

上手试了一下,发现更好用了。

真是一代更比一代强。

经常跟 Docker 打交道的朋友,不妨试着玩一玩。

评论区说说你是怎么玩 Docker 的。

项目基于 BSL 1.1 协议开放的,感兴趣的同学,可以去 GitHub 仓库翻翻源码和文档。

开源地址:https://github.com/Finsys/dockhand

既然都看到这儿了,欢迎随手帮忙点赞,在看,转发,也欢迎给我点个星标⭐,这样就能收到最新的文章了,咱们下期见!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/196915