V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
noclin
V2EX  ›  分享创造

公网 DockerHub 镜像站下架了,推荐下内网自建镜像的小项目

  •  
  •   noclin · 153 天前 · 6097 次点击
    这是一个创建于 153 天前的主题,其中的信息可能已经有所发展或是发生改变。

    LightMirrors 是一个开源的缓存镜像站服务,用于加速软件包下载和镜像拉取。 目前支持 DockerHub 、PyPI 、PyTorch 、NPM 等镜像缓存服务。 当前项目仍处于早期阶段。

    Github: https://github.com/NoCLin/LightMirrors

    给实验室和 Homelab 开发的非常轻量级的缓存镜像站,还有一些坑没有填,但基本可用。

    这个项目之前也被阮一峰老师的周刊推荐过: https://www.ruanyifeng.com/blog/2024/03/weekly-issue-291.html

    欢迎大家提出建议、参与开发或者帮忙测试!

    第 1 条附言  ·  150 天前
    补充一下:

    这个项目做一些 url 做了特殊处理(比如 dockerhub 307 到了 cloudflare ),只是简单的反代没有效果

    其次,如果做 SNI Proxy 务必把 307 后的 Host 解析到 SNI Proxy
    19 条回复    2024-06-15 11:48:00 +08:00
    Satansickle
        1
    Satansickle  
       153 天前
    看了,没学会,大佬能不能详细说下怎么部署
    noclin
        2
    noclin  
    OP
       153 天前
    @Satansickle 配置好.env 文件 然后 执行 `docker-compose up` 就好了,README 哪里没看懂啊
    aeron
        3
    aeron  
       153 天前
    今天搭了一下,需要自己手动构建镜像,样例 dockerfile 文件没有处理好 py 文件,需要改一下
    gneko
        4
    gneko  
       153 天前 via iPhone
    前几天看到了之后也在思考这个问题来着,借楼请教一下,如果只是为了加速的话,是否可以通过简单的 nginx 配置反代(或者 caddy )解决?感觉其实很多人需要的不是缓存,而是代理。
    noclin
        5
    noclin  
    OP
       152 天前   ❤️ 1
    @aeron 欢迎指出问题,这个版本是直接 mount 的,需要自己 build 下,后面会上传到 dockerhub 和 ghcr

    @gneko 如果只是加速 SNI Proxy 是可以解决问题的,我的需求是 PyTorch 包 和 nvidia-docker 相关的镜像下载比较多,所以做了简单的缓存
    LingXingYue
        6
    LingXingYue  
       152 天前 via Android   ❤️ 1
    @gneko 反代是可以的
    我写过用 nginx 反代 docker hub 的方法
    https://www.v2ex.com/t/1047907?p=1#reply3
    yinmin
        7
    yinmin  
       152 天前 via iPhone
    @gneko #4 只为加速,可以在内网部署 sniproxy ,在 docker 主机的/etc/hosts 里将域名 production.cloudflare.docker.com 指向 sniproxy ip 。

    如果有内网 dns server 且 docker 比较多,可以在内网 dns server 配置 production.cloudflare.docker.com 指向 sniproxy ip ,docker 主机不用任何配置即可加速。

    这个方法也能解决最近 docker 官方镜像无法下载的问题。
    Satansickle
        8
    Satansickle  
       152 天前
    @yinmin 大佬能详细介绍下 sniproxy 部署过程么,内网有 openwrt ,怎么代理 docker
    me007
        9
    me007  
       152 天前
    你好,LightMirrors 是 镜像的索引和下载文件服务吗?

    常规的 docker 源, 好像都是索引镜像,下载文件都统一走的 production.cloudflare.docker.com

    现在,production.cloudflare.docker.com ,也被 reset,

    不全局时,换源也下载不动。
    noclin
        10
    noclin  
    OP
       152 天前
    @me007 manifest 和 blob 都缓存了,包括 redirect 到 cloudflare 的资源也处理了
    tcpdump
        11
    tcpdump  
       152 天前
    这教程不明不白,在哪里部署,就一句 up 一下?
    tairan2006
        12
    tairan2006  
       152 天前 via Android
    还是自己部署一个 habor 把镜像转存过来算了…
    KINGWAY
        13
    KINGWAY  
       151 天前
    @tairan2006 #12 我也是打算这样做, 关键是内网的 habor, 如何和境外 docker hub 实现无缝拉取和更新.
    lazywen
        14
    lazywen  
       151 天前
    @yinmin 内网部署的话,内网的机器需要能走 VPN 或加密隧道才行吧,不然 sniproxy 转发 https 请求的时候是直连目标服务器,sni 域名也会被嗅探到,照样会被阻断
    noclin
        15
    noclin  
    OP
       151 天前
    @lazywen 都要前置代理的
    mintongcn
        16
    mintongcn  
       149 天前 via iPhone
    阿里云 腾讯云的还能用吗
    Ethan9527
        17
    Ethan9527  
       148 天前
    @mintongcn 阿里云应该还行吧,不过一些小众镜像估计就难了。可以试试我们的镜像库 https://image.jianmuhub.com/
    Aicnal
        18
    Aicnal  
       147 天前 via iPhone
    @Ethan9527 阿里云有些镜像过于老旧了
    dockerhub
        19
    dockerhub  
       146 天前
    基于 Cloudflare Workers 搞了一个代理站,dockerhub.icu
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1142 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:37 · PVG 02:37 · LAX 10:37 · JFK 13:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.