跳至主要内容

Lazydocker:在终端中管理 Docker

Lazydocker 通过键盘驱动的终端界面取代重复的 Docker CLI 命令,在一个屏幕中实时展示容器、日志与统计信息。
· 13分钟 阅读

使用 AI 探索

您是否厌倦了每天为了查看容器状态而反复输入 docker ps、docker logs 和 docker stats 数十次?

假设您在管理五个容器,其中一个出了问题。工作流程大概是:先查看正在运行的容器,grep 找到目标,复制 ID,查日志,滚动输出,再用另一条命令查看 CPU 使用率。等您理清状况,已经敲了十来条命令,时间也浪费不少。

这主要是因为 Docker 的 CLI 并非为高频监控和快速操作而设计,而这些正是实际开发的日常需求。

Lazydocker 提供了一个终端 UI,将运行中的容器、日志、统计信息和服务健康状况集中在一个界面显示。您可以通过按键启动、停止、重启容器,实时跟随日志,无需记忆各类命令也能快速发现资源“吃紧”的容器。

本文将带您完成 lazydocker 的安装、界面导航,并用它来加速您日常的 Docker 工作流。

如果您是 Docker 新手,请先从基础开始。我们的Docker 入门 课程可在数小时内帮助您掌握核心概念。

什么是 Lazydocker?

Lazydocker 是一个终端用户界面(TUI),让您在命令行中以可视化方式管理 Docker 容器。

它基于 Docker API 之上工作,也就是说本质上仍在调用您手动会运行的同样命令——只是将一切整合在一个界面中。您可以在单一窗口中实时查看容器状态、日志、统计信息和资源使用情况。

像 lazydocker 这样的 TUI 在容器管理中很受欢迎,因为它们介于 GUI 应用与纯 CLI 之间。您既保留了终端的速度与键盘操控,又获得了清晰的可视化组织,便于理解复杂系统。无需在 Docker Desktop 和终端之间来回切换,也无需记忆每条命令的所有参数。

lazydocker 解决的问题

Docker CLI 迫使您通过多条命令拼凑信息。例如:

  • 想看哪些容器在运行?docker ps

  • 需要日志?docker logs <container_id>

  • 查看 CPU 使用?docker stats

每一类信息都需要单独命令,您还要不断复制容器 ID 或在输出中 grep 才能找到所需内容。

Lazydocker 通过将一切汇总在一个界面来解决这一问题。您能在一个屏幕中看到所有容器、它们的日志、资源使用和可用操作。使用方向键在界面中导航,一键即可启动或停止容器,无需完整输入命令。

这个界面也让日常使用 Docker 更安全。当您准备删除容器或清理镜像时,lazydocker 会在确认前准确展示将要删除的内容。

如何安装 Lazydocker

在使用 lazydocker 前,需要先在您的系统上安装它。

安装过程很快,适用于 macOS、Linux 和 Windows。您可以根据环境和偏好的包管理器选择不同方式。

适用于 macOS、Linux 和 Windows 的安装方法

以下是安装 lazydocker 的主要方式:

Homebrew(macOS 和 Linux):

brew install lazydocker

这是我在 macOS 上使用的包管理器——输出大致如下:

Installing Lazydocker on macOS

在 macOS 上安装 Lazydocker

Scoop(Windows):

scoop install lazydocker

Chocolatey(Windows):

choco install lazydocker

asdf-vm(跨平台版本管理器):

asdf plugin add lazydocker
asdf install lazydocker latest
asdf global lazydocker latest

Go 安装(前提是已安装 Go):

go install github.com/jesseduffield/lazydocker@latest

若选择手动安装,您需要从GitHub 发布页下载适用于您平台的最新版本,解压归档文件,并将二进制文件移动到您的 PATH 路径中的某个目录。

使用 lazydocker 前,必须先安装并运行 Docker。Lazydocker 通过 Docker 套接字连接到 Docker 守护进程,如果 Docker 未运行,lazydocker 将无法启动。

安装完成后,在终端中运行 lazydocker 进行验证——界面应会启动并连接到您的 Docker 守护进程。

Starting Lazydocker

启动 Lazydocker

初识 Lazydocker 界面

启动 lazydocker 后,您会看到一个分屏界面,实时展示您的 Docker 环境。

