第七星尘的独立博客

自建docker hub加速镜像

最近一些公共docker hub国内加速镜像相继停止服务了(好像是因为政策原因)。为了满足我们自身需要,我们可以利用海外服务器(追求速度的话还可以用一层国内服务器中转),自建docker hub加速镜像。

首先在服务器安装好docker环境,然后运行下面镜像:


docker run  -d --name docker-proxy --restart=always -p 3011:5000  -e  REGISTRY_PROXY_REMOTEURL="https://registry-1.docker.io"  -e REGISTRY_STORAGE_CACHE_BLOBDESCRIPTOR=inmemory  registry:2

这样主体服务就起来了。为了使用标准端口以及域名,我们最好前置一个nginx 。搭建nginx以及配置https域名是基本功,这里不再介绍。提供一个nginx配置文件以供参考下:

server {
  listen 80 ;
  listen  443 ssl;
  ssl_certificate       /.acme.sh/docker-proxy.com/fullchain.cer;
  ssl_certificate_key   /.acme.sh/docker-proxy.com/docker-proxy.com.key;
  ssl_protocols         TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers           HIGH:!aNULL:!MD5;
  ssl_prefer_server_ciphers on;

  server_name           docker-proxy.com;

   location / {

        # 仅允许 GET 请求
        limit_except GET {
            deny all;
        }
          client_max_body_size  1000m;
          proxy_http_version 1.1;
          proxy_pass http://localhost:5000;  # 请根据实际情况修改你的端口
          proxy_set_header Host $host;
          proxy_set_header X-Forwarded-For $remote_addr;
          proxy_cache_bypass $http_upgrade;
          proxy_read_timeout 600s;  # 如果需要较长的超时时间,请自行调整
   }

        location /.well-known/acme-challenge/ {
           root /var/www/html/;
        }

}

此外,为了定时释放内存等资源,可以添加定时任务,定时重启这个服务。

00 5 * * * /usr/bin/docker restart docker-proxy  
 如无特殊说明,本站皆为原创。转载请注明来自第七星尘的独立博客《自建docker hub加速镜像》

评论

  1. GoodBoyboy #1

    为什么不直接用cf worker

    回复
    2024-06-21
    • 第七星尘

      cf的访问速度不理想。而且如果手头上本来就有境外机器,建个服务会很顺手。如果没有自己的境外服务器的话,那确实可以用cf work

      回复
      2024-06-25
    • GoodBoyboy

      可以通过优选cfip改host的方法,速度可以直接跑满

      回复
      2024-06-25
      • 第七星尘

        还是 稳定性 的问题。我觉得优选cfip改host的方法麻烦且不够稳定。我有相当稳定的境外服务器,我觉得自建更靠谱。

        回复
        2024-06-27
        • GoodBoyboy

          噢噢,有海外服务器那确实自建可以,没条件的话cf worker也不错

          回复
          2024-06-27
      • 第七星尘

        还有就是我的加速镜像地址可能要被很多地方引用的。比如说,k8s集群要用这个地址来拉取镜像。每台服务器都改host,真心累。而,容器还不会直接使用宿主机的hosts文件,还要额外配置。多容器多服务器的场景,这种方式要累死。我觉得一个良好的加速镜像地址,不要对 客户端 有要求,不要求它改hosts,要让客户端开箱即用。

        回复
        2024-06-27
  2. 刘郎 #2

    docker是个好东西?

    回复
    2024-06-18