Docker 国内镜像加速

由于网络原因,国内直接从 docker hub、gcr.io 和 quay.io 下载镜像并不顺畅。通过镜像加速(mirrors)是必须的了。本文介绍国内常见的镜像加速站,并以我常用的 Azure 为例介绍具体配置。

Azure 加速器使用

国内目前可用的加速器有很多,Azure 是我使用下来较为全面和稳定的,阿里云的我也常用,但是需要注册且不包含gcr和quay的mirror统一入口。如果你已经有阿里云的加速器地址,可以DockerHub官方镜像使用阿里云配置,gcr和quay另选。更多的加速器在后面提供,大家可以根据情况自由选择。
Azure 不仅有镜像加速,还有其他的安装包等加速,官方:http://mirror.azure.cn/

DockerHub官方镜像

DockerHub 的官方镜像可以通过配置 /etc/docker/daemon.jsonregistry-mirrors ,然后正常使用即可,拉取(pull)镜像的地址并不用更改。非DockerHub官方的镜像,无法通过此方式获得加速,必须用修改镜像地址为加速器专用地址的方式进行。修改方式后面根据情况会分别讲述。

1
2
3
4
5
6
7
8
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://dockerhub.azk8s.cn"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

registry-mirrors 可配置多个镜像加速器,我用阿里云和Azure基本可达到近8-10M/s,也很稳定。多个镜像加速器是否会有很大的速度或稳定性提升没有严格测试过,我配置两个用的话小镜像略有影响,所以还是配一个。如果你有测试结论,请告诉我。

gcr.io 镜像

对于非 k8s.gcr.io 的gcr.io镜像,一般将域名修改为加速器地址,仓库地址不变即可。
比如,原来要拉取的镜像是 gcr.io/<repo-name>/<image-name>:<version> 形式,使用命令:

1
docker pull gcr.io/<repo-name>/<image-name>:<version>

使用Azure加速修改后的地址是 gcr.azk8s.cn/<repo-name>/<image-name>:<version> ,命令如下:

1
docker pull gcr.azk8s.cn/<repo-name>/<image-name>:<version>

重新tag镜像,和原始镜像保持一致

当然,下载后的镜像tag和原tag自然不同,如果需要按照原tag使用,执行如下命令重新tag就OK:

1
docker tag gcr.azk8s.cn/<repo-name>/<image-name>:<version> gcr.io/<repo-name>/<image-name>:<version>

如果tag后不希望 images 里保留过多tag,可以删除:

1
docker rmi gcr.azk8s.cn/<repo-name>/<image-name>:<version>

其他的加速方式一致

k8s.gcr.io 镜像

k8s.gcr.io 下的镜像被映射到加速器的 google_containers 仓库,
即原: k8s.gcr.io/<image-name>:<version>
被映射为: gcr.azk8s.cn/google_containers/<image-name>:<version>
如:

1
2
k8s.gcr.io/pause-amd64:3.1
gcr.azk8s.cn/google_containers/pause-amd64:3.1

quay.io 镜像

quay.io 和 gcr.io一致,
原: quay.io/<repo-name>/<image-name>:<version>
修改后: quay.azk8s.cn/<repo-name>/<image-name>:<version>

加速器列表

镜像加速器 镜像加速器地址 专属加速器 其它加速
Docker 中国官方镜像 https://registry.docker-cn.com Docker Hub
DaoCloud 镜像站 http://<your_code>.m.daocloud.io 可登录,系统分配 Docker Hub
Azure 中国镜像 https://dockerhub.azk8s.cn Docker Hub、GCR、Quay
科大镜像站 https://docker.mirrors.ustc.edu.cn Docker Hub、GCRQuay
阿里云 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

参考

谢谢鼓励