自从 Docker 技术出现后,就不断有各种各样的 GUI 尝试封装它的功能,让它变得更易于使用。其中功能最完善的当属 Portainer 这款工具。
Portainer 提供了非常多的高级功能,结合了网页前端、命令行工具、自动化部署工具、k8s 配置、权限配置等等功能。非常适合商业级的运维服务使用。
但对于个人使用者而言,如果在个人电脑或者 NAS 上安装一个 Portainer 作为 Docker 管理工具的话,就显得过于复杂,以至于喧宾夺主了。Portainer 有很多入口和输入框,非但没有使部署变得更容易,反而很多时候把输入一行命令就可以解决的事情变得更复杂了。
其实这就涉及到了一个 GUI 工具的设计理念问题:GUI 工具是给完整选项好,还是简化操作好?
Portainer 选择的是前者,而 Container Manager 选择了后者。
传统的 Docker 操作往往依赖于命令行,这对于非技术用户来说是一个不小的挑战。对于初学者而言,他们并不了解每个参数的含义,也不知道去哪里查询,更不知道在哪里可以解决遇到的问题。
所以 GUI 在这时候就能起到“提醒”的作用:你只要完成这几个配置,就可以启动服务了。还可以起到“防呆”的作用:在你填写端口时就会告诉你端口有所冲突、在选择目录时就会直观显示目录不存在等。后期维护起来也更直观,防止浪费时间,更有成就感。
所以我一直非常建议非技术人员使用更简单的可视化 Docker 工具去做这件事。
在群晖 DSM 7.2 系统之前,群晖内置的 Docker 套件已经可以很好地完成容器部署这件事了,在 7.2 系统更新后,Docker 套件更名为 Container Manager,并且提供了 Docker Compose 的支持,让它的可用性再次提高了不少。
而在我看来,Container Manager 的主要优点也很明显:
- 界面足够简洁:简洁易操作是 DSM 内置套件的一贯作风,并且它将部署容器的步骤分割为几个步骤,每次只需要完成一个明确的操作。
- 提供必要选项:日常针对 Docker 的操作,无非是下载镜像、修改配置、日志排错、镜像更新等等,更多复杂的功能不在 GUI 中提供。
- 避免接触底层:DSM 知道用户需要时不时编辑一下 docker-compose.yml 文件,所以把这个文件的编辑功能放在套件中,不再需