界面分为两大区域:左侧边栏用于导航,右侧面板显示所选项目的详细信息。随着 Docker 环境变化,信息会自动更新——无需手动刷新。

Lazydocker 界面

Lazydocker 界面布局

左侧边栏包含五个可导航的分区:

  • Project —— 使用 Compose 时显示 Docker Compose 项目
  • Containers —— 列出所有容器及其状态与名称
  • Images —— 显示系统中的全部 Docker 镜像
  • Volumes —— 列出 Docker 卷
  • Networks —— 显示 Docker 网络

运行中的容器以绿色显示,已退出的容器以红色或黄色显示,具体取决于退出状态。停止的容器会显示容器名称和退出码。

右侧面板会根据您的选择而变化。选择某个容器时,顶部会显示多个选项卡:

  • Logs —— 实时容器日志,自动滚动
  • Stats —— CPU 与内存使用,实时更新
  • Env —— 容器的环境变量
  • Config —— 容器的完整配置
  • Top —— 容器内正在运行的进程

在左侧边栏选中一个容器,右侧面板会立即切换并展示该容器的全部可用信息。切换到 Images 或 Volumes 时,右侧则会显示与这些资源相关的详情。

键盘导航与快捷键

您可以完全通过键盘来操控 lazydocker。

按数字键(1 - 6)在各分区间切换(Project、Containers、Images 等)。点击各个标签可在右侧面板的标签页间循环切换。

以下是您需要记住的核心快捷键:

  • x:打开所选项目的操作菜单

  • d:删除所选容器或镜像

  • s:启动已停止的容器

  • r:重启容器

  • p:暂停/恢复容器

  • /:在日志中搜索

  • q:退出 lazydocker

  • ?:显示全部可用快捷键

屏幕底部会显示常用快捷键提示。您可随时按 ? 查看完整快捷键列表——帮助界面会根据您所在分区显示不同选项。

核心 Lazydocker 工作流

日常工作流是 lazydocker 为您节省时间的关键所在。无需死记硬背命令、复制容器 ID,使用方向键导航、单键触发操作即可。

监控容器并查看日志

从侧边栏选择某个容器时,Logs 标签会自动打开。

有新日志到来时会实时滚动。您无需运行 docker logs -f <container_id> —— lazydocker 默认跟随日志。使用鼠标或 PgUp/PgDn 可浏览历史日志。

切换到 Stats 标签即可查看 CPU 与内存使用。数值每隔几秒更新一次,以百分比与绝对值显示当前资源消耗。

Docker 容器统计信息

这相当于替代了三条独立 CLI 命令:

  • docker ps 列出容器

  • docker logs -f <container_id> 跟随日志

  • docker stats <container_id> 监控资源

使用 lazydocker,三者可同时查看,并能用方向键在容器间切换。

管理容器生命周期

在任意容器上按 x 打开操作菜单。

Lazydocker 操作菜单

菜单中会列出可执行的操作:启动、停止、重启、删除、暂停等。使用方向键选择操作,按 Enter 执行。对于删除等破坏性操作,lazydocker 会先要求确认。

确认对话框

您也可直接使用快捷键:

  • s —— 启动已停止的容器

  • r —— 重启正在运行的容器

  • p —— 暂停/恢复容器

  • d —— 删除容器(带确认)

前往侧边栏的 Images 分区可管理镜像。按 x 查看镜像操作,如删除未使用的镜像。Lazydocker 会在您确认前准确展示将被删除的镜像,避免误删。

Images 标签中的操作

配合 Docker Compose 服务使用

如果您使用 Docker Compose,Containers 分区会将每个服务显示为单独容器。

Docker Compose 示例

Lazydocker 不会将 Compose 服务聚合为一组,也不提供栈级别的控制。您像管理独立容器一样分别管理每个服务——启动、停止、重启、查看日志和统计信息。

Lazydocker 提供 Project 视图以分组通过 Docker Compose 创建的容器,但大多数操作仍在单个容器层面执行,而非完整栈层面。

为日常使用自定义 Lazydocker

Lazydocker 开箱即用,但通过自定义可以让它更贴合您的习惯。

您可以更改配色、添加自定义命令、修改快捷键、微调界面布局。这些都是可选项,不必强求。

配置文件基础

