Docker生态工具(管理、可视化)系列文章:
- Docker生态工具:Portainer、Watchtower、slim、ctop、Kitematic
- Docker生态工具:Portainer、LazyDocker、Dockge、App2Docker
- Docker生态:Arcane、Dockly、Docker-Socket-Proxy、Dockman、DockDash、Servedash
Portainer
官网,开源(GitHub,37.7K Star,2.8K Fork)轻量级的容器管理平台,可通过Web界面轻松管理不同Docker环境(Docker主机或Swarm集群)、Kubernetes集群,支持单机部署也支持集群管理,官方文档。
提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。功能十分全面,基本能满足中小型单位对容器管理的全部需求。
核心功能
- 一键式容器部署:支持Docker镜像快速拉取和部署,填几个表单就能启动复杂的容器应用,比敲命令快十倍
- 可视化资源监控:实时查看容器CPU、内存、网络使用情况,哪个容器出问题一眼就能看出来
- 应用模板功能:内置常用应用的一键部署模板,如Redis等
- 完整镜像管理:可浏览、搜索、拉取Docker Hub上的镜像,也能管理本地镜像仓库,还支持构建自定义镜像
- 网络和存储卷管理:通过界面就能创建Docker网络和数据卷,容器间的通信配置变得超简单
- 多环境统一管理:可同时管理多个Docker主机、Kubernetes集群,在一个界面切换不同环境,运维效率直接翻倍
- 强大权限控制:支持多用户和团队管理,可给不同成员分配不同的权限,适合企业级使用
- 管理远程Docker主机:可在环境设置里添加远程端点,支持TCP和SSH两种连接方式
实战
基于Docker快速部署体验:
dockervolume create portainer_datadockerrun-d--privileged-p9000:9000\--name=portainer\--restart=always\-v/var/run/docker.sock:/var/run/docker.sock\-vportainer_data:/data\portainer/portainer-ce:latest或基于Docker Compose部署:
version:'3'services:portainer:image:portainer/portainer-ce:latestcontainer_name:portainerrestart:alwaysports:-"9000:9000"volumes:-/var/run/docker.sock:/var/run/docker.sock-portainer_data:/datavolumes:portainer_data:部署成功后,浏览器访问http://localhost:9000,开始体验界面
- 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
- 二进制
brewinstalllazydocker# Windows(Scoop)scoopinstalllazydocker# Archyay-Slazydocker-bin# 二进制curlhttps://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh|bash# Dockerdockerrun--rm-it-v\/var/run/docker.sock:/var/run/docker.sock\-v/yourpath:/.config/jesseduffield/lazydocker\lazyteam/lazydockerDockge
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修改,实时感知文件变化并更新UI - GitOps友好:可直接把
/opt/stacks目录推送到GitHub,实现基础设施即代码(IaC) - 灾难恢复:Dockge宕机,你的所有服务毫发无损,配置文件依然静静地躺在文件夹里。
- 双向同步:可用Dockge的网页端修改配置,也可SSH进去用
docker run转换器。docker run命令一键转换为YAML格式的compose.yaml文件- 反应式UI与内置终端。界面切换没有任何延迟,日志流是实时的,状态更新是毫秒级的。直接在Web界面里嵌入全功能的终端
实战
基于Docker Compose安装:
version:"3.8"services:dockge:image:louislam/dockge:1restart:unless-stoppedports:# Web 面板端口-5001:5001volumes:# 这是一个 Docker 管理 Docker 的套娃,需要挂载 sock-/var/run/docker.sock:/var/run/docker.sock# Dockge 自身的数据-./data:/app/data# 关键:你想让 Dockge 管理的目录-/opt/stacks:/opt/stacksenvironment:-DOCKGE_STACKS_DIR=/opt/stacksApp2Docker
一键将应用打包成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部署
dockerrun-d\--nameapp2docker\-p8000: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/目录,以确保配置和模板不会丢失。该目录包含配置文件、自定义模板、上传的文件和导出的镜像等重要数据。
部分操作截图