LazyDocker:基于终端UI管理Docker
什么是 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
1 | # 在 docker 中新建目录 lazydocker |

也可以直接进 终端机 使用

使用
键盘和鼠标都支持 LazyDocker 界面上的导航操作

其中每个命令都有一个预定义的键,用于快速执行常用操作。官网提供了一个多语言的键值说明,不过没有中文,只能凑合着看看英文的:https://github.com/jesseduffield/lazydocker/blob/master/docs/keybindings/Keybindings_en.md
可一键实现:
- 查看
Docker或Docker-Compose容器环境的状态; - 查看容器/服务日志;
- 查看容器
ASCII图; - 定制图表以查看更详细的信息;
- 绑定容器/服务;
- 重启/移除/重建容器或服务;
- 查看给定镜像的父层;
- 修改占用磁盘空间的容器、镜像或卷;
自定义设置
在 lazydocker 中有个 config.yml 文件,但是现在打开只有一行
1 | 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/lazydockerA 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/