配置文件位置取决于操作系统。最稳妥的查找与编辑方式是打开 lazydocker,导航到 Project 面板,并在键盘上按 o。这会打开一个空白的 config.yml 文件。

演示用途,请将以下内容粘贴其中:

gui:
  theme:
    activeBorderColor:
      - cyan
      - bold
    inactiveBorderColor:
      - white
    selectedLineBgColor:
      - black
    selectedLineFgColor:
      - yellow
    optionsTextColor:
      - blue
    searchingActiveBorderColor:
      - green

重启后,lazydocker 看起来如下:

微调 lazydocker 样式

改动较为细微,但您会注意到文本颜色由绿色变为蓝色。

常见的自定义包括:

  • 配色方案——根据终端主题调整边框、文字与背景颜色
  • 确认提示——为高频操作关闭“您确定吗?”的确认信息
  • 报告——关闭匿名使用情况报告
  • 界面行为——控制面板是否自动更新、日志滚动速度以及默认显示的分区

完整配置项列表见 GitHub 上的 lazydocker 文档。可调之处很多,但也请理性预期——毕竟它仍是一个 TUI 应用。

自定义命令与快捷键

您可以添加自定义命令,使其在按 x 时出现在操作菜单中。

方法是在配置文件的 customCommands 节下定义自定义命令。以下示例添加了一个进入容器的命令:

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

运行命令时,{{ .Container.ID }} 模板会被替换为所选容器的 ID。您还可以根据需要使用 {{ .Container.Name }} 或 {{ .Service.Name }} 等模板。

参阅GitHub 文档页以获取完整说明。

自定义命令可加速重复性工作流。如果您经常运行数据库迁移、用自定义参数重启特定服务,或进入容器检查日志,将这些操作设为自定义命令可免去每次手动输入。

Lazydocker 的使用场景与技巧

以下工作流能够在日常开发中切实省时并减少失误。

在本地开发中使用 lazydocker

开始工作时启动 lazydocker,并将其保留在一个终端标签页中。

当您用 docker-compose up 启动开发环境时,切换到 lazydocker 进行监控。您可以看到哪些容器启动成功、哪些失败、日志中出现了哪些错误——无需逐条运行命令。

效率提升来自于少敲字:

  • 修改配置文件后需要重启容器?按 r 即可,无需输入 docker restart <container_id>

  • 想查看数据库是否占用过多内存?切换到 Stats 标签页,而不是运行 docker stats

  • 需要清理日志以更清晰地查看新输出?按 x 并选择“清除日志”,而不是停止并重启容器

当您有多个容器协同工作时——例如 Web 服务器、API、数据库、缓存,以及消息队列——这种工作流最为高效。Lazydocker 可以一览整个栈的健康状况。

调试多容器应用

当多容器应用出问题时,lazydocker 有助于跨服务追踪问题根源。

设想 API 返回 500 错误。您在 lazydocker 中查看 API 容器日志,发现数据库连接错误。切换到数据库容器——日志显示它每 30 秒重启一次。再看 Stats 标签,发现内存达到上限。此时问题就很明确了:数据库需要更多资源。

在 lazydocker 中,这只需几秒。若用 CLI,您得先运行 docker ps 找容器 ID,再对每个服务运行 docker logs,还要用 docker stats 查看资源,在多个终端窗口中拼凑线索。

关键在于快速切换容器。用方向键在服务间跳转,日志会随之更新。您可以按顺序观察一次请求的全流程——从 Web 服务器接收、到 API 处理、再到数据库执行查询。

高效使用的最佳实践

定期清理。 在 Images 分区按 x 并选择“删除镜像”,清理开发中堆积的悬空镜像。对不再需要的已停容器也做同样处理。

按您的工作流自定义 lazydocker。 如果您经常进入容器执行命令,请添加对应的自定义命令。如果总是优先查看某几个容器,可在配置中将其突出显示。日常使用时,这点投入会得到回报。

掌握高频操作的快捷键。 按 r 重启比每次打开操作菜单更快。按 / 搜索日志也比手动滚动高效。起初可能不顺手,但一周后就会形成肌肉记忆。

将 lazydocker 保持在专用终端标签页中常驻。 不要打开-看一下-就关掉——那会浪费实时监控的优势。像对待 htop 一样对待它:需要时随手可用。

