发布于
2044 字 · 11 分钟

Lazydocker 完全指南:终端里的 Docker 可视化管理

AI 摘要

作者
  • avatar
    姓名
    Corner430
    社交账号
题图

1 前言

Lazydocker 是 Docker 和 Docker Compose 的终端可视化管理工具(TUI),与 Lazygit 同一作者(jesseduffield),GitHub 50k+ stars,MIT 协议。它把 docker psdocker logsdocker execdocker compose up/down 等操作全部整合到一个界面中,用快捷键替代命令参数。

前置条件:已安装 Docker(>= 29.0)。Docker Compose 可选但推荐。

2 Docker 核心概念

Docker 架构

Docker 围绕三个核心概念运作,它们直接对应 Lazydocker 的面板:

概念说明Lazydocker 面板
镜像只读模板,用于创建容器Images(4
容器镜像的运行实例Containers(3
仓库存储和分发镜像—(通过 pull/push)
数据卷持久化存储,独立于容器生命周期Volumes(5
网络容器间通信Networks(6
服务Compose 定义的容器组Services(2

命令行 → Lazydocker 对照

命令行Lazydocker 操作
docker ps打开即可看到(Containers 面板)
docker logs <container>选中容器,主视图 Logs 标签
docker exec -it ... sh选中容器,按 E
docker stop <container>选中容器,按 s
docker rm <container>选中容器,按 d
docker imagesImages 面板(4
docker rmi <image>选中镜像,按 d
docker compose upServices 面板,按 U
docker compose downServices 面板,按 D
docker stats选中容器,主视图 Stats 标签(ASCII 图)

3 安装与配置

3.1 各平台安装

Homebrew(macOS / Linux):

brew install lazydocker

Linux 脚本安装

curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash

默认安装到 $HOME/.local/bin

Arch Linux

yay -S lazydocker

Go 安装(任何平台):

go install github.com/jesseduffield/lazydocker@latest

Docker 内运行(无需本地安装):

docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock lazyteam/lazydocker

验证

lazydocker --version

3.2 基础配置

在 Lazydocker 中按 o(Project 面板)打开配置文件,或按 e 用编辑器编辑。配置文件路径:~/.config/jesseduffield/lazydocker/config.yml

常用配置:

gui:
  wrapMainPanel: true # 主面板自动换行
  showAllContainers: false # 仅显示当前项目的容器
  nerdFontsVersion: '3' # Nerd Fonts 图标

logs:
  timestamps: true # 日志显示时间戳
  since: '60m' # 默认显示最近 60 分钟日志

commandTemplates:
  dockerCompose: docker compose # 使用 V2 命令(默认)

3.3 Shell 别名

alias lzd='lazydocker'

4 界面概览

运行 lazydocker(或 lzd),界面如下:

Lazydocker 界面布局

4.1 六大面板

面板快捷键功能
Project1项目信息、全局日志
Services2Compose 服务管理
Containers3容器列表、状态、操作
Images4镜像列表、层信息
Volumes5数据卷管理
Networks6网络管理

4.2 导航

操作快捷键
切换面板h / l 或数字键 1-6
面板内上下移动j / k 或方向键
切换主视图标签[ / ]
聚焦主视图Enter
返回侧面板Esc
搜索/过滤/
切换屏幕模式+ / _
退出q

4.3 主视图

右侧主视图根据选中项显示不同标签:

  • 容器/服务:Logs、Stats(CPU/内存 ASCII 图表)、Config、Top(进程列表)
  • 镜像:层信息(Layers)、命令历史
  • Volumes:挂载信息
  • Networks:连接的容器列表

5 容器管理

容器生命周期

3 切换到 Containers 面板,这是 Lazydocker 最常用的面板。

5.1 生命周期操作

操作快捷键对应命令
停止sdocker stop
暂停pdocker pause
重启rdocker restart
删除ddocker rm
显示/隐藏已停止容器e

5.2 交互操作

操作快捷键说明
查看日志m在主视图中打开日志
进入 ShellEdocker exec -it ... /bin/sh
附加到容器adocker attach
在浏览器中打开w打开容器第一个 HTTP 端口

5.3 日志查看

选中容器后,主视图默认显示日志。常用操作:

  • Enter 聚焦日志面板,用 j/k 滚动
  • [/] 切换到 Stats 标签查看实时资源占用
  • 日志默认显示最近 60 分钟,可在配置中调整 logs.since

5.4 资源监控

Stats 标签显示实时 ASCII 图表,包括 CPU 和内存使用率。这相当于 docker stats 的可视化版本,但不需要单独开一个终端窗口。

6 镜像管理

4 切换到 Images 面板。

操作快捷键说明
删除镜像ddocker rmi
查看层信息Enter聚焦主视图,查看镜像的祖先层

选中镜像后,主视图显示 Dockerfile 中每一层的命令和大小,帮助你分析镜像体积。

清理磁盘空间:按 b 打开批量命令菜单,可以一键清理悬空镜像(docker image prune)。

7 服务编排

如果当前目录有 docker-compose.yml,按 2 切换到 Services 面板。

7.1 服务操作

操作快捷键对应命令
启动服务Sdocker compose start
停止服务sdocker compose stop
暂停服务pdocker compose pause
重启服务rdocker compose restart
查看重启选项R弹出菜单(重启/重建等)
Up 单个服务udocker compose up <service>
删除服务容器ddocker compose rm
查看日志mdocker compose logs
进入 ShellEdocker compose exec ... sh
附加adocker compose attach
在浏览器中打开w打开服务第一个 HTTP 端口

7.2 项目级操作

操作快捷键对应命令
Up 整个项目Udocker compose up -d
Down 整个项目Ddocker compose down

注意大小写:s 停止单个服务,S 启动单个服务;u up 单个服务,U up 整个项目;d 删除服务容器,D down 整个项目。

8 Volumes 和 Networks

8.1 Volumes(按 5

操作快捷键说明
删除卷ddocker volume rm
批量操作b清理未使用的卷

选中数据卷后,主视图显示挂载详情和关联容器。

8.2 Networks(按 6

操作快捷键说明
删除网络ddocker network rm
批量操作b清理未使用的网络

选中网络后,主视图显示连接到该网络的所有容器。

9 自定义命令

c 可以运行预定义的自定义命令。在配置文件中添加:

customCommands:
  containers:
    - name: bash
      attach: true
      command: docker exec -it {{ .Container.ID }} bash
      serviceNames: []

也可以通过 b(批量命令)运行常用的批量操作,如清理所有停止的容器、悬空镜像、未使用的卷等。

更多自定义命令示例参见 官方文档

10 LazyVim 集成

Lazydocker 没有像 Lazygit 那样被 LazyVim 内置集成,但可以零插件实现。利用 LazyVim 自带的 snacks.nvim,在 ~/.config/nvim/lua/config/keymaps.lua 中添加:

if vim.fn.executable("lazydocker") == 1 then
  vim.keymap.set("n", "<leader>D", function()
    Snacks.terminal("lazydocker", { cwd = LazyVim.root() })
  end, { desc = "Lazydocker" })
end

之后在 LazyVim 中按 <leader>D 即可在浮动窗口中打开 Lazydocker,q 退出回到编辑器。与 <leader>gg(Lazygit)体验一致。

11 快速参考

11.1 全局快捷键

按键作用
1-6切换面板
[/]切换主视图标签
Enter聚焦主视图
Esc返回侧面板
/搜索/过滤
+/_切换屏幕模式
q退出

11.2 Containers 面板

按键作用
s停止
p暂停
r重启
d删除
e显示/隐藏已停止
m查看日志
E进入 Shell
a附加
w浏览器打开
c自定义命令
b批量命令

11.3 Services 面板

按键作用
S启动服务
s停止服务
p暂停
r重启
R重启选项
uUp 服务
UUp 项目
d删除容器
DDown 项目
m查看日志
E进入 Shell
a附加
w浏览器打开
c自定义命令
b批量命令

11.4 Images / Volumes / Networks 面板

按键作用
d删除
c自定义命令
b批量命令

11.5 Project 面板

按键作用
e编辑配置
o打开配置
m查看日志

12 参考链接

版权声明

除非另有说明,本文内容采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处。