Portainer
https://github.com/portainer/portainer
轻量级的容器管理平台,可通过Web界面轻松管理Docker、Kubernetes、Swarm等容器环境。基于浏览器可视化界面,支持单机部署也支持集群管理。
核心功能
- 一键式容器部署,支持Docker镜像快速拉取和部署,填几个表单就能启动复杂的容器应用,比敲命令快十倍
- 可视化资源监控,实时查看容器CPU、内存、网络使用情况,哪个容器出问题一眼就能看出来
- 应用模板功能,内置了常用应用的一键部署模板,比如Redis、Nginx、MySQL等
- 完整的镜像管理,可以浏览、搜索、拉取Docker Hub上的镜像,也能管理本地镜像仓库,还支持构建自定义镜像
- 网络和存储卷管理,通过界面就能创建Docker网络和数据卷,容器间的通信配置变得超简单
- 多环境统一管理,可以同时管理多个Docker主机、Kubernetes集群,在一个界面切换不同环境,运维效率直接翻倍
- 强大的权限控制,支持多用户和团队管理,可以给不同成员分配不同的权限,适合企业级使用
- 管理远程Docker主机,可以在环境设置里添加远程端点,支持TCP和SSH两种连接方式
bash
docker volume create portainer_data
docker run -d -p 9000:9000 \
--name=portainer --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
浏览器访问 http://localhost:9000
yaml
version: '3'
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: always
ports:
- "9000:9000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
volumes:
portainer_data:
界面
- Dashboard(仪表盘):总览所有容器、镜像、网络、卷的统计信息,资源使用一目了然
- Containers(容器管理):列出所有容器及其状态,可以启动、停止、重启、查看日志、进入终端
- Images(镜像管理):管理本地镜像,从Docker Hub拉取新镜像,删除不用的镜像释放空间
- Networks(网络配置):创建和管理Docker网络,配置容器间的网络连接
- Volumes(存储卷):管理数据持久化卷,查看卷的使用情况
- Stacks(应用栈):通过Docker Compose文件部署多容器应用,一键部署完整的应用栈
LazyDocker
开源(GitHub,50.3K Star,1.6K Fork)基于终端的用户界面,用于管理Docker和Docker Compose环境,把所有高频操作浓缩到一个键盘驱动的终端仪表盘里,提供更简洁的Docker容器部署与管理体验。
核心功能
- 容器管理:启动、停止、重启、删除容器
- 服务管理:Docker Compose 服务编排
- 日志查看:带过滤功能的实时日志流
- 资源监控:容器统计信息和资源使用情况
- 自定义命令:用户定义的命令模板
- 多语言支持:面向全球用户的国际化
基于面板的界面:每个面板专注于Docker管理的特定方面:
- 主面板:带有上下文特定内容的主要交互区域
- 容器面板:容器列表和管理操作
- 服务面板:Docker Compose 服务概览
- 镜像面板:Docker 镜像管理
- 卷面板:卷操作和挂载
- 网络面板:网络配置和连接
- 项目面板:项目级操作和设置
配置系统:支持自定义:
- GUI 配置:颜色、主题和视觉偏好
- 命令模板:可自定义的Docker命令执行
- 自定义命令:带有模板支持的用户定义操作
- 批量命令:可同时应用于多个项目的操作
实战
提供多种安装方式:
- 命令行
- Docker
- 二进制
bash
brew install lazydocker
# Windows(Scoop)
scoop install lazydocker
# Arch
yay -S lazydocker-bin
# 二进制
curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash
# Docker
docker run --rm -it -v \
/var/run/docker.sock:/var/run/docker.sock \
-v /yourpath:/.config/jesseduffield/lazydocker \
lazyteam/lazydocker
Dockge
Portainer,功能强大,界面专业;但docker-compose.yaml文件要么存储于BoltDB数据库,要么在加密的Volume卷里,被捆绑。
官网,Uptime Kuma的作者Louis Lam开源(GitHub,22.5K Star,717 Fork)Dockge,定位Docker+Package,即基于docker-compose.yaml文件的、反应式(Reactive)的Docker管理器。
对比
| 特性 | Portainer | Dockge |
|---|---|---|
| 配置存储 | 数据库(黑盒) | 本地文件系统(白盒) |
| 迁移难度 | 高(需导出/导入) | 极低(复制文件夹即可) |
| 资源占用 | 较高 | 极低 |
| Agent模式 | 复杂(EdgeAgent) | 简单(DockgeAgent) |
| 上手门槛 | 需学习编排概念 | 会写Compose即可 |
优势
数据主权的回归:文件即真理
与 Portainer 将配置吸入数据库不同,Dockge 是一个**"文件浏览器"**。 当你用 Dockge 创建一个名为 nginx 的服务时,它会实实在在地在你的硬盘上(例如 /opt/stacks/nginx)创建一个 compose.yaml 文件。
这意味着什么?
- 双向同步 :你可以用 Dockge 的网页端修改配置;你也可以 SSH 进去用
vim修改。Dockge 会实时感知文件变化并更新 UI。 - GitOps 友好 :你可以直接把
/opt/stacks目录推送到 GitHub。你的基础设施即代码(IaC)从未如此清晰。 - 灾难恢复:哪怕 Dockge 挂了,你的所有服务毫发无损,配置文件依然静静地躺在文件夹里。
docker run的魔法转换器
这是 Dockge 最让新手感动的功能。 我们在网上找教程时,经常看到博主甩出一行长达 500 字符的 docker run 命令。 以前,你需要手动把它翻译成 YAML 格式,极其容易缩进错误。
在 Dockge 里,有一个专门的输入框。**粘贴那行 docker run 命令 -> 点击转换。**Boom! 一个格式完美的 compose.yaml 就生成了。 这不仅是工具,这是生产力的"降维打击"。
- 反应式 UI 与内置终端
Louis Lam 的前端功底在 Dockge 上再次展现得淋漓尽致。 界面切换没有任何延迟,日志流是实时的,状态更新是毫秒级的。 而且,它直接在 Web 界面里嵌入了一个全功能的终端 。 你需要进入容器内部 exec 一下?不需要打开 Xshell,直接在网页里点一下,Shell 就弹出来了。
实战
基于Docker Compose安装:
yaml
version: "3.8"
services:
dockge:
image: louislam/dockge:1
restart: unless-stopped
ports:
# Web 面板端口
- 5001:5001
volumes:
# 这是一个 Docker 管理 Docker 的套娃,需要挂载 sock
- /var/run/docker.sock:/var/run/docker.sock
# Dockge 自身的数据
- ./data:/app/data
# 关键:你想让 Dockge 管理的目录
- /opt/stacks:/opt/stacks
environment:
- DOCKGE_STACKS_DIR=/opt/stacks
App2Docker
一键将应用打包成Docker镜像的开源(Gitee,182 Star,52 Fork)可视化平台,支持多种应用类型,包括Java(JAR)、Nodes、Python、Go和静态网站等。提供Web界面,使得用户无需编写Dockerfile即可轻松构建Docker镜像。
功能
-
镜像构建:提供分步构建流程,支持多种应用类型,并允许用户通过文件上传或Git数据源选择项目,确认分支,选择项目类型和模板,以及填写镜像名称和标签等。用户可以实时查看构建日志,确保构建过程透明可控。
-
流水线管理(CI/CD):支持Webhook触发,包括GitHub、GitLab、Gitee,提供灵活的分支策略和定时触发选项,以及构建历史记录的查看,方便用户管理和追踪构建过程。
-
导出镜像:用户可以导出单个镜像或使用Docker Compose批量导出,支持Gzip压缩,便于镜像的存储和传输。
-
任务管理:提供任务管理功能,包括查看所有构建和导出任务、实时查看任务日志、任务状态跟踪以及任务清理功能,确保用户能够有效管理构建任务。
-
配置管理:支持多个 Docker 仓库的配置,包括仓库认证测试和自动推送功能,确保镜像能够顺利推送到指定的仓库。使用流程快速构建
实战
基于Docker部署
bash
docker run -d \ --name app2docker \ -p 8000:8000 \ -v $(pwd)/data:/app/data \ -v /var/run/docker.sock:/var/run/docker.sock \ registry.cn-shanghai.aliyuncs.com/51jbm/app2docker:latest
浏览器访问http://localhost:8000,使用默认账号admin/admin登录。
在流水线管理中,用户可新建流水线,配置基本信息和构建参数,设置Webhook,以便自动化构建过程。
Docker仓库配置:用户可通过右上角的配置选项,设置Docker仓库的地址、镜像前缀、账号密码等信息,并测试登录以确保配置正确。为了确保系统的安全性,建议用户在首次使用时修改管理员密码,配置Docker仓库认证信息,并在生产环境中使用HTTPS,限制访问IP,定期备份重要数据。
数据持久化:必须配置映射data/目录,以确保配置和模板不会丢失。该目录包含配置文件、用户自定义模板、上传的文件和导出的镜像等重要数据。
部分操作截图



