使用 cloudflare 解决docker镜像问题

本文涉及的产品
.cn 域名,1个 12个月
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 无聊的人才搞这么复杂,我推荐使用更简单有效的方法:https://developer.aliyun.com/article/1575426

前提条件:

1、cloudflare 账号

2、一个域名,需要将dns服务器指向 cloudflare 进行托管

一、首先安装 wrangler 命令行工具

1、 安装 npm 服务

image.png

  • 声明npm代理
npm config set registry https://registry.npmmirror.com
2、安装 wrangler 工具
npm install wrangler --save-dev
3、登录授权 wrangler
npx   wrangler login

image.png


二、配置 cloudflare 的 worker 项目

1、安装 git 工具
2、下载 hammal 项目
git clone https://github.com/tomwei7/hammal.git
cd hammal
copy wrangler.toml.sample wrangler.toml

image.png

配置文件中,需要修改几个内容:

  • account_id 通过下面命令获取
npx wrangler whoami

image.png

  • name 自定义,如设置:docker-proxy
  • 添加内容
main = "src/index.ts"
compatibility_date = "2022-10-29"
  • kv_namespace 中,binding保持不变,id通过下面命令创建获取
npx  wrangler kv:namespace create docker-proxy


image.png

3、部署应用
npx  wrangler deploy

image.png


三、绑定自定义域名发布

1、在任意厂商申请一个域名,在cloudflare进行绑定

image.png

2、按照提示,修改dns服务器,指向 cloudflare
3、在 worker 项目中,添加绑定的域名

image.png

四、修改 docker 配置文件,添加代理域名

1、修改 /etc/docker/daemon.json 文件,内容如下
root@server:~# cat /etc/docker/daemon.json
{
  "default-address-pools": [
      {"base": "172.16.0.0/16", "size":24}
  ],
  "registry-mirrors": ["https://****.****.xyz"]  #这里写上面绑定的域名
}
2、进行测试
root@server:~# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
2cc3ae149d28: Already exists 
a97f9034bc9b: Pull complete 
9571e65a55a3: Pull complete 
0b432cb2d95e: Pull complete 
24436676f2de: Pull complete 
928cc9acedf0: Pull complete 
ca6fb48c6db4: Pull complete 
Digest: sha256:56b388b0d79c738f4cf51bbaf184a14fab19337f4819ceb2cae7d94100262de8
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

3、该项目也可以加速 k8s.gcr.io, gcr.io, quay.io 的镜像

# 拉取 k8s.gcr.io 镜像
docker pull hammal.{your_name}.workers.dev/k8sgcr/kubernetes-dashboard-amd64:v1.8.3
# 拉取 gcr.io 镜像
docker pull hammal.{your_name}.workers.dev/gcr/youlib/image:tags
# 拉取 quay.io 镜像
docker pull hammal.{your_name}.workers.dev/quay/coreos/flannel:v0.13.1-rc2

image.png


免费计划支持每天 10w 次的请求调用,足以满足日常用户使用

image.png

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
26天前
|
Docker 容器
|
2天前
|
Docker 容器
docker:记录如何在x86架构上构造和使用arm架构的镜像
为了实现国产化适配,需将原x86平台上的Docker镜像转换为适用于ARM平台的镜像。本文介绍了如何配置Docker buildx环境,包括检查Docker版本、安装buildx插件、启用实验性功能及构建多平台镜像的具体步骤。通过这些操作,可以在x86平台上成功构建并运行ARM64镜像,实现跨平台的应用部署。
15 2
|
13天前
|
Java Docker 微服务
SpringBoot微服务打包Docker镜像
SpringBoot微服务打包Docker镜像
45 11
|
6天前
|
Go Docker Python
docker的python与go镜像的制作
docker的python与go镜像的制作
14 1
|
13天前
|
Docker 容器
用Docker发布自己的镜像
用Docker发布自己的镜像
45 9
|
15天前
|
存储 安全 Ubuntu
docker中的镜像
【10月更文挑战第1天】
31 4
|
13天前
|
缓存 安全 Linux
docker镜像管理问题
【10月更文挑战第3天】
61 1
|
15天前
|
Docker 容器
docker的导入本地镜像和导出本地镜像
本文介绍了如何使用Docker对本地镜像进行导入和导出操作,包括从本地导入`nginx.tar`镜像以及将`open-webui`镜像导出并压缩为`open-webui.tar.gz`。
27 1
|
16天前
|
前端开发 应用服务中间件 nginx
docker运行nginx镜像
这篇文章详细说明了如何在Docker中部署并运行Nginx服务,包括拉取镜像、配置文件的挂载以及容器的启动配置。
73 0
docker运行nginx镜像
|
19天前
|
搜索推荐 应用服务中间件 nginx
docker与containerd镜像获取及导出导入的区别与注意事项(报错信息:ctr: content digest sha256........ac47: not found)
docker与containerd镜像获取及导出导入的区别与注意事项(报错信息:ctr: content digest sha256........ac47: not found)