需要注意的 Lazydocker 局限

Lazydocker 不能解决所有 Docker 工作流问题,有些限制值得预先了解。

Docker 套接字与权限问题

Lazydocker 需要访问 Docker 套接字才能与 Docker 守护进程通信。

在 Linux 上,通常需要将您的用户加入 docker 组。如果启动 lazydocker 时出现“permission denied”错误,请运行 sudo usermod -aG docker $USER 并注销后重新登录。没有套接字访问权限,lazydocker 无法启动。

在 macOS 和 Windows 上,Docker Desktop 会为您处理权限问题。

但如果您在 VM 中运行 Docker 或使用非常规设置,可能需要通过 DOCKER_HOST 环境变量将 lazydocker 指向正确的套接字位置。

跨平台差异同样重要。某些特性在 Windows 上的表现与 Linux、macOS 不同——尤其是绑定挂载中的文件路径以及容器访问主机文件系统的方式。Lazydocker 展示的是 Docker 上报的信息,因此如果 Docker 在您的平台上行为不同,lazydocker 也会相应体现。

远程 Docker 上下文的限制

Lazydocker 可用于远程 Docker 主机,但体验不如本地流畅。

如果您通过 Docker 上下文管理远程服务器上的容器,lazydocker 也能连接。但由于网络时延,界面会更慢——日志加载更久、统计更新延迟、导航偶尔会显得滞后。该工具主要面向本地开发,期望 Docker 迅速响应。

远程 Docker 也意味着不易进入容器或运行交互式命令。Lazydocker 会尝试打开 shell,但连接常常超时或行为不稳定,具体取决于您的网络与 SSH 配置。

对于在远程主机上管理生产容器,建议坚持使用 CLI 或专门的编排工具,例如 Kubernetes 仪表板。

结语

Lazydocker 非常适合在本地使用 Docker 的开发者和小团队。如果您在开发中运行多个容器、调试多服务应用,或只是厌烦反复输入同样的 Docker 命令,它都是一个值得考虑的工具。

2026 年对 DevOps 的需求很高。阅读我们的Docker 认证(DCA)完整指南,助您拿下第一份工作。

Dario Radečić

作者

Dario Radečić

常驻克罗地亚的高级数据科学家。顶级科技写作者,已发表 700 多篇文章,累计获得超过 1,000 万次阅读。著有《使用 TPOT 实现机器学习自动化》。

Lazydocker 常见问题

如何在 lazydocker 中自定义按键绑定?

您可以通过编辑 lazydocker 的 config.yml 来自定义按键绑定。先启动 lazydocker,进入 Project 选项卡,按 o 打开该文件。添加 keybinding 部分,为不同操作定义自定义快捷键。配置使用 YAML 格式,您可以覆盖默认快捷键,或为自定义命令新增快捷键。

lazydocker 与 docui 的主要区别是什么?

二者都是面向 Docker 的终端 UI,但 lazydocker 侧重实时监控(含日志流与资源统计),而 docui 更强调容器管理操作。Lazydocker 拥有更活跃的社区与对 Docker Compose 更好的支持。Docui 界面更简洁,但自定义选项较少。

lazydocker 能管理 Docker Compose 项目吗?

可以,lazydocker 兼容 Docker Compose。Compose 文件中的每个服务会作为单独容器出现在 Containers 分区。Project 分区会显示活跃的 Compose 项目名称,但您仍需在 Containers 分区像管理独立容器一样管理各服务。

如何在远程服务器上安装 lazydocker?

在远程服务器上安装 lazydocker 的方法与本地相同——可用 Homebrew、其他包管理器或直接下载二进制。安装后,您可以 SSH 登录到服务器并在那边运行 lazydocker,或在本地配置 Docker 上下文,让 lazydocker 连接远程 Docker 守护进程。受网络时延影响,远程连接会更慢。

使用 lazydocker 常见的问题有哪些?

最常见的问题是 Linux 上 Docker 套接字的权限错误,可通过使用 sudo usermod -aG docker $USER 将用户加入 docker 组来解决。其他问题包括连接远程 Docker 主机时性能变慢,以及容器对 exec 命令无响应。有些用户在终端不支持所需颜色或 Unicode 字符时也会遇到显示问题。

主题