使用 Portainer API 控制 Docker 容器和堆栈,包括列出容器、启停/重启、查看日志以及从 Git重新部署堆栈。
」这个Portainer Skill ,“Docker 容器,我用我的百合板处理
功能概述
」这个Portainer Skill ,“Docker 容器,我用我的百合板处理是一项面向实际任务的技能,主要用于” 这个Portainer Skill 让你通过Portainer的软件控制你的Docker 基础设施。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
核心要点
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
使用与执行
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
结果检查与注意事项
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
🐳 Portainer 技能
╔═══════════════════════════════════════════════════════════╗
║ ║
║ 🐳 P O R T A I N E R C O N T R O L C L I 🐳 ║
║ ║
║ 通过 Portainer API 管理 Docker 容器 ║
║ 启动、停止、部署、重新部署 ║
║ ║
╚═══════════════════════════════════════════════════════════╝
“Docker 容器?我从我的睡莲叶上就能搞定。” 🐸
📖 此技能的作用是什么?
Portainer 技能 通过 Portainer 的 REST API,为您提供对 Docker 基础设施的完整控制能力——无需打开 Web UI,即可管理容器、堆栈(Stack)和部署任务。
功能特性:
- 📊 状态查询(status) — 检查 Portainer 服务端运行状态
- 🖥️ 环境端点(endpoints) — 列出所有已注册的 Docker 环境
- 📦 容器管理(containers) — 列出、启动、停止、重启容器
- 📚 堆栈管理(stacks) — 列出并管理基于 Docker Compose 的堆栈
- 🔄 重新部署(redeploy) — 从 Git 拉取最新代码并重新部署堆栈
- 📜 日志查看(logs) — 查看指定容器的标准输出与错误日志
⚙️ 使用要求
| 项目 | 说明 |
|---|---|
| Portainer | 2.x 版本,且已启用 API 访问 |
| 依赖工具 | curl、jq |
| 认证方式 | API 访问令牌(Access Token) |
配置步骤
从 Portainer 获取 API Token:
- 登录 Portainer Web UI
- 点击右上角用户名 → “My Account”(我的账户)
- 滚动至 “Access tokens”(访问令牌)区域 → 点击 “Add access token”(添加访问令牌)
- 复制生成的令牌(该令牌仅显示一次,关闭后不可再查看!)
配置凭证信息:
# 添加至 ~/.clawdbot/.env PORTAINER_URL=https://your-portainer-server:9443 PORTAINER_API_KEY=ptr_your_token_here
完成! 🚀
🛠️ 可用命令
status — 检查 Portainer 服务端状态
./portainer.sh status
输出示例:
Portainer v2.27.3
endpoints — 列出全部环境端点
./portainer.sh endpoints
输出示例:
3: portainer (local) - ✓ online 4: production (remote) - ✓ online
containers — 列出容器
# 在默认端点(ID=4)上列出容器 ./portainer.sh containers # 在指定端点(如 ID=3)上列出容器 ./portainer.sh containers 3
输出示例:
steinbergerraum-web-1 running Up 2 days cora-web-1 running Up 6 weeks minecraft running Up 6 weeks (healthy)
stacks — 列出全部堆栈(Stack)
./portainer.sh stacks
输出示例:
25: steinbergerraum - ✓ active 33: cora - ✓ active 35: minecraft - ✓ active 4: pulse-website - ✗ inactive
stack-info — 查看堆栈详细信息
./portainer.sh stack-info 25
输出示例(JSON 格式):
{
"Id": 25,
"Name": "steinbergerraum",
"Status": 1,
"EndpointId": 4,
"GitConfig": "https://github.com/user/repo",
"UpdateDate": "2026-01-25T08:44:56Z"
}
redeploy — 拉取更新并重新部署堆栈 🔄
./portainer.sh redeploy 25
输出示例:
✓ Stack 'steinbergerraum' redeployed successfully
该操作将执行以下步骤:
- 从 Git 仓库拉取最新代码
- 如有必要,重建相关容器镜像
- 重启整个堆栈
start / stop / restart — 容器生命周期控制
# 启动容器 ./portainer.sh start steinbergerraum-web-1 # 停止容器 ./portainer.sh stop steinbergerraum-web-1 # 重启容器 ./portainer.sh restart steinbergerraum-web-1 # 显式指定端点(默认为 4) ./portainer.sh restart steinbergerraum-web-1 4
输出示例:
✓ Container 'steinbergerraum-web-1' restarted
logs — 查看容器日志
# 默认显示最后 100 行 ./portainer.sh logs steinbergerraum-web-1 # 显示最后 50 行,并指定端点 ID(4) ./portainer.sh logs steinbergerraum-web-1 4 50
🎯 典型工作流示例
🚀 “部署网站更新”
# 合并 PR 后立即执行 ./portainer.sh redeploy 25 ./portainer.sh logs steinbergerraum-web-1 4 20
🔧 “调试容器问题”
./portainer.sh containers ./portainer.sh logs cora-web-1 ./portainer.sh restart cora-web-1
📊 “系统概览检查”
./portainer.sh status ./portainer.sh endpoints ./portainer.sh containers ./portainer.sh stacks
🔧 故障排查
❌ “Authentication required / Repository not found”(需认证 / 仓库未找到)
问题原因: 堆栈重新部署时发生 Git 认证失败
解决方案: 堆栈需配置 repositoryGitCredentialID 参数。本脚本会自动从已有堆栈配置中读取该值,无需手动干预。
❌ “Container not found”(容器未找到)
问题原因: 输入的容器名称不匹配
解决方案: 请使用 ./portainer.sh containers 输出中的**完整精确名称**:
- 必须包含完整名称,例如:
steinbergerraum-web-1,而非steinbergerraum - 容器名称区分大小写
❌ “PORTAINER_URL and PORTAINER_API_KEY must be set”(必须设置 PORTAINER_URL 和 PORTAINER_API_KEY)
问题原因: 凭证未正确配置
解决方案:
# 添加至 ~/.clawdbot/.env echo "PORTAINER_URL=https://your-server:9443" >> ~/.clawdbot/.env echo "PORTAINER_API_KEY=ptr_your_token" >> ~/.clawdbot/.env
🔗 与 Clawd 集成示例
"Redeploy the website" → ./portainer.sh redeploy 25 "Show me running containers" → ./portainer.sh containers "Restart the Minecraft server" → ./portainer.sh restart minecraft "What stacks do we have?" → ./portainer.sh stacks
📜 更新日志
| 版本号 | 日期 | 变更内容 |
|---|---|---|
| 1.0.0 | 2026-01-25 | 初始发布 |
🐸 致谢
@..@ (----) ( >__< ) "Containers are just fancy lily pads ^^ ^^ for your code to hop around!"
作者:Andy Steinberger(由他的 Clawdbot 青蛙 Owen 🐸 协助完成)
底层支持:Portainer API
所属项目:Clawdbot Skills Collection
为 Clawdbot 社区倾心打造 💚
Ribbit! 🐸
热门AI工具
相关专题
Docker Compose教程大全提供Docker Compose安装、YAML配置、容器编排、多服务部署以及项目实战案例,帮助开发者快速构建Docker微服务环境。
432
2026.05.21
Docker安装教程专题整理Docker安装教程、Docker Desktop配置、Windows与Mac安装方法、Linux容器环境部署以及常见报错解决方案,帮助开发者快速完成Docker开发环境搭建。
464
2026.05.21
RabbitMQ Docker实战指南提供 RabbitMQ Docker 镜像部署、Docker Compose、Kubernetes Operator 与云原生实践教程。
102
2026.05.20
聚焦 Hyperf 在生产环境的落地,包含 Docker 高效打包、Swoole 配置优化、常见的内存溢出(OOM)问题排查方法以及热更新方案。
345
2026.05.19
聚焦 Go 应用的容器化部署优势与实践,讲解 Go 静态编译特性(CGO_ENABLED=0)与 scratch / distroless 极小基础镜像构建、多阶段 Dockerfile 编写规范、交叉编译生成目标平台二进制、镜像安全扫描(Trivy)与漏洞修复、Docker Compose 本地编排开发环境、Kubernetes Deployment / Service / ConfigMap 部署 Go 服务、健康检查(Livene
225
2026.05.15
聚焦 Java 应用的容器化与云原生部署,讲解 Dockerfile 编写规范与 Java 应用镜像构建、多阶段构建(Multi-stage Build)减小镜像体积、Jib / Buildpacks 免 Dockerfile 镜像构建方案、JVM 容器感知参数(-XX:MaxRAMPercentage)配置、Docker Compose 编排多服务(应用 + MySQL + Redis)、容器健康检查与资源限制、Kubernetes
280
2026.05.11
本专题面向后端与运维开发者,系统讲解 Docker 容器化技术在实际项目中的应用。内容涵盖 Docker 镜像构建、容器运行机制、Docker Compose 多服务编排,以及在 DevOps 流程中的持续集成与持续部署实践。通过真实场景演示,帮助开发者实现应用的快速部署、环境一致性与运维自动化。
179
2026.02.11
热门下载
相关下载
精品课程
最新文章

