Skip to content

Instantly share code, notes, and snippets.

@y0ngb1n
Last active September 20, 2024 02:41
Show Gist options
  • Save y0ngb1n/7e8f16af3242c7815e7ca2f0833d3ea6 to your computer and use it in GitHub Desktop.
Save y0ngb1n/7e8f16af3242c7815e7ca2f0833d3ea6 to your computer and use it in GitHub Desktop.
国内的 Docker Hub 镜像加速器,由国内教育机构与各大云服务商提供的镜像加速服务 | Dockerized 实践 https://github.com/y0ngb1n/dockerized

Docker Hub 镜像加速器

国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。

Dockerized 实践 https://github.com/y0ngb1n/dockerized

1️⃣ Docker daemon 配置代理(推荐)

参考 Docker daemon 配置代理

2️⃣ 自建镜像加速服务

3️⃣ 国内三方加速镜像

⚠️⚠️⚠️ 自 2024-06-06 开始,国内的 Docker Hub 镜像加速器相继停止服务,可选择为 Docker daemon 配置代理或自建镜像加速服务。


Ubuntu 16.04+、Debian 8+、CentOS 7+

创建或修改 /etc/docker/daemon.json

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn"
    ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

Docker Hub 镜像加速器列表

Docker 官方和国内很多云服务商都提供了国内加速器服务。以下镜像站来源于互联网(感谢热心网友),可能出现宕机、转内网、关停等情况,建议同时配置多个镜像源。

镜像加速器 镜像加速器地址 专属加速器 其它加速
Docker 中国官方镜像 https://registry.docker-cn.com Docker Hub已关闭
DaoCloud 镜像站 https://docker.m.daocloud.io 白名单模式 Docker Hub、GCR、K8S、GHCR、Quay、NVCR 等
Azure 中国镜像  https://dockerhub.azk8s.cn 仅供内部访问 Docker Hub、GCR、Quay
科大镜像站 https://docker.mirrors.ustc.edu.cn 仅供内部访问 Docker HubGCRQuay
阿里云 https://<your_code>.mirror.aliyuncs.com 需登录,系统分配 Docker Hub
七牛云 https://reg-mirror.qiniu.com Docker Hub、GCR、Quay
网易云 https://hub-mirror.c.163.com Docker Hub
腾讯云 https://mirror.ccs.tencentyun.com 仅供内部访问 Docker Hub
Docker 镜像代理 https://dockerproxy.com Docker Hub、GCR、K8S、GHCR
百度云 https://mirror.baidubce.com Docker Hub
南京大学镜像站 https://docker.nju.edu.cn Docker Hub、GCR、GHCR、Quay、NVCR 等
上海交大镜像站 https://docker.mirrors.sjtug.sjtu.edu.cn Docker Hub、GCR 等已关闭
中科院软件所镜像站 https://mirror.iscas.ac.cn Docker Hub

⚠️ 部分网友反馈以下镜像站存在未同步最新源镜像问题,请按需选用(评论区可考古)

  • 阿里云

检查加速器是否生效

命令行执行 docker info,如果从结果中看到了如下内容,说明配置成功。

Registry Mirrors:
 [...]
 https://docker.m.daocloud.io

Docker Hub 镜像测速

使用镜像前���,可使用 time 统计所花费的总时间。测速前先移除本地的镜像!

$ docker rmi node:latest
$ time docker pull node:latest
Pulling repository node
[...]

real   1m14.078s
user   0m0.176s
sys    0m0.120s

更新日志

2024.06.11
2024.06.06

感谢 @hangone 提供反馈

2024.01.10
  • 🚫 失效加速器
    • 网易云镜像

感谢网友 @joelhy @MalikWilliams1greher 的反馈

2023.12.21

感谢网友 @ApsarasX @snowdream 提供反馈

2023.06.19

感谢网友 @shadowofmoo 的反馈

2023.03.14

感谢网友 @msojocs 的反馈

2023.03.04
  • 🔒 已转为私有
    • 科大镜像站

感谢网友 @ionlz 的反馈

2023.02.22
  • 🆕 新增加速器
    • 百度云镜像
  • 🔒 已转为私有
    • Azure 中国镜像
    • 腾讯云镜像
  • 🚫 失效加速器
    • 七牛云镜像

感谢网友 @YiuTerran 的反馈


参考链接

@taotaoyouyou
Copy link

建议还是自建,公用的不稳定还有可能出现未知的问题,不如直接设置代理,从官方拉取

@image72
Copy link

image72 commented Jul 2, 2024

我最担心因为各种dockerhub mirror出现, 在2015年的 xcode ghost事件重现

@LET19
Copy link

LET19 commented Jul 2, 2024

建议还是自建,公用的不稳定还有可能出现未知的问题,不如直接设置代理,从官方拉取

是的

@DreamerLx
Copy link

牛逼,必须来夸一下

@zhongyimingkao
Copy link

牛逼!

@Jeiwen-Su
Copy link

DockerHub国内镜像源列表

此列表只收录无需限定条件的DockerHub镜像源,感谢这些公益服务者。

2024年6月18日 亲测可用

DockerHub镜像仓库 镜像加速器地址
Docker镜像加速站 https://hub.uuuadc.top/
docker.1panel.live
hub.rat.dev
DockerHub 镜像加速代理 https://docker.anyhub.us.kg
https://docker.chenby.cn
https://dockerhub.jobcher.com/
镜像使用说明 https://dockerhub.icu
Docker镜像加速站 https://docker.ckyl.me
镜像使用说明 https://docker.awsl9527.cn
镜像使用说明 https://docker.hpcloud.cloud
AtomHub 可信镜像仓库平台 (只包含基础镜像,共336个) https://atomhub.openatom.cn
DaoCloud 镜像站 https://docker.m.daocloud.io

使用教程

  1. 为了加速镜像拉取,使用以下命令设置registry mirror

支持系统:Ubuntu 16.04+、Debian 8+、CentOS 7+

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
    "registry-mirrors": [
        "https://hub.uuuadc.top",
        "https://docker.anyhub.us.kg",
        "https://dockerhub.jobcher.com",
        "https://dockerhub.icu",
        "https://docker.ckyl.me",
        "https://docker.awsl9527.cn"
    ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  1. 使用DockerHub Proxy,以下以 hub.uuuadc.top 为例:可以根据列表自行替换
docker pull hub.uuuadc.top/library/mysql:5.7

说明:library是一个特殊的命名空间,它代表的是官方镜像。如果是某个用户的镜像就把library替换为镜像的用户名

原文链接:https://www.wangdu.site/course/2109.html

这方法可行,大佬牛叉,帮了我大忙,谢谢了。

@wyxls
Copy link

wyxls commented Jul 28, 2024

这里附上纯镜像加速的registry部署compose,有需要可以参考一下

version: '3.3'
services:
  registry:
    image: registry:2.8.2
    container_name: registry
    restart: unless-stopped
    ports:
      - 49998:49998
    volumes:
      - /volume1/docker/registry/auth:/auth
      - /volume1/docker/registry:/var/lib/registry
    environment:
      - TZ=Asia/Shanghai
      - HTTPS_PROXY=http://192.168.9.2:7893
      - HTTP_PROXY=http://192.168.9.2:7893
      - "REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io"
      - REGISTRY_HTTP_ADDR=0.0.0.0:49998
      - REGISTRY_STORAGE_DELETE_ENABLED:true
      # 可以用httpd生成认证文件, 然后挂到对应路径使用, 这里为纯加速所以注释掉了
      # - "REGISTRY_AUTH=htpasswd"
      # - "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm"
      # - REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd
    network_mode: bridge

这个官方的registry如果要配置成https访问的话,在加上http base auth之后,会提示认证错误而加速pull失败,需要取消掉认证机制才能正常走远程代理仓库加速,但是个人用加速会用上自己的代理,公网被扫到的话就会被白嫖代理流量,目前我还没找到方法解决,希望有大佬能支个招

如果想要加上认证的话,原来拉取镜像只需要docker pull hello-world,现在就变成只能��动docker login然后指定仓库域名去pull,使用的时候不方便还要重新改成原来的tag,比如拉取library/hello-world就需要

docker pull hub.domain.com/library/hello-world
docker tag hub.domain.com/library/hello-world hello-world
@tonycody
Copy link

tonycody commented Jul 28, 2024 via email

@xclidongbo
Copy link

truenas scale的k3s,一个也不能用。

@yangguoandresolution
Copy link

现在还有好用的代理吗, 都封啦, 最后连docker.m.daocloud.io今天也不能用啦, 只能自己做吗

@wgzhao
Copy link

wgzhao commented Aug 1, 2024

https://docker.rainbond.cc/ 目前还有效

@wang-qijia
Copy link

还有可以用的吗

@feng-derivio
Copy link

feng-derivio commented Aug 7, 2024

全都挂了吗? 我就跑个 supabase start,一直是这个错


failed to display json stream: error pulling image configuration: download failed after attempts=6: net/http: TLS handshake timeout
Retrying after 8s: public.ecr.aws/supabase/vector:0.28.1-alpine
0.28.1-alpine: Pulling from supabase/vector
d261077062b2: Retrying in 1 second
2babd04ec7b1: Retrying in 10 seconds
6bbeea27f58c: Retrying in 10 seconds
2b092e92b1a0: Waiting
9ced58d1ef15: Waiting
4f4fb700ef54: Waiting
Stopping containers...
failed to display json stream: error pulling image configuration: download failed after attempts=6: EOF
@helloyangqi
Copy link

阿里云的也只能内部访问了,fuck

@taotaoyouyou
Copy link

可以去CloudFlare免费建立一个代理,有现成的代码,复制粘贴就行,我已经建好一个了

@adoyle-h
Copy link

可以去 CloudFlare 免费建立一个代理,有现成的代码,复制粘贴就行,我已经建好一个了

CloudFlare 封号倒计时已开启。

@feng-derivio
Copy link

只能开全局代理下载了

@Caesar-Victory
Copy link

有无Ubuntu系统国内可用的docker安装命令,现在docker官网提供的安装命令完全无法使用 搞这一出真的是没话说

本地下载,scp上云主机,修改docker.list,使用国内Ubuntu镜像站下载安装

@blankhang
Copy link

有无Ubuntu系统国内可用的docker安装命令,现在docker官网提供的安装命令完全无法使用 搞这一出真的是没话说

本地下载,scp上云主机,修改docker.list,使用国内Ubuntu镜像站下载安装

349637

@taotaoyouyou
Copy link

可以去 CloudFlare 免费建立一个代理,有现成的代码,复制粘贴就行,我已经建好一个了

CloudFlare 封号倒计时已开启。

只有自己用,不公开

@whg517
Copy link

whg517 commented Aug 29, 2024

考虑到现在 docker 安装的现状。就个人理解,再次给大家提供一些思路

调整技术栈

容器运行时:

  • podman 完全遵循 oci 实现,红帽开源,以 rhel 生态建立。现在已经有可用的 podman-desktop 。而且 podman 和其名字一样,支持和 k8s pod 相同的概念管理一组容器,可以直接替换 docker compose 。当然如果你更熟悉 compose ,依然可以使用 podman-compose 无缝替换掉 docker 。对于有构建需求时,可以直接使用 podman build ,在 CI 环境中,可以使用 Buildah 以更轻量环境构建项目���支持多架构,和镜像签名。
  • containerd 完全遵循 oci 实现,属于 CNCF ,不用担心供应商绑定和商业问题。就当前时间点, podman ,docker engine ,kubernetes 都已经使用 containerd 作为底层运行时,但像 docker engine 在其之上做了扩展。可用的容器管理工具有 crictl 一般用于调试, nerdctl 一个兼容 docker 命令和 docker compose 命令的工具。让你使用 containerd 和 docker 一样。
  • kubernetes 学习和使用成本较高,请合理选择。

替换 docker 托管

现在一些知名公司都已经建立自己的容器注册服务,但他们会提供一些主流镜像,有的还会镜像 docerhub 。

  • quay.io 个人认为是除了 dockerhub 之后比较流行的容器托管了,红帽提供支持。而且个人免费创建公开仓库,上传和托管镜像。github 同步构建,镜像审计,免费公开组织等。私有仓库收费。上传和拉取镜像不会受到网络限制。
  • catalog-redhat 红帽企业目录服务。仓库中有红帽官方构建并可以公开使用的主流镜像,镜像底层操作系统一般是 rhel-ubi 系列。
  • Amazon ECR Public Gallery 属于 AWS 的容器托管服务。官方提供了 Docker official (docker.io/library 开头),Bitnami 等一些托管在 dockerhub 的镜像。不过 aws 存储访问在国内依然有抽风的情况。
  • ghcr 托管在 Github 仓库中的注册服务。暂时没有看到提供镜像搜索或者 Dashboard 这种页面。大家寻找镜像的时候,可以看看官方仓库是否有提供,如果有的话可以使用。但 Github 存储应该也是用了 aws ,偶尔会抽风。
  • gcr 由谷歌提供的容器注册服务。大家不用看了。
@sky22333
Copy link

sky22333 commented Sep 8, 2024

2024年9月9日

Docker在国内已经解封,已测试可以直接安装和拉取镜像。

补:docker.io这个拉取镜像的地址解封两天后又封了,官方安装脚本没封

@taotaoyouyou
Copy link

2024年9月10日

Docker在国内已经解封,已测试可以直接安装和拉取镜像。

@LET19
Copy link

LET19 commented Sep 10, 2024

真的解封了吗?为啥hub.docker.com还得挂代理才能访问呢?

@taotaoyouyou
Copy link

真的解封了吗?为啥hub.docker.com还得挂代理才能访问呢?

hub和pull用的是两个网址

@DDDDD12138
Copy link

真的解封了吗?为啥hub.docker.com还得挂代理才能访问呢?

hub和pull用的是两个网址

我这里好像还是不行,深圳

@mxywo
Copy link

mxywo commented Sep 12, 2024

真的解封了吗?为啥hub.docker.com还得挂代理才能访问呢?

hub和pull用的是两个网址

我这里好像还是不行,深圳

我记得访问hub网站一直需要代理;之前封锁是服务器pull hub的官方仓库都pull不了,现在可以pull了。

@ConvolutedDog
Copy link

大佬们,用 daocloud 拉下来的 ubuntu:jammy-20220421镜像, 与dockerhub里的 sha256对不上,这正常吗?

daocloud我拉下来的镜像也不对,竟然是两年前的,所以最好不要用daocloud,我刚测试,这些可以用 docker.1panel.live #美国 docker.anyhub.us.kg #美国 docker.chenby.cn #香港 dockerhub.jobcher.com #美国 docker.awsl9527.cn #香港 docker.hpcloud.cloud #美国 dockerhub.icu #香港

(๑•̀ㅂ•́)و✧

@LET19
Copy link

LET19 commented Sep 14, 2024

真的解封了吗?为啥hub.docker.com还得挂代理才能访问呢?

hub和pull用的是两个网址

我这里好像还是不行,深圳

我记得访问hub网站一直需要代理;之前封锁是服务器pull hub的官方仓库都pull不了,现在可以pull了。

昨天又拿我家里电脑测了一下,不开代理还是pull不了 :(

@wangzhiwei61
Copy link

已经没有能用的吗

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment