自建Docker Hub镜像方法

自从2023年5月中旬,因为一股神秘力量导致Docker 容器平台 https://hub.docker.com 无法访问了。

一年多过去了,截止目前(2024年6月9日),南京大学、中科大、上海交大 目前明确停止docker镜像缓存服务。网易之前就死了,腾讯微软据说内网可用,阿里登陆后就可以拿到子域名,百度好像也挂了,dockerproxy被墙。

所以,让我们来自建一个吧!(微笑脸)

本文介绍的两种方式并不是完全的零门槛,方式一需要你有自己的域名,方式二需要你有自己的境外服务器。

方式一:使用Cloudflare Worker

注册Cloudflare的方法不再赘述,一个邮箱就能注册,这个方式需要你有一个自己的域名

    1. 点击菜单栏的「Worker和Pages」,然后点击创建Worker

自建Docker Hub镜像方法

    1. 给你的Worker起个名字,比如docker-proxy,点击「保存」,之后点击「完成」

此时他应该会提示你“恭喜!您的 Worker 已部署到以下区域:全球

    1. 点击右侧的「编辑代码」,将左侧已有代码删除,然后粘贴以下代码。需要将顶部的**workers_url** 修改为你要部署的域名

代码内容

  1. 点击右上角「部署」

    1. 因为Worker提供的域名是被DNS污染的,所以我们需要回到Worker,如图依次点击,输入你刚刚在代码里填写的域名后提交更改,如果你的域名托管在Cloudflare,则只需要等2分钟左右即可生效;如果在其他的服务商托管,你需要自己去CNAME一下

自建Docker Hub镜像方法

    1. 此时我们在服务器中输入以下命令即可生效

echo '{"registry-mirrors": ["https://你的域名"]}' | sudo tee /etc/docker/daemon.json > /dev/null

设置镜像

sudo systemctl restart docker

重启Docker让设置生效


方式二:使用境外服务器自建

懒人脚本

bash <(curl -sL https://raw.githubusercontent.com/lainbo/gists-hub/master/src/Linux/sh/deploy_registry.sh)

或者你想自己一步一步来

    1. 创建一个docker-compose.yml文件,内容如下

#version: '3' #最新版本docker 不需要此字段
services:
  registry:
    image: registry:2
    ports:
      - "17951:5000"
    environment:
      REGISTRY_PROXY_REMOTEURL: https://registry-1.docker.io  # 上游源
      REGISTRY_STORAGE_CACHE_BLOBDESCRIPTOR: inmemory # 内存缓存
    volumes:
      - ./data:/var/lib/registry
  1. 运行起来,docker-compose up -d


以上不论是懒人脚本,还是自建创建docker-compose文件,都会利用docker在17951端口上起这个自建服务,接下来就是

  1. 反代一下上面写的17951端口,给个域名,https证书加一下,DNS解析添一条

    1. 此时我们在境内服务器中输入以下命令即可生效

echo '{"registry-mirrors": ["https://你反代的域名"]}' | sudo tee /etc/docker/daemon.json > /dev/null

设置镜像

sudo systemctl restart docker

重启Docker让设置生效

方式三:使用huecker

就是一个作者搭建的现成镜像

{
  "registry-mirrors": ["https://huecker.io"]
}

和一些其他值得尝试的境外镜像

镜像地址 描述
https://public.ecr.aws Amazon
https://dockerhub.timeweb.cloud Timeweb
https://cr.yandex/mirror Yandex
https://dh-mirror.gitverse.ru GitVerse
https://dockerhub1.beget.com Beget
https://noohub.ru NooSoft
https://jockerhub.com DpkgSoft
https://registry.access.redhat.com Red Hat
https://registry.redhat.io Red Hat
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
技术教程

某大佬收藏100+前端工具和网站推荐收藏夹公开

2024-6-14 14:54:32

技术教程

利用GitHub Action自动备份Notion数据到仓库

2024-6-25 11:42:26

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索