704 分•作者: psviderski•11 个月前
我厌倦了每次需要部署 Docker 镜像时,都要进行推送到注册表/从注册表拉取的繁琐操作。<p>在某些情况下,使用一个成熟的外部(甚至是本地)注册表会带来恼人的额外开销。仔细想想,其实在任何支持 Docker 的主机上,都已存在一种注册表形式——Docker 自己的镜像存储。<p>因此,我构建了 Unregistry [1],它通过标准的注册表 API 暴露了 Docker 的(containerd)镜像存储。它添加了一个 `docker pussh` 命令,可以直接通过 SSH 将镜像推送到远程 Docker 守护进程。它只传输缺失的层,使其快速高效。<p><pre><code> docker pussh myapp:latest user@server
</code></pre>
在底层,它会在远程主机上启动一个临时的 unregistry 容器,通过 SSH 隧道推送到该容器,并在完成后清理。<p>我是在开发 Uncloud [2](一个用于跨 Docker 主机网络部署容器的工具)的过程中,顺便构建了它,并认为它作为一个独立的项目也会很有用。<p>很想听听您的想法和使用案例!<p>[1]: <a href="https://github.com/psviderski/unregistry">https://github.com/psviderski/unregistry</a><p>[2]: <a href="https://github.com/psviderski/uncloud">https://github.com/psviderski/uncloud</a>