中国大陆仍然可用的docker镜像地址汇总
大部分镜像地址源已经失效了,但是对于我们需要正规使用的用户来说,docker 镜像不可用对我们的服务搭建影响还是比较大的,好在社区也提供一些有用的镜像地址, 下面整理一下目前还可以使用的镜像源。
有些镜像只提供基础镜像或者白名单镜像,如果拉取不到镜像,可以尝试切换镜像地址。
可用的 docker 镜像地址
https://docker.rainbond.cc
https://hub.1panel.dev
https://docker.1ms.run
https://docker.nju.edu.cn
https://docker.mirrors.sjtug.sjtu.edu.cn
https://docker.itelyou.cf
https://docker.registry.cyou
https://docker-cf.registry.cyou
https://dockerpull.com
https://dockerproxy.cn
https://docker.1panel.live
https://hub.rat.dev
https://dhub.kubesre.xyz
https://docker.hlyun.org
https://docker.kejilion.pro
https://registry.dockermirror.com
https://docker.chenby.cn
https://ccr.ccs.tencentyun.com
https://hub.littlediary.cn
https://hub.firefly.store
https://docker.nat.tf
https://hub.crdz.gq
https://noohub.ru
https://docker.nastool.de
https://hub.docker-ttc.xyz
https://freeno.xyz
https://docker.hpcloud.cloud
https://dislabaiot.xyz
https://ginger20240704.asia
https://doublezonline.cloud
https://dockerproxy.com
测试镜像是否可用
1 | docker pull doublezonline.cloud/library/nginx:latest |
可以把 doublezonline.cloud
替换成上述的镜像地址
使用方法
- 临时配置
通过 --register-mirror
临时指定镜像源地址
1 | docker pull 镜像名称 -–registry-mirror=国内镜像源地址 |
- 永久配置
如果你嫌弃临时指向麻烦,可以通过配置文件进行配置,永久生效。
linux 配置镜像源
linux 环境下,要配置 docker 镜像源,可以按照以下步骤进行:
- 打开 docker 配置文件
/etc/docker/daemon.json
,如果该文件不存在,则可以手动创建该文件。 - 在该配置文件中添加以下内容,
https://hub-mirror.c.163.com
换成上述的可用镜像地址。
1 | { "registry-mirrors": ["https:/doublezonline.cloud"] } |
如果要使用多个镜像源,可以在 "registry-mirrors"
数组中添加多个镜像源地址,以英文逗号分隔。
- 保存配置文件,并重启 docker 服务,以使配置生效。可以使用以下命令重启 Docker 服务:
1 | systemctl restart docker |
如果使用的是 Ubuntu 14.04 等旧版系统,可以使用以下命令重启 Docker 服务:
1 | service docker restart |
- 配置完成后,可以使用
docker pull
命令测试是否能成功拉取镜像。例如,可以使用以下命令拉取官方的 Ubuntu 镜像:
1 | docker pull ubuntu |
注意:如果在 Docker Desktop for Mac 或 Docker Desktop for Windows 中使用 Docker,可以在 Docker Desktop 的设置中进行镜像加速器的配置,不需要手动编辑配置文件。
Windows/Mac
以在 Windows 上配置 Docker 国内镜像为例,按照以下步骤进行:
- 打开 Docker 设置。可以在任务栏右下角找到 Docker 图标,右键单击该图标,然后选择“Settings”打开设置。
- 在设置界面中,选择“Docker Engine”选项卡,在该选项卡中找到“registry-mirrors”一栏。
- 在
"registry-mirrors"
一栏中,输入要使用的镜像地址,例如:
1 | https://doublezonline.cloud |
- 点击 Apply & restart 保存设置,并等待 Docker 服务重启。
- 配置完成后,可以使用
docker pull
命令测试是否成功使用了国内镜像源。例如,可以使用以下命令拉取官方的 Ubuntu 镜像:
1 | docker pull ubuntu |
添加了正确的国内镜像源地址,镜像的下载速度应该比官方源快很多。
在 Mac 上的配置类似。
在 Desktop for Windows 中,还需要确保 Docker Daemon 正在运行,并已经启用了 “Expose daemon on tcp://localhost:2375 without TLS” 选项。可以在 Docker 设置的 “General” 选项卡中勾选该选项。
FAQ
- ubuntu 20.04 下配置镜像源后,拉取镜像报错
1 | docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded (Client.Timeout exceeded while awaiting headers). |
主要是因为 docker 权限问题,可以通过 sudo docker run hello-world
来临时解决,长期解决可以执行下面命令将当前用户添加到 docker 用户组:
1 | sudo usermod -aG docker $USER |
- 通过配置文件配置 docker 镜像地址还是无法拉取镜像?
例如 Dockerfile
文件:
1 | FROM node:18-alpine |
在拉去镜像还是报错了
1 | failed to solve: node:18-alpine: failed to resolve source metadata for docker.io/library/node:18-alpine: failed to authorize: failed to fetch anonymous token: Get "https://auth.docker.io/token?scope=repository%3Alibrary%2Fnode%3Apull&service=registry.docker.io": dial tcp [2a03:2880:f12c:183:face:b00c:0:25de]:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. |
解决办法,可以先通过命令拉取下拉,再通过 Dockerfile 进行构建。
1 | docker pull doublezonline.cloud/library/node:alpine |
或者修改 Dockerfile 文件
1 | FROM doublezonline.cloud/library/node:alpine |