自建docker加速镜像

自建docker加速镜像

前期准备工作

一台可以访问 DockerHub 的 vps,一个域名和 CloudFlare 的账号。(域名是必须准备的,方案一需要 vps,方案二需要 CloudFlare 账号)

方案一:使用 Nginx + 宝塔面板搭建

安装好宝塔面板和 Nginx 后,点击网站–添加网站–填写域名–PHP 版本选择静态–确定,这样网站就创建好了。然后点击网站设置,找到 SSL,点击 Let’s Encrypt 申请证书,申请好证书后,点配置文件进行以下修改。

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log /dev/null;
        access_log /dev/null;
    }
 
    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log /dev/null;
        access_log /dev/null;
    }

修改为

# 用于 Docker 代理服务
    location /v2/ {
        proxy_pass https://registry-1.docker.io;
        proxy_set_header Host registry-1.docker.io;
        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 $scheme;
        proxy_buffering off;
        proxy_request_buffering off;
        proxy_http_version 1.1;
        proxy_read_timeout 3600s;  # 设置读取超时时间为 1 小时
        proxy_send_timeout 3600s;  # 设置发送超时时间为 1 小时
        send_timeout 3600s;  # 设置发送超时时间为 1 小时
        proxy_connect_timeout 3600s;  # 设置连接超时时间为 1 小时
        proxy_set_header Authorization $http_authorization;
        proxy_pass_header Authorization;
        proxy_intercept_errors on;
        recursive_error_pages on;
        error_page 301 302 307 = @handle_redirect;
    }
 
    location @handle_redirect {
        resolver 1.1.1.1;
        set $saved_redirect_location '$upstream_http_location';
        proxy_pass $saved_redirect_location;
    }
   # 用于 Docker 代理服务

保存即可。

方案二:使用 CloudFlare Worker 搭建

要使用方案二需要把域名的 DNS 服务器修改为 CloudFlare 的。登陆后,在面板左侧找到 Workers 和 Pages,然后点击右侧的 创建应用程序、创建 Worker,修改一个好记的名字,部署。接下来编辑代码,修改 worker.js 的内容,并新建 docker.html,代码在这篇文章里:CloudFlare Wokers代码备份,修改好后,点击右上角的 部署,稍等片刻最后,返回面板,在设置,触发器处设置一个自己的域名,一切就大功告成了 不建议使用自带的 workers.dev 的域名,被墙了。

使用方法

https://docker1.878297720.xyz/

© 版权声明
THE END
喜欢就支持一下吧
点赞2 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容