Docker hub 与 Harbor 的缓存

Dam*_*nga 6 docker dockerhub docker-registry harbor

我需要在从 Harbor“Proxy Cache”项目中的 docker hub 拉取时缓存 docker 镜像。因此,我配置了一个带有选项代理缓存的项目。注册表部分还添加了一个新的注册表端点,其提供程序为“Docker Hub”。我将以下配置添加到 docker 守护进程。

cat /etc/docker/daemon.json 
{
 "registry-mirrors": ["https://registry.harbor.com"]
}
Run Code Online (Sandbox Code Playgroud)

当我从 docker hub 中提取图像时,它没有缓存在我的港口项目中。需要帮助来解决这个问题以及我的请求如何与港口实现。

example
my cache project name = proxy
i need to pull httpd:latest

Run Code Online (Sandbox Code Playgroud)

这个 方法也行不通

Geo*_*off 4

更新了 TLDR;

最初回答这个问题时,并没有很好的解决方案。你可以阅读我的原始答案。或者只需向下滚动到更新部分,我告诉您 Harbor v2.1 的博客说他们现在支持此功能。

原答案

我可以回答你的部分问题。但第二部分的答案是你不能。我可以将问题链接给您,以表明他们由于技术限制而明确选择不这样做。好消息是他们意识到这仍然是社区想要的东西。

第1部分

您可能不知道的一件事是,hub.docker 上的存储库没有项目组(例如docker pull nginx),但您的港口中仍然需要一个匹配的项目。它将匹配项目名称library。因此,请确保您有一个名为 的项目library。没有这个library项目可能不会影响通过缓存,但它肯定会影响复制。

我的设置包含: 港口网址:harbor.mydomain.com

项目:

  • 图书馆
  • 缓存_代理集线器-docker

我得到了我的拉力与以下示例一起工作:

    docker pull harbor.mydomain.com/cache_proxy-hub-docker/goharbor/redis-photon:v2.1.0
    v2.1.0: Pulling from cache_proxy-hub-docker/goharbor/redis-photon
    b2823a5a3d08: Pull complete
    ...omitted...
    369af38cd511: Pull complete
    Digest: sha256:11bf4d11d81ef582401928b85aa2e325719b125821a578c656951f48d4c716be
Run Code Online (Sandbox Code Playgroud)

请记住,对于诸如 之类的事情docker pull ngninx,您必须像实际上那样做library/nginx

    docker pull harbor.mydomain.com/cache_proxy-hub-docker/library/nginx
    Using default tag: latest
    latest: Pulling from cache_proxy-hub-docker/library/nginx
    d121f8d1c412: Pull complete
    ...ommitted...
    Digest: sha256:fc66cdef5ca33809823182c9c5d72ea86fd2cef7713cf3363e1a0b12a5d77500
Run Code Online (Sandbox Code Playgroud)

当我查看 items/cache_proxy-hub-docker 时,我看到:

  • cache_proxy-hub-docker/库/nginx
  • cache_proxy-hub-docker/goharbor/redis-photon

另请记住,带有前缀的 pull 命令也将是拉取后该映像在您的计算机上的名称。您必须将其重新标记为您真正期望的内容。这就是为什么 docker daemon 解决方案如此有吸引力......

第2部分

我在同样的问题上跑来跑去。最后我怀疑他们并没有这样实现。那是对的:

https://github.com/goharbor/harbor/issues/8082#issuecomment-698012277

问题:

有没有办法将harbor 2.1配置为透明的docker hub镜像?...

回答:

目前还不行……我们在 2.1 中找不到足够好的解决方案,但我们知道这个要求。

更新

Harbor v2.1 博客表示他们现在已经完全添加了这个功能。我上面的回答对于 2.1 之前的版本是准确的。我还没有亲自测试过这一点,但我会链接讨论它的博客文章。

博客: https: //goharbor.io/blog/harbor-2.1/