本文最后更新于 2024-07-08,文章内容可能已经过时。

很多软件源/工具源的服务器部署在国外,而近期在大陆由于众所周知的原因,访问这写官方源的服务器速度非常慢,甚至某段时间完全无法访问。

docker hub就是一个典型的例子🤔。

国内解决这个问题主要有2类方法:

  • 配置国内docker hub镜像源

  • 自建Docker Registry Mirror/Proxy

配置国内docker hub镜像源

docker的镜像源文件配置在 /etc/docker/daemon.json处,如果没有的话我们就创建一个然后再修改。

sudo vim /etc/docker/daemon.json

❌失效的镜像源

常见的国内源有:

Docker国内镜像源:https://registry.docker-cn.com

中科大源:https://docker.mirrors.ustc.edu.cn

网易源:https://hub-mirror.c.163.com

百度源:https://mirror.baidubce.com

腾讯源:https://ccr.ccs.tencentyun.com

以上国内镜像源,在2024年6月以后,基本上已经失效或者停止对外服务了❌。

✅亲测可用镜像源

DockerHub镜像仓库

镜像加速器地址

Docker镜像加速站

https://hub.uuuadc.top/

https://docker.1panel.live

https://hub.rat.dev

https://dockerhub.timeweb.cloud

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 镜像站 (支持700左右的镜像,若你需要的镜像不在支持列表内,可以提issue:公开镜像加速 - DaoCloud Enterprise

https://docker.m.daocloud.io

使用方法

  • 添加到daemon.json中

根据实际需求情况,在配置文件中添加需要的镜像源链接,如下所示:

{

    "registry-mirrors": [

        "https://docker.m.daocloud.io",

        "https://dockerhub.timeweb.cloud",

        "https://docker.1panel.live"
    ]

}

重启docker,注意由于走的是守护程序daemon,所以daemon进程也需要重启。

sudo systemctl daemon-reload		#重启daemon进程
sudo systemctl restart docker		#重启docker

最后我们再验证一下是否修改成功,运行

docker info
 Registry Mirrors:

   https://docker.m.daocloud.io

   https://dockerhub.timeweb.cloud

   https://docker.1panel.live

那就说明我们的docker国内镜像源修改成功了。然后直接使用 docker pull ImageName 拉取即可。

提醒:一定概率会出现即使你把国内的镜像源配置成功,docker pull 依然会从官方的docker hub上拉取镜像包的情况,多数是因为你配置的镜像源,没有你要拉取的镜像,所以在用户自己配置的源没有找到指定镜像后,最后还是会从官方源拉取。

另外以上国内镜像源,有可能因为一些原因,临时或者永久被关停导致不可用。

  • 直接使用docker hub镜像源

在使用 docker pull 拉取镜像是,镜像名前加上镜像源地址的前缀(去掉https:// ), 以 mysql:5.7为例:

docker pull dockerhub.icu/library/mysql:5.7

阿里云镜像加速器

阿里云加速器(点击管理控制台 -> 登录账号 -> 右侧镜像工具 -> 镜像加速器 -> 复制加速器地址)

容器镜像服务.png

获取加速器地址后,将其按照 配置国内docker hub镜像源 中的方法加入到 /etc/docker/daemon.json 里, 或者直接在拉取的时候指定从加速器地址拉取,比如:

# 把xxxyyyzzz换成你自己的加速器前缀
docker pull xxxyyyzzz.mirror.aliyuncs.com/ubuntu

注意📢:阿里云的镜像加速器,并不是实时同步的,所以可能出现你需要的镜像,并没有同步,导致最终拉取失败。 你可以按照阿里云ACR的操作说明,手动同步后再拉取。