通过 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

相关文章

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手动安装安装特定版本查看日志在

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

关于Docker Desktop的WSL报错问题解决办法

《关于DockerDesktop的WSL报错问题解决办法》:本文主要介绍关于DockerDesktop的WSL报错问题解决办法的相关资料,排查发现是因清理%temp%文件夹误删关键WSL文件,... 目录发现问题排查过程:解决方法其实很简单:重装之后再看就能够查到了:最后分享几个排查这类问题的小www.cp

使用国内镜像源优化pip install下载的方法步骤

《使用国内镜像源优化pipinstall下载的方法步骤》在Python开发中,pip是一个不可或缺的工具,用于安装和管理Python包,然而,由于默认的PyPI服务器位于国外,国内用户在安装依赖时可... 目录引言1. 为什么需要国内镜像源?2. 常用的国内镜像源3. 临时使用国内镜像源4. 永久配置国内镜

使用DeepSeek搭建个人知识库(在笔记本电脑上)

《使用DeepSeek搭建个人知识库(在笔记本电脑上)》本文介绍了如何在笔记本电脑上使用DeepSeek和开源工具搭建个人知识库,通过安装DeepSeek和RAGFlow,并使用CherryStudi... 目录部署环境软件清单安装DeepSeek安装Cherry Studio安装RAGFlow设置知识库总

Nginx配置系统服务&设置环境变量方式

《Nginx配置系统服务&设置环境变量方式》本文介绍了如何将Nginx配置为系统服务并设置环境变量,以便更方便地对Nginx进行操作,通过配置系统服务,可以使用系统命令来启动、停止或重新加载Nginx... 目录1.Nginx操作问题2.配置系统服android务3.设置环境变量总结1.Nginx操作问题

如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

《如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件》本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到N... 目录docker部署FTP和Nginx并通过HTTP访问FTP里的文件1. 部署 FTP 服务器 (

解读docker运行时-itd参数是什么意思

《解读docker运行时-itd参数是什么意思》在Docker中,-itd参数组合用于在后台运行一个交互式容器,同时保持标准输入和分配伪终端,这种方式适合需要在后台运行容器并保持交互能力的场景... 目录docker运行时-itd参数是什么意思1. -i(或 --interactive)2. -t(或 --