oras
是一个开源工具,全称为 OCI Registry As Storage,主要用途是将任意文件或工件(artifact)如模型文件、WebAssembly 模块、软件包等,打包并推送到符合 OCI(Open Container Initiative)标准的容器镜像仓库中,比如 Docker Hub、Harbor、GitHub Container Registry 等。
简单来说,oras
允许你把非容器类的内容当作镜像一样存储和分发。
🌟 主要特点
📦 支持将任意文件(如模型、配置、数据)推送到镜像仓库
🔐 支持 OCI 标准认证、签名等
🧩 可用于 MLOps 场景:分发模型、配置文件等
⚙️ 可集成入 CI/CD 流程
🐳 和常见的容器仓库兼容(如 Docker Hub、Harbor、Azure ACR)
🛠️ 安装
通过 Homebrew (macOS)
brew install oras
通过 Go 安装
go install github.com/oras-project/oras@latest
下载 Release 版本
前往 GitHub releases 下载你平台对应的版本。
🚀 基本使用
登录仓库(如果是私有仓库)
oras login ghcr.io
推送文件到镜像仓库
将文件 config.yaml
推送到 GitHub Container Registry:
oras push ghcr.io/your_user/config-artifact:latest \ --media-type application/vnd.yaml \ config.yaml
也可以推送多个文件:
oras push ghcr.io/your_user/my-model:v1 \ model.onnx \ tokenizer.json
拉取文件
oras pull ghcr.io/your_user/my-model:v1
执行完后会将文件下载到当前目录。
查看文件信息
oras manifest fetch ghcr.io/your_user/my-model:v1
📦 应用场景示例
将机器学习模型推送到镜像仓库,便于共享和分发
把配置文件、WASM 文件等纳入镜像仓库管理
替代传统的文件服务器,统一使用 OCI registry 作为分发中枢