Skip to main content
[ PIER ]

Portainer

Docker、Docker Swarm 和 Kubernetes 的 Web UI。

Service #docker#management#ui#containers#devops

Portainer 是一个轻量级 Web UI,用于管理 Docker 容器、Docker Swarm 集群和 Kubernetes 命名空间。它为开发者和运维团队提供精致的 GUI,用于检查运行容器、查看日志、管理卷和网络、部署栈 — 无需记住 docker / kubectl 命令。

使用 Pier 部署

  1. 1 打开 Pier 控制台,点击 Add service。
  2. 2 从模板列表中选择 Portainer。
  3. 3 选择版本、设置服务名称,Pier 会自动配置容器、存储和端口。
  4. 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。

代码示例

通过 API 添加 Docker 端点 bash
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
通过 API 部署栈 bash
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"
Git push 上的 Webhook 重新部署 bash
# CI 流水线 (.github/workflows/deploy.yml)
- name: Trigger Portainer redeploy
  run: |
    curl -X POST $PORTAINER_REDEPLOY_WEBHOOK
通过 API 进行容器 exec bash
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?
Pier 部署 Portainer 社区版(CE)。Business 版增加 RBAC 增强、edge compute 功能、审计日志和支持 — 但是单独的付费产品,不捆绑在此模板中。
Portainer 如何连接 Docker?
将 `/var/run/docker.sock` 挂载到 Portainer 容器(Pier 自动做这个)。Portainer 与本地 Docker 守护进程通信。对于远程主机,通过 UI 添加 TLS 安全的 Docker socket 端点。
首次设置?
在首次启动时通过 UI 创建管理员用户。默认端口是 9000/tcp(HTTP)或 9443/tcp(HTTPS)。Pier 暴露两者;附加域名通过 Traefik 获得干净的 HTTPS。
也可以管理 Kubernetes 吗?
是 — 通过 UI 中的 kubeconfig 连接到任何 K8s 集群。Portainer 的 K8s UI 对命名空间、部署、ingress、configmap、secret 是稳固的。
卷?
Pier 将 `/data` 挂载为持久卷 — 包含 Portainer 的配置 + 用户数据库 + 端点定义。
如何备份?
Portainer 的 Settings → Backup 提供一键加密备份 ZIP。在新安装上恢复。定期安排。
认证 / SSO?
默认本地账户。在 Settings → Authentication 中配置 LDAP、OAuth(Google、GitHub、GitLab、Azure AD、自定义 OIDC)。

相关服务

在你的 VPS 上部署

Portainer 是一个轻量级 Web UI,用于管理 Docker 容器、Docker Swarm 集群和 Kubernetes 命名空间。它为开发者和运维团队提供精致的 GUI,用于检查运行容器、查看日志、管理卷和网络、部署栈 — 无需记住 docker / kubectl 命令。

部署此服务 →