自建简易 docker 镜像源 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
mosby
V2EX    Linux

自建简易 docker 镜像源

  •  
  •   mosby 2024-06-11 17:51:40 +08:00 4256 次点击
    这是一个创建于 496 天前的主题,其中的信息可能已经有所发展或是发生改变。

    很早之前为了省流量缓存镜像折腾的,看到最近突然有人 star 了,分享一下,帮助有需要的人

    实现方式是客户端将 gcr.io k8s.gcr.io quay.io docker.io registry-1.docker.io nvcr.io 这些域名解析到自己的机器,利用 nginx 根据域名分流到不同的 docker registry,利用 docker registry 的 pull through cache 功能缓存&加速镜像下载。

    如果部署在外网 vps 的话可以直接用,如果部署在内网还需要指定一个代理,具体步骤可以看仓库 README

    https://github.com/brighill/registry-mirror

    第 1 条附言    2024-06-12 09:53:04 +08:00
    感谢大家友好的评论

    不知道是不是因为邀请码制度,感觉评论都很友好,上次发帖分享好多人不看内容就开喷

    另外仓库里是好几年之前的配置了,可能有一些小问题,我看很多人 fork 改了一些配置都挺不错,欢迎各位提 PR 完善配置
    7 条回复    2024-06-12 21:02:56 +08:00
    anubu
        1
    anubu  
       2024-06-11 18:13:28 +08:00   1
    非常感谢分享,给 OP 点赞。
    之前折腾了一个一样的实现,客户端侧老老实实配置 mirror ,发现 docker 只能 mirror dockerhub ,其它仓库直接忽略。被迫切换到 containerd 用它的 hosts.toml 。看到 OP 客户端侧劫持 DNS 解析加 insecure ,豁然开朗。
    E1n
        2
    E1n  
       2024-06-11 22:42:17 +08:00
    '''
    Error response from daemon: error parsing HTTP 403 response body: invalid character '<' looking for beginning of value: "<html>\r\n<head><title>403 Forbidden</title></head>\r\n<body>\r\n<center><h1>403 Forbidden</h1></center>\r\n<hr><center>nginx/1.20.1</center>\r\n</body>\r\n</html>\r\n"
    ''' 请问只能默认 80 端口,不能修改端口吗
    ebi5oowiiy1llo
        3
    ebi5oowiiy1llo  
       2024-06-12 00:50:03 +08:00 via Android   1
    原来作者也在这里呀,除了解析劫持还有共享存储也很妙,不过我设备多没弄劫持,直接泛域名解析正经用了,还加了个 ui 方便删镜像
    raysonlu
        4
    raysonlu  
       2024-06-12 09:37:35 +08:00
    为何不用 nexus?
    mosby
        5
    mosby  
    OP
       2024-06-12 09:38:29 +08:00
    @E1n 只能用 80 或者 443 ,其他端口的话镜像 tag 就不一样了,要改到 443 端口的话,理论上自签名一个泛域名证书,nginx.conf 里加上 sl 配置,客户端信任 ca 证书应该就行了
    dream10201
        6
    dream10201  
       2024-06-12 17:39:46 +08:00
    话说都上 V2EX 了,配置个代理不行吗?
    我用的 podman ,附上配置
    # cat /etc/containers/containers.conf.d/proxy.conf
    [engine]
    env=["HTTPS_PROXY=http://127.0.0.1:10809","HTTP_PROXY=http://127.0.0.1:10809"]
    [containers]
    http_proxy = false
    mosby
        7
    mosby  
    OP
       2024-06-12 21:02:56 +08:00
    统一回复一下:
    @dream10201
    这个使用场景不一样,全走代理只适合个人开发电脑或者节点很少的情况,节点很多的情况全都走代理速度慢又费流量

    另外就是某些离线环境,这个镜像仓库缓存好之后把整个目录打包也可以离线使用

    4 楼说的 nexus ,可以仔细看下仓库的内容,这个主要是用 nginx 域名分流以及劫持了 dns ,镜像 tag 是保持不变的
    比如要部署 kubeflow 之类的一些组件是可以直接使用默认配置,不需要任何改动

    还有 2 楼的端口问题,现在更新了一下默认 443 端口了,加了 ssl 证书生成脚本,只需要客户端信任 ca 证书
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2464 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 15:38 PVG 23:38 LAX 08:38 JFK 11: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