Portainer:开源Docker容器管理神器,打造可视化的容器运维平台
Portainer:开源 Docker 容器管理神器,打造可视化的容器运维平台
背景
Docker 的命令行操作对很多用户来说不够直观:
- 命令行操作繁琐,难以记忆
- 容器、镜像、网络、卷管理分散
- 无法直观查看容器状态和日志
- 多主机管理需要分别登录
- 权限管理不够灵活
- 排查问题需要手动 grep 日志
- docker-compose 编排不够直观
- 团队协作缺乏统一平台
今天介绍一款开源 Docker 管理利器——Portainer,它是 Docker 可视化管理的最佳开源方案。
什么是 Portainer?
Portainer 是一款开源的 Docker 容器管理平台,采用 Go 语言开发,提供直观的 Web 界面来管理 Docker 环境。
核心理念: “Making Docker and Kubernetes management easy”——让 Docker 和 Kubernetes 管理变得简单。
核心特性:
| 特性 | 说明 |
|---|---|
| 图形界面 | 直观的 Web 管理界面 |
| 多主机管理 | 统一管理多个 Docker 主机 |
| 镜像管理 | 可视化镜像管理 |
| 容器编排 | docker-compose 可视化 |
| 权限管理 | 灵活的团队和权限控制 |
| 日志查看 | 实时容器日志 |
| 告警系统 | 事件告警通知 |
| 开源免费 | zlib 许可证 |
GitHub 地址: https://github.com/portainer/portainer
Star 数量: 30K+
Portainer vs 命令行 vs Rancher
| 对比项 | Portainer | Docker CLI | Rancher |
|---|---|---|---|
| 界面 | 现代美观 | 无界面 | 功能丰富 |
| 学习曲线 | 低 | 高 | 中等 |
| 功能复杂度 | 简单 | 复杂 | 复杂 |
| 多主机 | ✅ 支持 | ❌ 不支持 | ✅ 支持 |
| 权限管理 | ✅ 灵活 | ❌ 不支持 | ✅ 支持 |
| 资源占用 | 极低 | 无 | 较高 |
| 部署难度 | 简单 | 不适用 | 复杂 |
Portainer 的独特优势:
- 安装简单,一个容器即可运行
- 界面直观,小白也能管理 Docker
- 资源占用极低,不影响主机
- 支持多主机集中管理
- 权限控制灵活细致
- 团队协作更加便捷
快速上手
Docker 部署(推荐)
创建目录:
mkdir -p ~/portainer && cd ~/portainer
创建 docker-compose.yml:
version: '3'
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: unless-stopped
ports:
- "9000:9000"
- "9443:9443"
volumes:
- ./data:/data
- /var/run/docker.sock:/var/run/docker.sock
command: --http-enabled
启动服务:
# 启动服务
docker-compose up -d
# 查看运行状态
docker-compose ps
# 查看日志
docker-compose logs -f
访问 Web 界面:
http://your-server-ip:9000
首次访问需要创建管理员账号
快速安装
# 一条命令安装
docker run -d \
-p 9000:9000 \
-p 9443:9443 \
--name portainer \
--restart=unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \
-v ~/portainer/data:/data \
portainer/portainer-ce:latest
核心功能详解
1. 仪表盘
Dashboard 功能:
显示内容:
- 运行中的容器数量
- 镜像数量
- 网络数量
- 卷数量
- 环境信息
- 容器状态概览
2. 容器管理
容器操作:
可视化管理:
- 创建容器(支持所有选项)
- 启动/停止/重启容器
- 查看容器日志
- 进入容器终端
- 查看容器资源使用
- 端口映射配置
- 卷挂载配置
- 环境变量配置
- 网络配置
创建容器配置示例:
容器配置:
- 镜像:nginx:latest
- 容器名称:my-nginx
- 端口映射:8080:80
- 卷挂载:./html:/usr/share/nginx/html
- 环境变量:ENV=value
- 重启策略:unless-stopped
- 网络:bridge
3. 镜像管理
镜像操作:
功能:
- 拉取镜像
- 查看镜像列表
- 查看镜像层信息
- 删除镜像
- 构建镜像(Dockerfile)
- 导入/导出镜像
- 镜像安全扫描
4. 网络管理
网络操作:
支持的网络类型:
- bridge
- host
- overlay
- macvlan
- 自定义网络
功能:
- 创建网络
- 查看网络详情
- 删除网络
- 连接/断开容器
5. 卷管理
卷操作:
功能:
- 创建卷
- 查看卷列表
- 查看卷使用情况
- 删除卷
- 挂载到容器
6. 编排管理
Stack 管理(docker-compose):
功能:
- 创建 Stack
- 编辑 Stack 配置
- 部署/更新 Stack
- 查看 Stack 日志
- 回滚 Stack
- 删除 Stack
docker-compose 可视化编辑:
编辑器功能:
- YAML 语法高亮
- 模板选择
- 验证检查
- 版本选择
- 环境变量配置
7. 用户和权限
用户管理:
用户类型:
- 管理员:完全控制
- 标准用户:有限权限
- 访客:只读访问
权限控制:
- 控制台访问权限
- 容器管理权限
- 镜像管理权限
- 网络管理权限
- 卷管理权限
高级配置
多主机管理
添加远程主机:
步骤:
1. 在远程主机安装 Docker
2. 配置 Docker API 访问
3. 在 Portainer 添加端点
4. 填写主机信息
5. 测试连接
Docker API 配置(Linux):
# 编辑 docker 服务配置
sudo systemctl edit docker
# 添加以下内容
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
# 重启 Docker
sudo systemctl restart docker
SSL 配置
使用自带 SSL:
volumes:
- ~/portainer/data:/data
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "9000:9000"
- "9443:9443"
command: --http-enabled
使用 Nginx 反向代理:
server {
listen 443 ssl;
server_name portainer.example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:9000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
权限配置
创建团队:
1. 进入 Settings → Teams
2. 点击 Add Team
3. 填写团队名称
4. 添加团队成员
团队权限:
- 环境选择
- 容器权限
- 镜像权限
- 网络权限
- 卷权限
常见问题
Q:Portainer 和 Rancher 有什么区别?
A:
- Portainer 更轻量,安装更简单
- Portainer 主要针对单机/小规模
- Rancher 支持 Kubernetes,功能更全面
- Rancher 学习曲线更陡峭
- Portainer 适合 Docker 可视化管理
Q:数据存储在哪里?
A:
- 配置文件存储在 ~/portainer/data
- SQLite 数据库存储于此
- 镜像文件仍然在 Docker 本地存储
Q:支持 Kubernetes 吗?
A:
- Portainer Business 版本支持 K8s
- CE 版本主要支持 Docker
- 可通过插件扩展 K8s 支持
Q:如何更新 Portainer?
A:
# 停止并删除旧容器
docker stop portainer
docker rm portainer
# 拉取新镜像
docker pull portainer/portainer-ce:latest
# 重新运行(保留数据)
docker run -d \
-p 9000:9000 \
-p 9443:9443 \
--name portainer \
--restart=unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \
-v ~/portainer/data:/data \
portainer/portainer-ce:latest
Q:忘记密码怎么办?
A:
# 重置管理员密码
docker exec portainer portainer --reset-admin-password
适用场景
推荐使用:
- Docker 可视化管理
- 小规模容器运维
- 团队协作管理
- 开发测试环境
- 快速容器部署
- 替代命令行操作
不推荐使用:
- 超大规模 Kubernetes 集群
- 需要 CI/CD 集成
- 需要复杂微服务编排
总结
Portainer 以"简单部署 + 直观界面 + 轻量高效 + 多主机管理"的组合,成为了 Docker 可视化管理的最佳开源选择。
核心优势回顾:
- 安装简单:一个容器即可运行
- 界面直观:小白也能管理 Docker
- 资源占用低:不影响主机性能
- 多主机管理:统一管理多个环境
- 权限控制:灵活的团队和权限管理
- 开源免费:zlib 许可证
对于需要 Docker 可视化管理、快速部署容器、团队协作运维的用户,Portainer 是最佳选择。
© 版权归无边界科技所有,版权所有。
更多推荐
所有评论(0)