1. 前言
使用 Docker 的时候,经常需要从官方获取镜像,但是有时候拉取镜像的非常慢,体验很差。
解决办法:使用 docker.io 的国内镜像站,加速docker镜像的下载。
本文中,我们就来学习配置使用docker镜像站。
参考文档:
2. 推荐镜像站
- Docker中国区官方镜像:https://registry.docker-cn.com
- 网易:https://hub-mirror.c.163.com
- 中国科技大学:https://docker.mirrors.ustc.edu.cn
- 阿里云:https://cr.console.aliyun.com
- 腾讯云(已废弃):https://mirror.ccs.tencentyun.com
个人专属加速地址:
- 阿里云:访问阿里云镜像加速器,得到一个专属的加速地址。
- DaoCloud:访问配置 Docker 加速器,得到一个专属加速地址。
3. 配置使用镜像站
1、修改docker配置文件
创建或修改 /etc/docker/daemon.json ,添加 registry-mirrors 配置
1 | { |
2、重启docker
1 | systemctl daemon-reload |
3、验证配置
1 | docker info |
看到 Registry Mirrors 部分有我们配置的镜像站,就表明配置成功。
4. 自建镜像站
自建镜像站的优点,是可以统一配置代理,下载需要科学上网才能下载的镜像。
参考文档:Docker Registry
4.1. 启动镜像站
1、下载registry镜像
1 | docker pull registry:2.7.1 |
2、启动本地镜像站
启动docker.io镜像站:
1 | docker run --name docker_io_mirror -d registry:2.7.1 \ |
启动gcr.io镜像站:
1 | docker run --name gcr_io_mirror -d registry:2.7.1 \ |
4.2. 使用本地镜像站
假设镜像站宿主机IP地址为:192.168.56.101
那么想要使用镜像站的机器上, /etc/docker/daemon.json 修改为:
1 | { |
4.3. K8S中搭建镜像站
K8S中搭建镜像站,可以参考docker-registry-mirror/manifests
4.4. Harbor作为镜像站
除了使用docker registry作为镜像站,harbor也可以作为镜像站,具体配置方法参考文档使用 Harbor 搭建 Mirror Registry。
不过不建议这么使用,因为harbor作为mirror站后,只能作为mirror站,大材小用,原本的很多功能就不能使用了。
5. Docker Proxy
Docker Proxy提供多平台容器镜像代理服务,支持 Docker Hub, GitHub, Google, k8s, Quay等镜像仓库。
5.1. Docker Hub 官方镜像代理
5.1.1. 常规镜像代理
官方命令:docker pull stilleshan/frpc:latest
代理命令:docker pull dockerproxy.com/stilleshan/frpc:latest
5.1.2. 根镜像代理
官方命令:docker pull nginx:latest
代理命令:docker pull dockerproxy.com/library/nginx:latest
5.2. GitHub Container Registry
5.2.1. 常规镜像代理
官方命令:docker pull ghcr.io/username/image:tag
代理命令:docker pull ghcr.dockerproxy.com/username/image:tag
5.3. Google Container Registry
5.3.1. 常规镜像代理
官方命令:docker pull gcr.io/username/image:tag
代理命令:docker pull gcr.dockerproxy.com/username/image:tag
5.4. Google Kubernetes
5.4.1. 常规镜像代理
官方命令:docker pull k8s.gcr.io/username/image:tag
官方命令:docker pull registry.k8s.io/username/image:tag
代理命令:docker pull k8s.dockerproxy.com/username/image:tag
5.4.2. 根镜像代理
官方命令:docker pull k8s.gcr.io/coredns:1.6.5
官方命令:docker pull registry.k8s.io/coredns:1.6.5
代理命令:docker pull k8s.dockerproxy.com/coredns:1.6.5
5.5. Quay.io
5.5.1. 常规镜像代理
官方命令:docker pull quay.io/username/image:tag
代理命令:docker pull quay.dockerproxy.com/username/image:tag