Portainer
Docker、Docker Swarm 和 Kubernetes 的 Web UI。
Portainer 是一个轻量级 Web UI,用于管理 Docker 容器、Docker Swarm 集群和 Kubernetes 命名空间。它为开发者和运维团队提供精致的 GUI,用于检查运行容器、查看日志、管理卷和网络、部署栈 — 无需记住 docker / kubectl 命令。
使用 Pier 部署
- 1 打开 Pier 控制台,点击 Add service。
- 2 从模板列表中选择 Portainer。
- 3 选择版本、设置服务名称,Pier 会自动配置容器、存储和端口。
- 4 如需 HTTPS,请绑定域名。Traefik 会自动签发 Let's Encrypt 证书。
什么是 Portainer?
Portainer 是世界上最流行的 Docker、Docker Swarm 和 Kubernetes Web UI。 2016 年作为副项目起步,旨在为 Docker CLI 提供友好的面孔,它已发展为一个 精致的、生产就绪的 GUI,被数十万团队用来管理容器部署,而无需记住每个 docker/kubectl 标志。
它连接到本地 Docker socket(或远程 Docker / Swarm / K8s 端点)并为你 提供容器、镜像、卷、网络、构建、栈、部署的可点击视图。你可以停止行为 不当的容器、exec shell 进入它、跟踪其日志或重新部署整个 Docker Compose 栈 — 都从浏览器。
Pier 如何部署它
Pier 使用官方 portainer/portainer-ce Docker 镜像(社区版)。容器从主机
挂载 /var/run/docker.sock(这样 Portainer 可以看到和管理同一 Docker
引擎上的所有容器)和 /data 作为持久卷用于其数据库和配置。
默认端口是 9000/tcp(HTTP UI)和 9443/tcp(内置 HTTPS)。通过 Pier 附加 域名 — Traefik 在干净的 URL 上处理 HTTPS 终止并代理到内部 9000。
首次登录:第一次访问 UI 提示你创建管理员用户。之后,登录在 /。
何时不要使用 Portainer
Pier 本身涵盖 Portainer 的大多数日常用例(服务模板、HTTPS、备份、日志、 env 管理)。在 Pier 旁边使用 Portainer,当你想要更低级别的 Docker 访问 — 检查 Pier 没有创建的任意容器、管理 Swarm 服务、调试网络接口、附加到系统 容器的日志。如果你的用例完全适合 Pier 的托管模板,你可能根本不需要 Portainer。
核心功能
完整的 Docker UI
查看运行容器、启动/停止/重启、exec 进入、查看实时日志、浏览镜像、网络、卷、构建。任何你会从 `docker` CLI 做的事。
Docker Compose / Stacks
通过 UI 从 Docker Compose 文件部署多容器应用。在浏览器中编辑 YAML;一键重新部署。Webhook 支持 CI 自动部署。
多环境仪表板
一个 Portainer 实例管理许多 Docker 主机、Swarm 集群和 Kubernetes 命名空间。按标签分组端点;用下拉切换。
用户访问和 RBAC
内置用户 + 团队 + 角色。按环境、按资源类型、按端点限制访问。支持 LDAP、OAuth(Google、GitHub、GitLab、Azure AD)和 OpenID Connect。
应用模板
从预定义模板目录一键部署。添加你自己的模板 JSON 用于组织内部部署。
Edge Compute 支持
管理发起连接的远程 Docker 主机(NAT、防火墙友好)。对 IoT 车队部署或 DMZ 服务器有用。
应用场景
开发者自助服务
给开发者一个 UI 来启动/停止他们自己的预发布容器,而无需在主机上给他们 sudo。通过 RBAC 限制。
多主机 Docker 车队管理
一个 Portainer 管理你的开发、预发布和生产 Docker 主机。按环境标记端点;部署栈一次,针对多个主机。
Kubernetes lite UI
对于小到中型 K8s 集群,Portainer 的 UI 比 Lens 或 k9s 简单。通过 UI 从清单或 Helm chart 部署。
面向客户的应用 UI
一些 MSP 将 Portainer 的 UI(在 Business 版中白标)用作客户的应用部署界面 — 一个"PaaS lite"。
容器故障排查
在事件响应期间在一个屏幕中检查运行容器的 env、卷、网络附件、日志和 exec shell。
代码示例
curl -X POST \
-H "X-API-Key: $PORTAINER_API_KEY" \
-F 'Name=prod-docker' \
-F 'EndpointCreationType=1' \
-F 'URL=tcp://prod-docker:2376' \
-F 'TLS=true' \
-F '[email protected]' \
https://portainer.example.com/api/endpoints curl -X POST \
-H "X-API-Key: $PORTAINER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "myapp",
"stackFileContent": "version: \"3.8\"\nservices:\n web:\n image: nginx",
"swarmID": "abc123",
"fromAppTemplate": false
}' \
"https://portainer.example.com/api/stacks?type=1&method=string&endpointId=1" # CI 流水线 (.github/workflows/deploy.yml)
- name: Trigger Portainer redeploy
run: |
curl -X POST $PORTAINER_REDEPLOY_WEBHOOK curl -X POST \
-H "X-API-Key: $PORTAINER_API_KEY" \
-d '{"AttachStdin":true,"AttachStdout":true,"Cmd":["sh"],"Tty":true}' \
https://portainer.example.com/api/endpoints/1/docker/containers/<id>/exec 对比
| vs Docker CLI / docker-compose | CLI 是最强大且可脚本化的,但有学习曲线。Portainer 是 UI 版本 — 对高级用户较慢,对临时任务和不在终端中生活的团队成员更快。 |
| vs Pier(本平台) | Pier 是更高级别的 PaaS — 有主见的部署、自动 SSL、备份、服务模板。Portainer 是更低级别的 Docker UI — 完整 Docker 访问,无内置 HTTPS 或备份。许多用户两者都运行 — Pier 用于托管服务,Portainer 用于"我只是想看看这个容器"。 |
| vs Rancher | Rancher 针对大规模 Kubernetes。Portainer 对 Docker 优先工作流更简单。对于纯 K8s,Rancher 或 OpenLens 更丰富;对于 Docker + 轻量 K8s,Portainer 在简洁性上胜出。 |
| vs Yacht、Dockge | 更轻的专注于 Compose 栈的 Docker UI。Portainer 更重,但覆盖 Swarm、Kubernetes、RBAC、多主机 — 更轻的替代品跳过的东西。 |
常见问题
CE 还是 BE?
Portainer 如何连接 Docker?
首次设置?
也可以管理 Kubernetes 吗?
卷?
如何备份?
认证 / SSO?
相关服务
在你的 VPS 上部署
Portainer 是一个轻量级 Web UI,用于管理 Docker 容器、Docker Swarm 集群和 Kubernetes 命名空间。它为开发者和运维团队提供精致的 GUI,用于检查运行容器、查看日志、管理卷和网络、部署栈 — 无需记住 docker / kubectl 命令。
部署此服务 →