概述
在国内,拉取 Docker 镜像速度慢/时不时断线/无账号导致限流等,比较痛苦😣. 这里提供加速/优化的几种方法。
梳理一下,会碰到以下情况:
- 国内下载速度慢/时不时断线:是因为网络被限制了。
- 没有公共镜像库账号导致限流:是因为 Docker Hub 等主流镜像库,近年来纷纷开始对未登录的匿名用户进行限流,限制拉取的速度,以及一定时间内拉取的镜像数量。
为了解决以上问题,有这么几种方法:
针对国内下载速度慢/时不时断线, 可选方法如下:
- 配置国内可用/速度尚可的 Docker Registry Mirrors
- 自建 Docker Registry Mirror/Proxy, 并配置为 Mirror
- Docker Daemon 配置 proxies
针对没有公共镜像库账号导致限流, 可选方法如下:
- 注册各个镜像库账号并 docker login 登录
具体方案如下。
具体方案
📝Notes:
这里以 Docker 举例说明。 Containerd/Podman/cri-o 等请举一反三。
- 配置国内可用/速度尚可的 Docker Registry Mirrors
- 自建 Docker Registry Mirror/Proxy, 并配置为 Mirror
- 这里使用 Cloudflare Worker - cloudflare-docker-proxy 搭建
- Docker Daemon 配置 proxies, 具体包括:http-proxy https-proxy no-proxy
- 注册各个镜像库账号并 docker login 登录
方案实施细节
配置国内可用的 Docker Registry Mirrors
随着时间的推移,国内可用的 Docker Registry Mirrors 会持续发生变化,因此,需要实时根据可用情况调整 Docker Registry Mirrors 配置。
截止 2023/9/5, 可用 Mirrors 列表如下:
- 阿里云 Docker 加速:类似 xxxxxx.mirror.aliyuncs.com 的个人专属加速地址;
- DockerProxy 代理加速:dockerproxy.com
- 百度云 Mirror: mirror.baidubce.com
- DaoCloud: docker.m.daocloud.io
- 南京大学:docker.nju.edu.cn
- 上海交大:docker.mirrors.sjtug.sjtu.edu.cn
测试国内 Docker Registry 可用性
可以自行测试验证,手动测试方法是拉取镜像,这里以测试 dockerproxy.com 为例:
docker pull dockerproxy.com/library/nginx
在国内拉取成功则证明可用。
也可以直接查看 GitHub 仓库:docker-practice/docker-registry-cn-mirror-test 的 Github Action 执行结果。如最近一次的执行结果为:
阿里云 Docker 加速服务申请
阿里云***(点击管理控制台 -> 登录账号 -> 右侧镜像工具 -> 镜像*** -> 复制***地址)
截图如下:
其他几个加速域名
- DockerProxy 代理加速:dockerproxy.com
- 百度云 Mirror: mirror.baidubce.com
- Daocloud: docker.m.daocloud.io
- 南京大学:docker.nju.edu.cn
- 上海交大:docker.mirrors.sjtug.sjtu.edu.cn
都是固定域名,直接配置即可。
已经不可用的 Docker 加速域名
以下 Docker 加速域名,已经因为各种原因不可用或只允许对应云供应商网络使用,包括: