关于 portainer
Portainer Skill 是通过 Portainer REST API 管理 Docker 基础设施的命令行技能,面向 Portainer 用户。它涵盖容器与 Stack 的状态查看、控制、日志查询和重新部署。
主要功能
- 01查看服务状态与端点
- 02列出并控制容器
- 03查看和管理 Stack
- 04从 Git 重新部署 Stack
- 05查看容器日志
适用场景
- 01检查 Docker 环境及运行任务
- 02重启或检查容器
- 03代码更新后重新部署 Stack
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ sundial-org/ awesome-openclaw-skills --skill portainer安装后在 Claude Code 中输入/portainer确认已加载。
附带文件portainer.sh
详细介绍
🐳 Portainer 技能
╔═══════════════════════════════════════════════════════════╗
║ ║
║ 🐳 P O R T A I N E R C O N T R O L C L I 🐳 ║
║ ║
║ Manage Docker containers via Portainer API ║
║ Start, stop, deploy, redeploy ║
║ ║
╚═══════════════════════════════════════════════════════════╝
“Docker 容器?交给我这只睡莲叶上的青蛙吧。” 🐸
📖 这个技能能做什么?
Portainer 技能通过 Portainer 的 REST API 帮你管理 Docker 基础设施。无需操作网页界面,即可管理容器、堆栈和部署。
功能:
- 📊 状态 — 检查 Portainer 服务状态
- 🖥️ 端点 — 列出所有 Docker 环境
- 📦 容器 — 列出、启动、停止和重启容器
- 📚 堆栈 — 列出和管理 Docker Compose 堆栈
- 🔄 重新部署 — 从 git 拉取代码并重新部署堆栈
- 📜 日志 — 查看容器日志
⚙️ 要求
| 项目 | 详情 |
|---|---|
| Portainer | 2.x 版本,且可访问 API |
| 工具 | curl、jq |
| 身份验证 | API 访问令牌 |
设置
-
从 Portainer 获取 API 令牌:
- 登录 Portainer 网页界面
- 点击用户名 → 我的账户
- 滚动至“访问令牌” → 添加访问令牌
- 复制令牌(之后将无法再次查看!)
-
配置凭据:
# Add to ~/.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 — 列出容器
# List containers on default endpoint (4)
./portainer.sh containers
# List containers on specific endpoint
./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 — 列出所有堆栈
./portainer.sh stacks
输出:
25: steinbergerraum - ✓ active
33: cora - ✓ active
35: minecraft - ✓ active
4: pulse-website - ✗ inactive
stack-info — 堆栈详情
./portainer.sh stack-info 25
输出:
{
"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 — 容器控制
# Start a container
./portainer.sh start steinbergerraum-web-1
# Stop a container
./portainer.sh stop steinbergerraum-web-1
# Restart a container
./portainer.sh restart steinbergerraum-web-1
# Specify endpoint (default: 4)
./portainer.sh restart steinbergerraum-web-1 4
输出:
✓ Container 'steinbergerraum-web-1' restarted
logs — 查看容器日志
# Last 100 lines (default)
./portainer.sh logs steinbergerraum-web-1
# Last 50 lines
./portainer.sh logs steinbergerraum-web-1 4 50
🎯 工作流示例
🚀 “部署网站更新”
# After merging 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
🔧 故障排除
❌ “需要身份验证 / 找不到仓库”
问题: 堆栈重新部署因 git 身份验证错误而失败
解决方案: 堆栈需要 repositoryGitCredentialID 参数。脚本会自动从现有堆栈配置中读取该参数。
❌ “找不到容器”
问题: 容器名称不匹配
解决方案: 使用 ./portainer.sh containers 中显示的准确名称:
- 使用完整名称:
steinbergerraum-web-1,而不是steinbergerraum - 名称区分大小写
❌ “PORTAINER_URL and PORTAINER_API_KEY must be set”
问题: 尚未配置凭据
解决方案:
# Add to ~/.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 the Frog 🐸 的帮助)
由以下提供支持: Portainer API
所属项目: Clawdbot 技能合集
为 Clawdbot 社区倾注 💚
呱! 🐸
评论
支持 Markdown