nexus 代理 docker 时怎么设置才能省略 地址前缀。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
kyonn

nexus 代理 docker 时怎么设置才能省略 地址前缀。

  •  
  •   kyonn 2025 年 2 月 13 日 1539 次点击
    这是一个创建于 435 天前的主题,其中的信息可能已经有所发展或是发生改变。

    按照 nexus 设置,已经配置了 docker proxy 类型的代理,分别指向 dockerhub ,ghcr ,mcr 等 docker 源。同时配置 docker group 类型代理,将前面 3 个地址纳入 member 管理。

    然后在 docker client 的 /etc/docker/daemon.json 配置 registry-mirrors 指向 nexus 所在机器的 docker group 地址。

    现在发现,直接用 docker pull nginxproxy/nginx-proxy:1.7.0-alpine 可以拉取到 dockerhub 的镜像,并且在 nexus 缓存。但是,如果拉 ghcr 或 mcr 专有的镜像,则会提示失败,但是拉取镜像前面加上 nexus 的地址则可以成功,类似 docker pull 192.168.100.100:8080/nginxproxy/nginx-proxy:1.7.0-alpine ,假设 192.168.100.100 是 docker group 代理的地址。

    失败提示: Error response from daemon: pull access denied for devcontainers/base, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

    按照我的理解,既然已经在 daemon.json 设置了 mirros ,则所有原生不加地址前缀的 docker 请求都会被发往 nexus docker group 端口,看上去像 nexus 无法处理这种非 dockerhub 镜像的请求(已经尝试登录 dockerhub 外的私有站点,仍然无效)。

    11 条回复    2025-02-13 19:03:56 +08:00
    2Nfree
        1
    2Nfree  
       2025 年 2 月 13 日
    这个是因为如果你默认不加域的情况下走的就是 dockerhb 或者你在 daemon.json 中配置的镜像代理地址,因为 docker 的 daemon.json 默认是只适配与 dockerhub 的,其他第三方的仓库不在他这个的配置范围内
    kyonn
        2
    kyonn  
    OP
       2025 年 2 月 13 日
    @2Nfree 我配置了 daemon.json 的 mirror 为 nexus 的 docker group 地址,不加域名前缀也能正常工作。但是如果拉的镜像是 非 dockerhub 的,nexus 好像就没办法处理,理论上,流量都发给 nexus 了,应该能处理才对。
    kyonn
        3
    kyonn  
    OP
       2025 年 2 月 13 日
    @2Nfree 按照下面这篇文章,应该是可以省略域名前缀的。当然,这个文章比较早。

    [Using Nexus OSS as a proxy/cache for Docker images Tech by Maarten]( https://mtijhof.wordpress.com/2018/07/23/using-nexus-oss-as-a-proxy-cache-for-docker-images/)
    2Nfree
        4
    2Nfree  
       2025 年 2 月 13 日
    就是因为 daemon.json 默认是只适配与 dockerhub 的,所以例如 quay 或者 gcr 的相关都需要你添加代理仓库的前缀,你发的这个文章也是用的 dockerhub ,dockerhub 的代理是可以省去前面的域名的
    2Nfree
        5
    2Nfree  
       2025 年 2 月 13 日
    @2Nfree #4 修改一下,适配于 dockerhub 风格,quay.iogcr.ioghcr.io 这些与 dockerhub 的接口应该是不一致的,无法使用默认的无域名代理
    2Nfree
        6
    2Nfree  
       2025 年 2 月 13 日
    @kyonn #3 可以尝试一下,把代理区分开,不同的源仓库使用不同 nexus 仓库,这样例如你拉取 quay.io/xxx/xxx 镜像应该会走 quay.io 的代理
    KagurazakaNyaa
        7
    KagurazakaNyaa  
       2025 年 2 月 13 日
    添加多个 proxy 和一个 hosted ,最后用一个 group 作为提供服务的那个,就可以自动按顺序去 group 里排列的那些仓库里获取镜像了
    kyonn
        8
    kyonn  
    OP
       2025 年 2 月 13 日
    @2Nfree 直接指定 nexus 的地址前缀,是可以从 quay 、gcr 这些非 dockerhub 拉取的。
    kyonn
        9
    kyonn  
    OP
       2025 年 2 月 13 日
    @XiLingHost 现在就是这么做的,而且在 /etc/docker/daemon.json 配置 registry-mirrors 指向 nexus 所在机器的 docker group 地址。

    现在的疑问是直接 pull 镜像名,如果这个镜像在 dockerhub 有,那么工作正常,但是如果是 ghcr 这些非 dockerhub 独有的镜像,则 pull 命令无法拉到镜像,除非给镜像名前加上 nexus 地址前缀(这个地址对应 docker group )。


    包括 hosted 地址的私有镜像,也无法通过镜像名直接拉取,必须加上 nexus 地址前缀。
    KagurazakaNyaa
        10
    KagurazakaNyaa  
       2025 年 2 月 13 日
    有可能和设置里的 Docker Index 设置有关系,试试选择第一个 Use proxy registry
    kyonn
        11
    kyonn  
    OP
       2025 年 2 月 13 日
    @XiLingHost 除了 dockerhub 代理,其他代理设置的都是 Use proxy registry
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     938 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 22:38 PVG 06:38 LAX 15:38 JFK 18:38
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86