我需要缓存码头图像,同时从码头枢纽在我的港口“代理缓存”项目。因此,我已经配置了一个带有选项代理缓存的项目。注册表部分还添加了一个带有提供者的新注册表端点,名为"Docker“。我向docker守护进程添加了以下配置。
cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.harbor.com"]
}虽然我是从码头枢纽的图像,它不是缓存在我的港口项目。需要帮助来解决这个问题和我的要求如何满足港口。
example
my cache project name = proxy
i need to pull httpd:latest这方法也不能工作
发布于 2020-10-07 21:20:38
更新的TLDR;
在最初回答这个问题的时候,没有一个好的解决办法。你可以读懂我原来的答案。或者,向下滚动到更新部分,我告诉您,港v2.1的博客说,他们现在支持这一点。
原始答案
我可以部分回答你的问题。但是,第2部分的答案是,您不能。我可以将问题链接到您,以向您表明,由于技术限制,它们明确地选择不这样做。好消息是,他们意识到这仍然是社会所希望的。
第1部分
您可能不知道的一件事是,在没有项目组的hub.docker上进行repos (如docker pull nginx),仍然需要在您的港口进行匹配的项目。它将在项目名称library上匹配。因此,请确保您有一个名为library的项目。没有这个library项目可能不会通过缓存,但它肯定会影响复制。
我的设置包含:港口网址:harbor.mydomain.com
项目:
我使用了下面的示例:
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记住,对于像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当我查看项目/缓存_代理-集线器-码头时,我看到:
还请记住,带有前缀的pull命令,也将是在您的机器上所知的那个图像在拉动之后。你得坚持到你所期望的程度。这就是为什么坞守护进程解决方案如此吸引人.
第2部分
我在同一个问题上到处乱跑。最后,我怀疑他们没有这样做。这是正确的:
https://github.com/goharbor/harbor/issues/8082#issuecomment-698012277
问题:
是否可以将港口2.1配置为透明的码头枢纽镜像?
答:
现在不行..。我们无法在2.1中找到足够好的解决方案,但我们知道这个要求。
更新
版本2.1的港湾博客表明,他们现在已经完全添加了这个特性。我上面的答案对于2.1之前的版本是准确的。我还没有亲自测试过这一点,但我会链接博客文章谈论它。
https://stackoverflow.com/questions/64188709
复制相似问题