跳转到内容

Portainer 可视化管理

Portainer 可视化管理

本节介绍如何使用 Portainer 可视化地管理 Docker 容器。学习完成后,您将能够:

  • 安装和配置 Portainer
  • 通过 Web UI 管理容器、镜像和卷
  • 向客户展示容器化管理的便捷性
  • 理解 Portainer 在演示环境中的价值

Portainer 是一个轻量级的 Docker 容器管理工具,提供 Web 界面来管理 Docker 环境。它是 IoT 演示环境中的重要管理工具。

核心优势:

特性说明售前价值
Web 界面无需命令行操作降低管理门槛
容器管理启动、停止、删除容器直观展示容器化优势
镜像管理查看、下载、删除镜像演示快速部署
日志查看实时查看容器日志快速排错
资源监控查看 CPU、内存使用展示资源效率
Terminal window
# 1. 创建 Portainer 数据卷
docker volume create portainer_data
# 2. 运行 Portainer 容器
docker run -d \
--name portainer \
--restart unless-stopped \
-p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
# 3. 验证安装
docker ps | grep portainer
portainer.yml
version: '3.8'
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: unless-stopped
ports:
- "9000:9000"
- "9443:9443" # SSL 端口
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./portainer/data:/data
Terminal window
# 访问 Portainer Web UI
open http://<server-ip>:9000

配置步骤:

  1. 创建管理员账号

    • 用户名: admin
    • 密码: YourStrongPassword!(至少 12 位)
  2. 选择环境

    • 选择 “Docker”(本地 Docker 环境)
    • 点击 “Connect”
  3. 进入仪表板

    • 查看 Docker 环境概览
    • 包含容器、镜像、卷、网络统计
┌────────────────────────────────────────────────────┐
│ Portainer Dashboard │
├────────────────────────────────────────────────────┤
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────┐ │
│ │ Containers│ │ Images │ │ Volumes │ │Network│ │
│ │ 5 │ │ 12 │ │ 8 │ │ 3 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────┘ │
│ │
│ [Container List] │
│ ┌──────────────────────────────────────────┐ │
│ │ Name │ Status │ Ports │ │
│ ├──────────────────────────────────────────┤ │
│ │ iot-mosquitto│ ▶ Running │ 0.0.0.0:1883 │ │
│ │ iot-nodered │ ▶ Running │ 0.0.0.0:1880 │ │
│ │ iot-influxdb │ ▶ Running │ 0.0.0.0:8086 │ │
│ │ iot-grafana │ ▶ Running │ 0.0.0.0:3000 │ │
│ │ portainer │ ▶ Running │ 0.0.0.0:9000 │ │
│ └──────────────────────────────────────────┘ │
└────────────────────────────────────────────────────┘
操作功能演示场景
Start/Stop启动/停止容器展示容器快速启停
Restart重启容器演示快速恢复
Remove删除容器展示数据持久化(删除容器后数据仍在)
Logs查看日志排错和监控
Stats查看资源使用展示资源效率
Exec Console进入容器 Shell调试和配置
Terminal window
# 在 Portainer 上可以:
# 1. 查看已下载的镜像列表
# 2. 从 Docker Hub 拉取新镜像
# 3. 删除不再使用的镜像
# 4. 查看镜像历史层
Terminal window
# 在 Portainer 上可以:
# 1. 查看所有数据卷
# 2. 创建新数据卷
# 3. 查看卷中文件
# 4. 删除未使用卷

Portainer 提供应用模板,一键部署常用服务:

  • Node-RED
  • Mosquitto
  • InfluxDB
  • Grafana
  • MariaDB

支持管理多个 Docker 环境:

┌─────────────────────────────────────┐
│ Portainer (单管理节点) │
├─────────────────────────────────────┤
│ ├─ 本地 Docker 环境 │
│ ├─ 远程 Docker 服务器 │
│ ├─ Docker Swarm 集群 │
│ └─ Kubernetes 集群 │
└─────────────────────────────────────┘
用户角色:
- Administrator: 完全控制
- Operator: 容器管理权限
- Viewer: 只读权限(适合客户演示)
- Read-only User: 仅查看

场景 1: 容器化优势

Terminal window
"Let me show you how easy it is to deploy services with Docker."
# 在 Portainer 上操作:
# 1. 点击 "App Templates"
# 2. 选择 "Node-RED"
# 3. 配置名称和端口
# 4. 点击 "Deploy"
# 5. 几秒钟后 Node-RED 就运行起来了

场景 2: 数据持久化

Terminal window
"Even if we delete the container, all data is preserved."
# 在 Portainer 上操作:
# 1. 停止并删除 Node-RED 容器
# 2. 从模板重新部署 Node-RED
# 3. 展示之前创建的 Flow 仍然存在

场景 3: 资源监控

Terminal window
"See how efficient containers are - they share the host OS kernel."
# 在 Portainer 上操作:
# 1. 查看 Dashboard 资源使用统计
# 2. 展示 4 个 IoT 服务的总资源占用
# 3. 对比传统虚拟机的资源消耗

症状: 浏览器无法打开 Portainer UI 原因: 端口被防火墙阻止 解决方案:

Terminal window
# 检查防火墙
sudo ufw status
sudo ufw allow 9000
# 检查容器状态
docker ps -a | grep portainer
# 查看日志
docker logs portainer

症状: Dashboard 统计为 0 原因: Docker Socket 权限问题 解决方案:

Terminal window
# 确保正确挂载 Docker Socket
docker run -d \
-v /var/run/docker.sock:/var/run/docker.sock \
portainer/portainer-ce:latest

推荐做法:

  • 使用 Portainer CE(社区版免费)
  • 为 Portainer 设置强密码
  • 仅内网暴露 Portainer(端口 9000)
  • 定期清理未使用镜像和卷
  • 使用 Viewer 账号做客户演示

避免做法:

  • 将 Portainer 直接暴露到公网
  • 使用默认管理员密码
  • 在生产环境频繁重启容器
  • 删除还在使用的数据卷
  1. Portainer 是 Docker 可视化管理的最佳选择
  2. 适合演示场景:直观展示容器化优势
  3. 支持容器、镜像、卷的一站式管理
  4. 免费社区版满足 IoT 演示需求
  5. 提供只读账号供客户体验