返回目录
开源项目游戏开发类新手

Portainer Community Edition:轻量级容器化应用交付与管理平台

Portainer Community Edition(CE)是一个轻量级服务交付平台,用于管理 Docker、Swarm、Kubernetes 和 ACI 环境。它以单个容器形式部署,可在任意集群运行,支持 Linux 容器或 Windows 原生容器,通过“智能”图形界面和完整的 API 管理容器、镜像、卷、网络等编排资源。项目以 zlib 许可证开源,社区提供支持,商业版在此开源基础之上提供 RBAC、官方支持等企业功能。

0 次阅读2026/09/11 发布
Portainer Community Edition:轻量级容器化应用交付与管理平台 来源图片

社区作者 · zZz

它解决什么问题

项目定位

Portainer Community Edition 是一个轻量级服务交付平台,面向容器化应用,可用于管理 Docker、Swarm、Kubernetes 和 ACI 环境。其设计目标是部署简单、使用同样简单,允许用户通过“智能”GUI 和/或功能完善的 API 管理全部编排资源(容器、镜像、卷、网络等)。

配图 1 为 Portainer 官方 GitHub 仓库的横幅图,用于标识该项目。

架构与部署形态

  • 由单个容器组成,可运行在任意集群上。
  • 可部署为 Linux 容器,也可部署为 Windows 原生容器。

版本差异

  • Portainer Business Edition(BE)在开源基础之上构建,包含面向企业用户需求的高级功能(例如 RBAC 与官方支持)。
  • 来源提供 CE 与 BE 的对比入口,以及 Take3 活动(可免费获得 3 个 Portainer Business 节点,时长不限)和 BE 安装指南。

版本更新节奏

Portainer CE 定期更新,目标约每几个月发布一次更新版本。

社区与支持

  • CE 是开源项目,由社区提供支持;如需受支持版本可在 portainer.io 购买。
  • 问题反馈:https://github.com/portainer/portainer/issues
  • Slack 聊天:https://portainer.io/slack
  • 可通过 https://www.portainer.io/join-our-community 加入社区,提前获取活动、内容及相关信息。

贡献方式

  • 提交缺陷或功能请求请开 issue。
  • 想参与构建 Portainer,可遵循贡献指南在本地构建并提交 pull request。

API 类型生成机制

前端使用一个由 Go API 的 Swagger 注解生成的 TypeScript API 客户端(SDK 函数与请求/响应类型)。任何 API 变更——新增端点、修改请求/响应结构或移除端点——之后都需要重新生成:

代码
make generate-api

该命令执行以下流水线:

代码
Go Swagger 注解
→ dist/docs/swagger.yaml(make docs-build,通过 swaggo/swag)
→ dist/docs/openapi.yaml(swagger2openapi + 校验)
→ app/react/portainer/generated-api/portainer/(hey-api/openapi-ts)

生成器配置位于 openapi-ts.config.ts,用于控制输出路径、插件和标签过滤器(例如已废弃端点与 edge_agent 标签路由会被排除)。生成文件位于 app/react/portainer/generated-api/portainer/,禁止手工编辑——下一次运行会覆盖改动。应导入生成的 SDK 函数与类型,而不是直接写 HTTP 调用:

  • @api/sdk.gen —— SDK 函数
  • @api/types.gen —— 请求/响应类型

关于如何为 handler 添加注解以便被生成器识别,参见 “Adding api docs”。

安全与隐私

  • 安全漏洞上报方式见项目的 Security Policy。
  • 为了把开发精力放在正确的地方,项目需要了解哪些功能使用最频繁,因此使用 Matomo Analytics,托管于德国并完全符合 GDPR。
  • Portainer 首次启动时会提供禁用分析的选项。如果用户未选择禁用,则按隐私政策收集匿名使用数据。来源明确说明:任何时候都不会发送或存储个人可识别信息,数据仅用于帮助改进 Portainer。

限制

Portainer 仅支持 “Current - 2” 的 Docker 版本,即当前版本及此前两个版本;更早版本可能可用,但不受支持。

许可证

Portainer 采用 zlib 许可证,详见 LICENSE。项目还包含来自其他开源项目的代码,清单见 ATTRIBUTIONS.md。

适用对象

适合需要以图形界面与 API 统一管理 Docker、Swarm、Kubernetes、ACI 环境的运维人员、开发者和平台团队;需要 RBAC、官方支持等企业能力的用户可考虑商业版。

— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。

安装 / 开始使用

以下步骤严格依据来源正文整理;来源未给出的具体命令一律标注“待核验”,请以官方 Deploy Portainer 与 Documentation 页面为准。

一、准备环境

  1. 需要可用的容器运行环境:Portainer 支持 Docker、Swarm、Kubernetes 和 ACI 环境。

步骤 2

可复制命令
Docker 版本要求:来源明确说明 Portainer 仅支持 “Current - 2” 的 Docker 版本

(当前版本及此前两个版本);更早版本可能可以运行,但不受官方支持。

  1. 部署形态二选一:Linux 容器或 Windows 原生容器。
  1. Portainer 本身由单个容器组成,可运行在任意集群上。

二、部署步骤

  1. 按官方部署入口部署 Portainer:来源给出的入口为 “Deploy Portainer”。
  1. 具体部署命令(如容器镜像拉取与启动参数)来源未提供:待核验,请参见官方 Documentation。
  1. 部署完成后通过 GUI 与/或 API 管理编排资源:容器、镜像、卷、网络等。

三、首次运行

  1. Portainer 首次启动时,会提示是否禁用分析统计。
  1. 如果选择禁用,则不收集使用数据;如果未选择禁用,则按隐私政策收集匿名使用数据(使用 Matomo Analytics,托管于德国,符合 GDPR)。
  1. 来源强调:任何时候都不会发送或存储个人可识别信息,数据仅用于改进 Portainer。
  1. 首次运行后的初始化配置(如管理员账号创建)步骤来源未提供:待核验。

四、本地构建与贡献

  1. 如需参与开发,遵循官方 contribution guidelines 在本地构建 Portainer,并提交 pull request。
  1. 本地构建的具体命令与依赖来源未提供:待核验。
  1. 提交缺陷或功能请求:在 https://github.com/portainer/portainer/issues 开 issue。

五、生成 API 类型(修改 API 后必须执行)

  1. 适用场景:任何 API 变更之后——新增端点、修改请求/响应结构、移除端点。
  1. 执行命令:
代码
make generate-api
  1. 该命令依次执行以下流水线:
可复制命令
Go Swagger 注解 → dist/docs/swagger.yaml

(make docs-build,通过 swaggo/swag)

  • dist/docs/swagger.yaml → dist/docs/openapi.yaml(swagger2openapi + 校验)
  • dist/docs/openapi.yaml → app/react/portainer/generated-api/portainer/(hey-api/openapi-ts)
  1. 生成器配置在 openapi-ts.config.ts 中,可控制输出路径、插件与标签过滤器(例如排除已废弃端点与 edge_agent 标签路由)。
  1. 使用生成结果:导入 @api/sdk.gen(SDK 函数)与 @api/types.gen(请求/响应类型),不要手写直接 HTTP 调用。
  1. 为新增 handler 添加 Swagger 注解的方法见 “Adding api docs” 文档。

六、常见问题

  • 为什么生成文件不能手改?生成文件位于 app/react/portainer/generated-api/portainer/,任何手工修改都会在下一次运行生成器时被覆盖。
  • 新端点没有被生成出来?检查 handler 是否按 “Adding api docs” 添加了注解,以及是否被 openapi-ts.config.ts 中的标签过滤器排除(如 deprecated、edge_agent)。
  • 支持哪些 Docker 版本?仅当前版本及此前两个版本受支持。
  • 有没有企业级支持与 RBAC?这些属于 Portainer Business Edition(BE)能力,来源提供 BE 安装指南与 Take3 免费 3 节点活动入口。
  • 遇到问题去哪里求助?可查社区支持渠道、开 issue 或加入 Slack。

来源教程配图

教程配图
配图 1 · 教程配图查看原图

适用场景

通过 Web GUI 统一管理 Docker 容器
镜像
卷和网络
管理 Swarm 与 Kubernetes 集群中的编排资源
管理 ACI 环境中的容器化应用
通过完整 REST API 将容器管理能力集成到自有平台或自动化流程
为开发与运维团队提供低门槛的容器可视化操作入口
在任意集群上以单容器方式快速部署容器管理平台
企业用户通过 Portainer Business Edition 获得 RBAC 与官方支持能力
作为前端 SDK 对接场景的 API 来源(@api/sdk.gen 与 @api/types.gen)