Docker官方缓存镜像服务搭建
目的
因为 docker 拉取镜像时常失败,每个机器拉取的相通的镜像浪费大量时间。
所以有以下需求:
- 建立一个缓存docker镜像的服务,
- 如果缓存服务中有需要拉取的镜像,则直接从缓存服务中拉取
- 如果缓存服务中没有,则从官网或其他地址中拉取
- 缓存服务支持多个上游仓库
- 支持本地创建没有上传到 dockerhub 的镜像,缓存拉取
方案
- 官方的 Docker Registry 方法
- 简单
- 不支持多个上游仓库地址
- 不支持非 dockerhub 镜像
- 开源 Harbor 方案
- 复杂
- 支持多个上游仓库地址
- 支持非 dockerhub 镜像
官方 docker registry
创建 config.yaml
1 | version: 0.1 |
启动镜像 registry
1 | docker run -d -p 5000:5000 --restart=always --name registry-mirror -v $(pwd)/config.yml:/etc/docker/registry/config.yml -v /home/cp4/WorkStation/docker_registry/data/registry:/var/lib/registry \ registry:2 |
/home/cp4/WorkStation/docker_registry/data/registry
是缓存镜像存放的宿主机路径,改为自己的路径
启动成功后,在客户端的 docker 配置中(/etc/docker/daemon.json
)增加:
1 | { |
重启docker
1 | sudo systemctl restart docker |
在 客户端中验证,缓存服务的效果
1 | docker rmi mysql |
拉取成功后再次删除后拉取,查看是否速度上变快