gpt4 book ai didi

docker - Nexus3 : Push to Docker Group Repo

转载 作者:行者123 更新时间:2023-12-02 06:57:29 28 4
gpt4 key购买 nike

我有 Nexusv3.6 并创建了一个 Docker 存储库 docker-repo (类型:托管)和 Docker 组 docker-group (类型:团体)。对于两者,我都启用了 HTTPS 连接器:enter image description here

docker-repo在端口 8101docker-group在端口 8102 .

我添加了docker-repo给我的docker-group .

现在我可以将图像插入/拉出 docker-repo直接点赞:

docker push myhost.com:8101/mymimage:latest

但是当我尝试像这样推送到该组时:

docker push myhost.com:8102/docker-repo/mymimage:latest

我收到一条错误消息:error parsing HTTP 404 response body: invalid character '<' looking for beginning of value

你知道这里有什么问题吗?

最佳答案

我用 NGINX 解决了这个问题,如下所示:已更新

在以下示例中,“repository/docker”是组合了 docker-proxy 和 docker 托管存储库的组。

所有 HEAD* 和 GET 请求都代理到 docker 存储库组(托管 + 代理)。所有“更改”请求都直接代理到 docker 托管的存储库。
*有一个异常(exception)。 HEAD/v2/.../blobs/ 应该代理到托管存储库,因为它在将 blob 推送到托管存储库之前调用,并且我们必须检查托管存储库中是否存在 blob。否则我们会收到错误:blobknown: blobknown toregistry

    server {
listen *:443 default_server ssl;

.........................

location ~ ^/(v1|v2)/[^/]+/?[^/]+/blobs/ {
if ($request_method ~* (POST|PUT|DELETE|PATCH|HEAD) ) {
rewrite ^/(.*)$ /repository/docker-hosted/$1 last;
}
rewrite ^/(.*)$ /repository/docker/$1 last;
}

location ~ ^/(v1|v2)/ {
if ($request_method ~* (POST|PUT|DELETE|PATCH) ) {
rewrite ^/(.*)$ /repository/docker-hosted/$1 last;
}
rewrite ^/(.*)$ /repository/docker/$1 last;
}

location / {
proxy_pass http://nexus:8081/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto "https";
}
}

您可以通过运行来验证设置:

# pull via proxy
docker pull nexus.your.domain/ubuntu

# push to the hosted repository
docker push nexus.your.domain/ubuntu

关于docker - Nexus3 : Push to Docker Group Repo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47178055/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com