如何用Lazydocker管理docker-compose项目:从up、down到rebuild的完整工作流
【免费下载链接】lazydockerThe lazier way to manage everything docker项目地址: https://gitcode.com/GitHub_Trending/la/lazydocker
Lazydocker是一款免费的终端界面(TUI)工具,用 Go 编写,让你在一个窗口内完成 Docker 和 docker-compose 的全部日常操作:up、down、restart、rebuild、看日志、进 shell,每个常用命令都只有一个按键的距离。本文带你走通从启动项目到重建服务的完整工作流。
为什么用 Lazydocker 管理 docker-compose?
用命令行管理 compose 项目,你常常要在几个终端窗口之间来回切换:一个窗口跑docker compose up看日志,一个窗口跑ps看状态,改代码后还要手动up -d --build重建。窗口越开越多,命令越记越乱。
Lazydocker 的解决思路很简单:所有信息集中在一个终端窗口,每个操作一个按键。官方对使用场景的描述在 README.md 的 "Elevator Pitch" 一节,写的就是这种"多窗口切来切去"的痛点。
核心优势:
- ✅面板式管理:项目、服务、容器、镜像、卷、网络各占一个侧栏面板
- ✅一键常用操作:up / down / restart / rebuild 都是单个快捷键
- ✅多项目感知:能发现机器上所有正在运行的 compose 项目,切换查看
- ✅可定制命令模板:rebuild、restart 等底层命令都能按自己习惯改写
运行要求:Docker >= 29.0.0,可选安装 docker-compose >= 1.23.2(新版
docker compose插件同样可用)。
快速安装 Lazydocker 并进入 compose 项目
按系统选择一种安装方式即可(摘自 README.md 的 Installation 章节):
# macOS / Linux(Homebrew) brew install lazydocker # Windows(Scoop) scoop install lazydocker # Go 直接安装 go install github.com/jesseduffield/lazydocker@latest # 或者从源码构建 git clone https://gitcode.com/GitHub_Trending/la/lazydocker cd lazydocker go build -o lazydocker .关键一步:在你的docker-compose.yml所在目录启动 lazydocker。只有在这个目录内,项目面板和服务面板才会出现,up/down 等 compose 命令才可用(见 pkg/gui/project_panel.go 中InDockerComposeProject的判断逻辑)。
cd your-compose-project lazydocker认识三个核心面板:Projects / Services / Containers
进入后你会看到左侧多个面板,用数字键快速聚焦:
| 按键 | 面板 | 作用 |
|---|---|---|
1 | Projects | 列出机器上所有 compose 项目,选中后右侧只过滤该项目的内容 |
2 | Services | 当前 compose 项目定义的服务(对应 yml 里的 services) |
3 | Containers | 所有容器,含状态、镜像、端口 |
4~6 | Images / Volumes / Networks | 镜像、卷、网络 |
选中某个项目后,服务和容器列表会自动过滤为该项目专属(实现在 pkg/gui/project_panel.go),排查问题再也不会看错项目。
up:启动整个项目或单个服务
把焦点切到 Services 面板(按2),选中一个服务,常用启动类按键:
| 按键 | 操作 | 等价命令 |
|---|---|---|
U | up project:启动整个项目 | docker compose up -d |
u | up service:只启动选中的服务 | docker compose up -d <service> |
S | start:启动已创建但停止的容器 | docker compose start <service> |
R | 查看 restart 选项(含强制重建) | docker compose up -d --force-recreate <service> |
按U时会有确认提示("Are you sure you want to 'up' your docker compose project?",见 pkg/i18n/english.go),防止误触。
down:停止、清理项目
同样在 Services 面板:
D——down project:停止并移除整个项目的容器和网络,等价于docker compose downd—— remove containers:移除选中服务的容器,也可选remove with volumes连卷一起删s—— stop:只停止服务,容器保留
日常"下班收尾"就是D一下;要连数据卷一起清干净(比如调试完想从零开始),在移除菜单里选 "remove with volumes"(定义于 pkg/gui/services_panel.go)。
rebuild:一键重建服务(改完代码最常用)
修改了服务代码或 Dockerfile 后,需要重新构建镜像并重建容器。在 Services 面板选中服务后打开菜单选择rebuild(实现见 pkg/gui/services_panel.go),它默认执行的命令是:
docker compose up -d --build <service>这条命令可以在配置文件里自定义。pkg/config/app_config.go 中定义了默认模板:
# 可写入你的 lazydocker 配置 command: rebuildService: "{{ .DockerCompose }} up -d --build {{ .Service.Name }}" restartService: "{{ .DockerCompose }} restart {{ .Service.Name }}" recreateService: "{{ .DockerCompose }} up -d --force-recreate {{ .Service.Name }}"配置项的完整说明见 docs/Config.md,本地配置样例可参考 config/config.yml。
看日志、进 shell:排障三件套
| 按键 | 操作 | 说明 |
|---|---|---|
m | view logs | 实时跟踪日志,服务挂了也能持续看到输出 |
E | exec shell | 直接docker exec -it进入容器 |
a | attach | 附加到前台进程 |
w | open in browser | 用第一个映射端口在浏览器打开服务 |
M | 项目全部日志 | 在 Projects 面板下查看整个 compose 项目的汇总日志(见 pkg/gui/project_panel.go) |
/ | filter | 任意列表内快速过滤 |
这正是 Lazydocker 相比命令行的核心体验:m打开日志后不会被服务重启打断,不用反复重新敲logs -f。
完整工作流总结
一次典型开发循环只需要记住这些键:
改代码 → rebuild(R菜单) → m 看日志 → 发现问题 E 进shell 服务挂了 → r 重启 / u 单独 up 下班收尾 → D (down project)完整按键表可查 docs/keybindings/Keybindings_en.md(也有中文等 9 种语言的版本,位于 docs/keybindings/ 目录)。
掌握这套 up → rebuild → down 的工作流后,你可以全程不离开终端、不切窗口地管理所有 compose 项目——这就是 Lazydocker "The lazier way to manage everything docker" 的由来。
【免费下载链接】lazydockerThe lazier way to manage everything docker项目地址: https://gitcode.com/GitHub_Trending/la/lazydocker
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考