什么是 LazyDocker ?
LazyDocker 是适用于 Docker 和 Docker Compose 的新的免费开源的终端 UI ,用于显示 Docker 或 Docker-compose 容器的状态,日志以及重新启动/删除/重建容器等,采用 Go 语言编写,使用了 gocui 库。
在 Linux 服务器上管理 Docker 容器时,通常有两种选择:安装或部署基于 Web 的 GUI 或从命令行管理容器,而 LazyDocker 介于两者之间,采用了基于 terminal 的 简单 UI
安装与容器相关的应用,都需要绑定挂载 /var/run/docker.sock ,包括我们之前安装的 portainer、watchtower,Glances,Netdata 等。
什么是 /var/run/docker.sock ?
/var/run/docker.sock 是 Docker API 的主要入口,简单地说,它是 Docker 守护进程(Docker daemon)默认监听的 Unix 域套接字(Unix domain socket),容器中的进程可以通过它与 Docker 守护进程进行通信。
图片来自:https://betterprogramming.pub/about-var-run-docker-sock-3bfd276e12fd
但是群晖的 Docker 管理器并不支持挂载 /var/run/docker.sock 文件,所以这次我们需用命令行来安装
命令行安装还是比较简单的,用 SSH 客户端连上群晖,执行下面的命令
老苏常用的SSH 客户端主要是 Finalshell 和 PuTTY
# 在 docker 中新建目录 lazydocker mkdir -p /volume2/docker/lazydocker # 进入 lazydocker cd /volume2/docker/lazydocker # 启动容器 docker run --rm -it --name lazydocker -v /var/run/docker.sock:/var/run/docker.sock -v /volume2/docker/lazydocker:/.config/jesseduffield/lazydocker lazyteam/lazydocker
也可以直接进 终端机 使用
使用键盘和鼠标都支持 LazyDocker 界面上的导航操作
其中每个命令都有一个预定义的键,用于快速执行常用操作。官网提供了一个多语言的键值说明,不过没有中文,只能凑合着看看英文的:https://github.com/jesseduffield/lazydocker/blob/master/docs/keybindings/Keybindings_en.md
可一键实现:
查看 Docker 或 Docker-Compose 容器环境的状态;查看容器/服务日志;查看容器 ASCII 图;定制图表以查看更详细的信息;绑定容器/服务;重启/移除/重建容器或服务;查看给定镜像的父层;修改占用磁盘空间的容器、镜像或卷; 自定义设置
在 lazydocker 中有个 config.yml 文件,但是现在打开只有一行
reporting: "on"
在块 commandTemplates 和 customCommands 配置中可以修改命令,也可以补充您自己的命令。在 ➡️ https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md 有详细的说明。
小结不过老苏改了半天并没发现有什么明显的变化,可能是因为本身就是 Default,也没有再继续深入研究下去
命令行管理容器,需要记命令,LazyDocker 将其简化为了快捷键,所以难度上比命令行方式简单得多。
但是相比基于 Web 的 GUI 界面,显然易用性还是有差距的,但胜在灵活。
老苏个人觉得如果在 linux 上,LazyDocker 可能是一个不错的选择,但是在群晖上似乎没什么必要。
另外也不建议用 Docker 方式安装 LazyDocker,会看不到日志或 CPU 使用率,这是一个已知的 Bug。
参考文档jesseduffield/lazydocker: The lazier way to manage everything docker
地址:https://github.com/jesseduffield/lazydocker
A Look at Lazydocker, a Cursor-based Docker Management Tool – The New Stack
地址:https://thenewstack.io/a-look-at-lazydocker-a-cursor-based-docker-management-tool/



