mcpField
P
portainer

portainer

github.com/sundial-org云与 DevOps67062 次安装34 周前更新
代码仓库

关于 portainer

Portainer Skill 是通过 Portainer REST API 管理 Docker 基础设施的命令行技能,面向 Portainer 用户。它涵盖容器与 Stack 的状态查看、控制、日志查询和重新部署。

主要功能

  1. 01查看服务状态与端点
  2. 02列出并控制容器
  3. 03查看和管理 Stack
  4. 04从 Git 重新部署 Stack
  5. 05查看容器日志

适用场景

  1. 01检查 Docker 环境及运行任务
  2. 02重启或检查容器
  3. 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 拉取代码并重新部署堆栈
  • 📜 日志 — 查看容器日志

⚙️ 要求

项目详情
Portainer2.x 版本,且可访问 API
工具curl、jq
身份验证API 访问令牌
设置
  1. 从 Portainer 获取 API 令牌:

    • 登录 Portainer 网页界面
    • 点击用户名 → 我的账户
    • 滚动至“访问令牌” → 添加访问令牌
    • 复制令牌(之后将无法再次查看!)
  2. 配置凭据:

    # Add to ~/.clawdbot/.env
    PORTAINER_URL=https://your-portainer-server:9443
    PORTAINER_API_KEY=ptr_your_token_here
    
  3. 准备就绪! 🚀


🛠️ 命令

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

此命令将:

  1. 从 git 拉取最新代码
  2. 如有需要,重新构建容器
  3. 重启堆栈

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.02026-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