← 返回
未分类

Docker Image Puller

使用 Python 脚本下载 Docker 镜像并打包为 tar 文件。当用户说"下载镜像"、"拉取镜像"、"pull xxx"、"帮我下载 nginx 镜像"等触发此技能。支持 SOCKS5 代理直连下载(推荐)和国内镜像站加速两种模式。
使用 Python 脚本下载 Docker 镜像并打包为 tar 文件。用户说“下载镜像”“拉取镜像”“pull xxx”“帮我下载 nginx 镜像”等时触发。支持 SOCKS5 代理直连(推荐)和国内镜像站加速两种模式。
zhaohaixin zhaohaixin 来源
未分类 clawhub v1.3.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 380
下载
💾 0
安装
1
版本
#latest

概述

Docker 镜像拉取工具

从任意 Docker Registry 拉取镜像,打包为 .tar 文件供离线 docker load 使用。

资源文件

  • 脚本:scripts/docker_image_puller.py
  • 配置:config.json(首次运行时引导生成)

首次使用 — 配置引导

检查 config.jsonarch 字段:

  • 若为空("" 或不存在),引导用户完成首次配置:
  1. 下载方式 — 代理下载(推荐,最稳定)或镜像加速
  2. 代理地址(代理模式)— 默认 127.0.0.1:7890
  3. 镜像站地址(镜像模式)— 或让脚本运行时显示推荐列表
  4. 目标架构amd64(x86 服务器,默认)或 arm64v8(ARM 服务器)
    • arch 已有值,跳过引导,直接使用该配置

script_dir 自动解析为技能自带的 scripts/ 目录。

config.json 结构

{
  "mode": "proxy",
  "proxy_address": "127.0.0.1:7890",
  "mirror_url": "",
  "arch": "",
  "script_dir": "",
  "version": 1
}

arch 为空时触发首次引导。

执行流程

1. 读取配置,构建命令(安全执行)

读取 config.json,根据 mode 构建命令。使用 execshell=false(参数数组)方式调用,避免 shell 注入。

代理模式:

exec(
  command="python3 docker_image_puller.py -i '<image>' --socks5 --socks5-proxy '<proxy>' -a '<arch>'",
  workdir="<script_dir>"
)

镜像加速模式:

exec(
  command="printf 'y\\ny\\n<mirror>' | python3 docker_image_puller.py -i '<image>' -a '<arch>'",
  workdir="<script_dir>"
)

> ⚠️ 镜像名必须为合法 Docker 镜像引用(仅含字母、数字、/:-._),包含其他字符时先向用户确认。

2. Sub-Agent 后台下载

使用 sessions_spawn 启动隔离子任务,不阻塞主会话:

sessions_spawn(
  task="读取 <skill-dir>/config.json 获取配置。为镜像 '<镜像名>' 构建下载命令。用 exec 执行(background=true, timeout=600)。每 30 秒用 process 轮询进度。完成后报告 tar 路径和 docker load 命令。失败则报告具体原因。",
  mode="run",
  runtime="subagent",
  timeoutSeconds=900
)

立即回复用户:

> 📥 已启动后台下载 <镜像名>(架构:<架构>)... 完成后会通知你,可继续其他操作。

3. 结果报告

结果处理方式
---------------
✅ 成功报告 tar 文件路径 + docker load -i <路径>
⏱ 超时"下载超时,请检查网络或代理"
🔒 认证失败 401请用户提供仓库用户名/密码
🌐 网络错误报告具体 HTTP 错误码和失败 URL
💾 磁盘不足提醒用户清理磁盘空间

补充说明

  • 安全:脚本启用 HTTPS 证书校验(verify=True),不再禁用 TLS 验证。执行镜像下载时使用参数数组而非 shell 拼接,防止命令注入。
  • 输出路径:/images/<仓库>_<标签>_<架构>.tar
  • 脚本运行完毕后自动清理 tmp/ 临时目录,无需手动处理
  • config.json 跨次复用,用户可随时要求切换下载模式或指定架构

版本历史

共 1 个版本

  • v1.3.0 当前
    2026-05-21 13:38 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

it-ops-security

Free Ride - Unlimited free AI

shaivpidadi
管理OpenClaw的OpenRouter免费AI模型,自动按质量排名模型,配置速率限制备用方案,并更新opencla...
★ 472 📥 78,572
professional

A Stock Analyst.Bak

zhaohaixin
A股智能投研助手:行情分析、基本面分析、智能选股、自选股管理及监控预警。
★ 0 📥 486
it-ops-security

OpenClaw Backup

alex3alex
备份与恢复 OpenClaw 数据。适用于创建备份、设置自动备份计划、从备份恢复或管理备份轮转。处理 ~/.openclaw 目录归档并包含适当的排除规则。
★ 90 📥 31,070