Portainer 完全指南 2026|Docker 可视化管理工具从入门到精通

💡 命令行虽好,但可视化更香。 Portainer 是最流行的 Docker 可视化管理工具,让你通过 Web 界面轻松管理容器、镜像、网络、数据卷和堆栈。无论是个人开发者还是企业团队,Portainer 都能大幅提升 Docker 运维效率。
本文将带你系统掌握:
- ✅ Portainer 介绍与版本选择
- ✅ Portainer CE 安装部署(Docker & Swarm)
- ✅ 容器管理:创建、启停、日志、终端
- ✅ 镜像管理:拉取、构建、推送
- ✅ 数据卷与网络管理
- ✅ Compose 堆栈部署
- ✅ 用户权限与团队管理
- ✅ 模板与应用市场
- ✅ 监控与告警
- ✅ 生产环境最佳实践
一、Portainer 简介
1.1 什么是 Portainer
Portainer 是一个轻量级的 Docker 管理 UI,提供:
- 可视化操作:通过 Web 界面管理 Docker,无需记忆命令
- 功能全面:容器、镜像、网络、数据卷、堆栈一站式管理
- 多环境支持:支持 Docker Standalone、Swarm、Kubernetes
- 权限管理:多用户、角色、团队,适合企业使用
- 开源免费:社区版完全免费,功能足够大多数场景
1.2 版本对比
| 特性 | Portainer CE(社区版) | Portainer BE(商业版) |
|---|---|---|
| 价格 | 免费 | 付费(按节点计费) |
| 核心管理功能 | ✅ | ✅ |
| 用户/角色管理 | 基础 | 高级(SSO、LDAP) |
| 多集群管理 | 有限 | 无限 |
| 注册表管理 | 基础 | 高级 |
| 备份恢复 | 手动 | 自动 |
| 支持 | 社区 | 官方技术支持 |
💡 个人和小团队使用 CE 版完全够用。
1.3 架构
┌─────────────────────────────────────┐
│ Portainer UI │
│ (用户通过浏览器访问,端口 9443) │
└──────────────┬──────────────────────┘
│
┌──────────────▼──────────────────────┐
│ Portainer Server │
│ (API、业务逻辑、数据库) │
└──────────────┬──────────────────────┘
│
┌──────────────▼──────────────────────┐
│ Docker API / Docker Socket │
│ (/var/run/docker.sock) │
└─────────────────────────────────────┘Portainer 本身也是一个容器,通过挂载 docker.sock 与 Docker 引擎通信。
二、安装部署
2.1 Docker Standalone 安装
创建数据卷:
docker volume create portainer_data启动 Portainer:
docker run -d \
--name portainer \
--restart always \
-p 9000:9000 \
-p 9443:9443 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest参数说明:
--restart always:开机自启-p 9000:9000:HTTP 端口(可选)-p 9443:9443:HTTPS 端口(推荐)-v /var/run/docker.sock:/var/run/docker.sock:挂载 Docker Socket-v portainer_data:/data:数据持久化
2.2 Docker Compose 安装
创建 docker-compose.yml:
version: '3.8'
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: always
ports:
- "9000:9000"
- "9443:9443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
environment:
- TZ=Asia/Shanghai
volumes:
portainer_data:启动:
docker compose up -d2.3 Docker Swarm 安装
docker service create \
--name portainer \
--publish 9443:9443 \
--replicas=1 \
--constraint 'node.role == manager' \
--mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock \
--mount type=volume,src=portainer_data,dst=/data \
portainer/portainer-ce:latest2.4 初始配置
访问 Portainer:
打开浏览器访问 https://你的IP:9443
首次登录需要:
- 设置管理员账号和密码
- 选择要管理的环境(本地 Docker 环境会自动检测)
- 点击 "Connect" 连接
⚠️ 首次设置密码要在 5 分钟内完成,否则容器会自动退出防止未授权访问。
三、仪表盘总览
登录 Portainer 后,首先看到的是仪表盘:
主要信息:
- 环境信息:Docker 版本、操作系统、CPU、内存
- 资源统计:容器数量(运行/停止)、镜像数量、数据卷数量、网络数量
- 快速操作:快速进入各管理模块
- 使用情况:CPU、内存使用率图表
四、容器管理
4.1 容器列表
左侧菜单选择 "Containers",可以看到所有容器:
列表信息:
- 容器名称
- 镜像
- 状态(运行/停止)
- 暴露端口
- 快速操作按钮
筛选与搜索:
- 按状态筛选(运行中、已停止、全部)
- 按名称搜索
4.2 快速操作
对每个容器,可以快速执行:
- Logs:查看日志
- Inspect:查看详细信息
- Stats:资源使用统计
- Console:进入容器终端
- Restart:重启
- Stop:停止
- Start:启动
- Kill:强制停止
- Remove:删除
4.3 创建容器
点击 "Add container" 按钮:
基本配置:
- Name:容器名称
- Image:镜像名称(如
nginx:alpine) - Always pull the image:是否每次拉取最新镜像
- Publish all exposed ports:自动映射所有暴露端口
高级配置(Advanced container settings):
| 分类 | 配置项 |
|---|---|
| Command & logging | 启动命令、工作目录、用户、日志驱动 |
| Volumes | 数据卷挂载、Bind Mount |
| Network | 网络模式、端口映射、主机名、DNS |
| Env | 环境变量 |
| Labels | 标签 |
| Restart policy | 重启策略(no/always/on-failure/unless-stopped) |
| Resources | CPU、内存限制 |
| Capabilities | 内核权限 |
4.4 容器日志
点击容器名称 → "Logs" 标签:
日志功能:
- 实时查看日志
- 按时间筛选
- 搜索关键字
- 下载日志
- 自动刷新
4.5 进入容器终端
点击容器名称 → "Console" 标签:
连接终端:
- 选择命令(
/bin/bash、/bin/sh等) - 点击 "Connect" 连接
- 像使用 SSH 一样操作容器
五、镜像管理
5.1 镜像列表
左侧菜单选择 "Images":
显示信息:
- 镜像名称与标签
- 镜像 ID
- 创建时间
- 镜像大小
- 使用状态(是否有容器在使用)
5.2 拉取镜像
方法一:从镜像列表页拉取
- 点击 "Pull image"
- 输入镜像名称(如
nginx:alpine) - 选择注册表(默认 Docker Hub)
- 点击 "Pull the image"
方法二:创建容器时自动拉取 创建容器时输入镜像名,Portainer 会自动拉取。
5.3 构建镜像
从 Dockerfile 构建:
- 点击 "Build a new image"
- 输入镜像名称
- 选择构建方式:
- Upload:上传 Dockerfile 文件
- URL:从 Git 仓库构建
- Web editor:在线编辑 Dockerfile
- 点击 "Build the image"
5.4 推送镜像
- 点击镜像名称
- 点击 "Push to registry"
- 选择注册表
- 输入标签
- 点击 "Push"
六、数据卷管理
6.1 数据卷列表
左侧菜单选择 "Volumes":
显示信息:
- 卷名称
- 驱动类型
- 挂载状态
- 创建时间
6.2 创建数据卷
- 点击 "Add volume"
- 输入卷名称
- 选择驱动(默认 local)
- 配置驱动选项(可选)
- 添加标签(可选)
- 点击 "Create the volume"
6.3 数据卷操作
- Browse:浏览数据卷内容
- Remove:删除数据卷
- Remove unused:批量删除未使用的数据卷
七、网络管理
7.1 网络列表
左侧菜单选择 "Networks":
默认网络:
bridge:默认桥接网络host:主机网络none:无网络
7.2 创建网络
- 点击 "Add network"
- 输入网络名称
- 选择驱动:
bridge、overlay、macvlan等 - 配置子网、网关(可选)
- 点击 "Create the network"
7.3 网络操作
- 查看网络详情
- 查看连接到该网络的容器
- 容器加入/移除网络
- 删除网络
八、Stacks 堆栈(Compose)
8.1 什么是 Stack
Stack 是 Portainer 对 Docker Compose 的封装,可以通过 Web 界面管理多容器应用。
8.2 创建 Stack
方法一:Web Editor(推荐)
- 左侧菜单选择 "Stacks"
- 点击 "Add stack"
- 选择 "Web editor"
- 输入 Stack 名称
- 在编辑器中粘贴 docker-compose.yml 内容
- 点击 "Deploy the stack"
方法二:Upload 上传本地的 docker-compose.yml 文件
方法三:Git Repository 从 Git 仓库拉取 Compose 文件部署
8.3 示例:部署 WordPress
version: '3.8'
services:
db:
image: mysql:8.0
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8080:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
- wp_data:/var/www/html
volumes:
db_data:
wp_data:8.4 Stack 管理
Stack 详情页:
- 查看所有服务
- 查看容器状态
- 查看日志
- 查看 Compose 文件
- 更新 Stack(Editor 中修改后重新部署)
- 删除 Stack
九、应用模板与 App Templates
9.1 使用内置模板
Portainer 内置了很多常用应用模板,一键部署:
- 左侧菜单选择 "App Templates"
- 浏览或搜索想要的应用
- 点击应用
- 配置参数(名称、端口、环境变量等)
- 点击 "Deploy the stack"
常用模板:
- Nginx
- WordPress
- MySQL
- Redis
- Nextcloud
- Ghost
- Jenkins
- GitLab
9.2 自定义模板
你可以添加自己的模板:
- 进入 "Settings" → "App Templates"
- 输入自定义模板的 URL(JSON 格式)
- 点击 "Save settings"
十、用户与权限管理
10.1 用户管理
添加用户:
- 左侧菜单选择 "Users"
- 点击 "Add user"
- 输入用户名和密码
- 选择角色:
- Administrator:管理员,全部权限
- Standard user:普通用户,受环境权限限制
- 点击 "Create user"
10.2 团队管理
创建团队:
- 左侧菜单选择 "Teams"
- 点击 "Add team"
- 输入团队名称
- 添加团队成员
10.3 环境权限管理
- 进入 "Environments"
- 点击环境名称
- 选择 "Access management"
- 添加用户或团队
- 设置角色(管理员/操作员/只读用户)
十一、多环境管理
11.1 添加远程 Docker 环境
Portainer 可以管理多台 Docker 主机:
方式一:Docker Socket 代理(推荐)
在远程主机上运行 Portainer Agent:
docker run -d \
--name portainer_agent \
--restart always \
-p 9001:9001 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/docker/volumes:/var/lib/docker/volumes \
portainer/agent:latest然后在 Portainer 中添加环境:
- "Environments" → "Add environment"
- 选择 "Docker" → "Agent"
- 输入名称和地址(
远程IP:9001) - 点击 "Add environment"
方式二:Docker API 开启远程 Docker API(不推荐,安全性较低)
11.2 环境分组
可以将多个环境分组管理:
- "Environments" → "Groups"
- 点击 "Add group"
- 添加环境到组中
十二、注册表管理
12.1 添加私有镜像仓库
- 左侧菜单选择 "Registries"
- 点击 "Add registry"
- 选择注册表类型:
- Docker Hub
- Azure ACR
- GitLab
- Custom registry
- 填写地址和认证信息
- 点击 "Add registry"
12.2 使用私有镜像
添加注册表后,拉取镜像时可以选择对应的注册表。
十三、监控与告警
13.1 容器资源监控
查看单个容器:
- 进入容器详情
- 点击 "Stats" 标签
- 查看 CPU、内存、网络、磁盘 I/O
查看环境总览: 仪表盘显示整体资源使用情况
13.2 日志查看
- 容器日志
- 事件日志(Events)
- Portainer 自身日志
13.3 事件日志
左侧菜单选择 "Events":
- 记录所有操作事件
- 按类型、时间筛选
- 操作审计
十四、Portainer 配置与维护
14.1 基本设置
"Settings" → "Settings":
- Logo:自定义 Logo
- Security:安全设置(密码最小长度等)
- App Templates:应用模板源
- Host management features:宿主机管理功能开关
14.2 备份与恢复
备份:
- "Settings" → "Backup"
- 点击 "Download backup"
- 输入密码加密备份文件
- 下载备份 JSON 文件
恢复:
- 重新安装 Portainer
- 首次设置时选择 "Restore from backup"
- 上传备份文件,输入密码
- 恢复完成
14.3 升级 Portainer
# 1. 停止并删除旧容器
docker stop portainer
docker rm portainer
# 2. 拉取最新镜像
docker pull portainer/portainer-ce:latest
# 3. 重新启动(数据卷不要删)
docker run -d \
--name portainer \
--restart always \
-p 9000:9000 \
-p 9443:9443 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest💡 数据卷
portainer_data不要删,升级后数据都还在。
十五、生产环境最佳实践
15.1 安全建议
- 使用 HTTPS:用 9443 端口,避免明文传输
- 强密码:管理员使用强密码
- 限制访问:不要直接暴露到公网,通过反向代理+防火墙
- 定期备份:定期备份 Portainer 配置
- 最小权限:普通用户只给必要权限
- 禁用宿主机管理:不需要就关掉 Host management features
15.2 Nginx 反向代理配置
server {
listen 80;
server_name portainer.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name portainer.example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass https://127.0.0.1:9443;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket 支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}15.3 性能优化
- 定期清理:清理未使用的镜像、容器、数据卷
- 限制资源:给 Portainer 容器设置内存限制
- 本地部署:Portainer 和 Docker 在同一台机器上性能最好
- 合理日志:配置合适的日志策略,避免日志过大
15.4 常见问题
问题 1:Portainer 无法连接 Docker
- 检查是否挂载了 docker.sock
- 检查文件权限
- 确保 Docker 服务在运行
问题 2:忘记管理员密码
- 停止 Portainer
- 删除数据卷(会丢失所有配置)
- 或使用官方重置密码工具
问题 3:容器日志看不到中文
- 检查容器的 locale 设置
- 确保应用输出编码为 UTF-8
十六、常用操作速查
| 操作 | 路径 |
|---|---|
| 查看容器 | Containers → 点击容器名 |
| 进入容器终端 | 容器详情 → Console → Connect |
| 查看日志 | 容器详情 → Logs |
| 创建容器 | Containers → Add container |
| 部署 Compose | Stacks → Add stack → Web editor |
| 拉取镜像 | Images → Pull image |
| 管理数据卷 | Volumes |
| 添加用户 | Users → Add user |
| 备份配置 | Settings → Backup |
| 查看事件 | Events |
十七、总结
Portainer 是 Docker 运维的利器:
- 降低门槛:可视化操作,不用记复杂命令
- 提升效率:一站式管理容器、镜像、网络、数据卷
- 团队协作:多用户、权限管理,适合团队使用
- 灵活扩展:支持多环境、Kubernetes、自定义模板
- 开源免费:CE 版功能足够大多数场景使用
🎯 从命令行转向可视化管理,用 Portainer 让 Docker 运维更轻松。
相关文章推荐: