通过 cloudflare 白嫖个人 docker 镜像加速服务

2024-06-23 21:12

本文主要是介绍通过 cloudflare 白嫖个人 docker 镜像加速服务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

不知为何,现在大多数的 docker hub 镜像加速站都停止服务,而官方站点又因某些原因访问不到或延迟很高。所以,今天来记录一种通过 CloudFlare 搭建一个自己的镜像加速服务。

0、必看!!!

注意: 此方案需要有域名才行,后续需要给域名绑定到 Cloudflare,建议直接在腾讯云-域名注册上面搞一个,选最便宜的就行。

干货助手

1、注册 cloudflare

进入官网,自行进行注册操作
https://dash.cloudflare.com/

1.1 修改 DNS

找到你的域名注册商,然后修改 DNS 为phil.ns.cloudflare.commarjory.ns.cloudflare.com,这样才能绑定到 cloudflare
干货助手

1.2 绑定域名

打开 cloudflare,绑定站点,选择免费。
注册后绑定一个域名,这个域名的 DNS 需要设置 cloudflare 的才能绑定成功。
干货助手

2、新建 workers

在左侧 workers and pages,然后新建,名字随便起。没有过多的配置,直接完成!
干货助手
干货助手
干货助手

3、编辑代码

3.1 编辑代码

点击右上角的编辑代码,进入

干货助手

3.2 新建 index.html

如果所示,代码里面的docker.xxoo.team请替换成你自己的域名。

干货助手

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>镜像使用说明</title><style>body {font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;margin: 0;padding: 0;background-color: #f0f2f5;display: flex;flex-direction: column;min-height: 100vh;}.header {background: linear-gradient(90deg, #4e54c8 0%, #8f94fb 100%);color: white;text-align: center;padding: 20px 0;}.container {flex: 1;display: flex;justify-content: center;align-items: center;padding: 20px;}.content {background: white;border-radius: 8px;box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);padding: 20px;max-width: 800px; /* 调整后的宽度 */width: 100%;font-size: 16px; /* 放大字体 */}.code-block {background: #2d2d2d;color: #f8f8f2;padding: 10px;border-radius: 8px;margin: 10px 0;overflow-x: auto;font-family: "Courier New", Courier, monospace; /* 保持代码块的字体 */}.footer {background: #444;color: white;text-align: center;padding: 5px 0; /* 调低高度 */}.footer a {color: #4caf50;text-decoration: none;}@media (max-width: 600px) {.content {padding: 10px;font-size: 14px; /* 在小屏幕上稍微减小字体 */}}</style>
</head>
<body><div class="header"><h1>镜像使用说明</h1></div><div class="container"><div class="content"><p>要设置加速镜像服务,你可以执行下面命令:</p><div class="code-block"><pre>
sudo tee /etc/docker/daemon.json &lt;&lt;EOF
{"registry-mirrors": ["https://docker.xxoo.team"]
}
EOF</pre></div><p>如果执行了上述命令,配置了镜像加速服务,可以直接 pull 镜像:</p><div class="code-block"><pre>
docker pull halohub/halo:latest # 拉取 halo 镜像</pre></div><p>因为Workers用量有限,在使用加速镜像服务时,你可以手动 pull 镜像然后 re-tag 之后 push 至本地镜像仓库:</p><div class="code-block"><pre>
docker pull docker.xxoo.team/halohub/halo:latest # 拉取 halo 镜像</pre></div></div></div><div class="footer"><p>Powered by Cloudflare Workers</p><p><a href="https://www.xxoo.team">www.xxoo.team</a></p></div>
</body>
</html>

3.3 修改 worker.js

干货助手

import HTML from './index.html';
export default {async fetch(request) {const url = new URL(request.url);const path = url.pathname;const originalHost = request.headers.get("host");const registryHost = "registry-1.docker.io";if (path.startsWith("/v2/")) {const headers = new Headers(request.headers);headers.set("host", registryHost);const registryUrl = `https://${registryHost}${path}`;const registryRequest = new Request(registryUrl, {method: request.method,headers: headers,body: request.body,redirect: "follow",});const registryResponse = await fetch(registryRequest);console.log(registryResponse.status);const responseHeaders = new Headers(registryResponse.headers);responseHeaders.set("access-control-allow-origin", originalHost);responseHeaders.set("access-control-allow-headers", "Authorization");return new Response(registryResponse.body, {status: registryResponse.status,statusText: registryResponse.statusText,headers: responseHeaders,});} else {return new Response(HTML.replace(/{{host}}/g, originalHost), {status: 200,headers: {"content-type": "text/html"}});}}
}

3.4 保存

一定要保存!!!一定要保存!!!一定要保存!!!一定要保存!!!

方法一(推荐): 选点左上角返回,会提示你保存
干货助手

方法二: 点击右上角的下拉保存
干货助手

4、部署

直接弹出部署,不用填任何东西,即可
干货助手

干货助手

5、绑定域名

系统默认分配的有域名,被墙无法访问,所以只能用自己的域名才行。
干货助手

绑定成功需要等待几分钟,访问你的域名,如果出现如下页面就完成!

干货助手

在宝塔中试一下,没问题~~
干货助手

作者有话

喜欢请留一个关注,如果能转发分享,那最好不过啦。更多源码、软件等请关注微信公众号:干货助手,好饭不怕晚,现在关注正合适!

这篇关于通过 cloudflare 白嫖个人 docker 镜像加速服务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1088293

相关文章

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在