首页Dockerpsviderski/unregistry
psviderski

unregistry

DevOps#Docker#SSH#Deployment#Containerization
前往 GitHub →
4,737

// 项目简介

Unregistry 是一款轻量级工具,无需外部 registry 即可将 Docker 镜像直接传输到远程服务器。它利用 SSH 隧道技术,仅将缺失的镜像层高效推送到目标主机。这种方法通过消除对中间存储或复杂 registry 配置的需求,简化了部署工作流程。

// 技术分析

Unregistry 是一款轻量级工具,旨在通过实现本地机器与远程服务器之间基于 SSH 的直接点对点传输,从而简化容器镜像的分发。它无需外部镜像仓库或复杂的自托管基础设施,通过基于层的增量传输优化带宽,解决了镜像迁移过程中的阻碍。该项目利用 containerd 镜像存储作为后端,为传统的“save/load”工作流或依赖公共镜像仓库的方案提供了一种高效的替代选择。

// 核心亮点

01
支持通过 SSH 将镜像直接推送到远程服务器,无需外部或自托管的镜像仓库。
02
仅传输缺失的层以优化传输速度,功能类似于 Docker 镜像的 rsync。
03
作为插件无缝集成到 Docker CLI 中,允许用户通过 'docker pussh' 执行命令。
04
支持使用标准 SSH 密钥和自定义 SSH 配置文件进行安全、经过身份验证的部署。
05
利用 containerd 镜像存储减少存储开销,使 Docker 能够直接共享镜像而无需重复存储。
06
便于在无法访问或受限的离线(air-gapped)环境中进行部署。

// 典型使用场景

01
从本地开发环境直接将容器镜像部署到生产服务器
02
通过将镜像直接推送到部署目标来简化 CI/CD 流水线
03
在隔离的家庭实验室或气隙网络环境中分发容器镜像

// 快速开始

首先,通过 Homebrew 安装该插件,或直接将二进制文件下载到 ~/.docker/cli-plugins 目录中。安装完成后,确保远程服务器已配置 Docker 和 SSH 访问权限,然后执行 'docker pussh <image_name> <user@server>' 来传输镜像。你可以通过运行 'docker pussh --help' 来验证安装并查看可用选项。