提高Docker拉取速度的几个方法

912 阅读2分钟

引言

  • 本文主要介绍了几种提高Docker拉取速度的方法,包含设置配置文件以及其他第三方脚本。
  • 背景:
    • 使用Docker pull拉取镜像很慢,经常拉取超时
    • 服务器没有安装Docker客户端又要拉取容器镜像

设置Docker配置文件

  • Docker配置的Docker仓库默认是在国外的,这里就是进行配置镜像地址为国内的。
    • cd /etc/docker/首先进入docker安装位置(根据自己实际安装地址)
    • vi daemon.json进行配置镜像地址
{
"registry-mirrors": [ 
  "https://reg-mirror.qiniu.com", 
  "https://dockerhub.azk8s.cn" 
  ]
}

  • 想让使用七牛云或者其他国内镜像源务必将其放在前面第一位,以下为其他国内镜像源(部分哈,不是全部,有个能用的即可)
    • 网易:http://hub-mirror.c.163.com
    • 国内:https://registry.docker-cn.com
    • 中国科技大学:https://docker.mirrors.ustc.edu.cn
    • 阿里云:https://aa25jngun.mirror.aliyuncs.com

使用第三方脚本

docker-drag

根据官网介绍:docker-drag 是一个用于与 Docker Hub 交互的工具,并且不需 Docker 客户端本身支持。它主要是通过与 Docker Hub 的 HTTPS API 进行交互来实现相应功能。

  • 项目地址:docker-drag
  • docker-drag 其实就是一个Python脚本,代码量也很小可以直接复制代码也可以用wget下载
  • $ wget https://raw.githubusercontent.com/NotGlop/docker-drag/master/docker_pull.py
  • 仓库有演示动图,使用非常简单,拉取镜像后保存为一个tar文件,再load进docker中变成镜像即可。
    • docker load -i 压缩文件.tar

download-frozen-image-v2

  • 类似的工具还有shell脚本工具:download-frozen-image-v2,其隶属于MOby项目
  • 项目地址:moby
    • $ wget https://raw.githubusercontent.com/moby/moby/master/contrib/download-frozen-image-v2.sh
    • download-frozen-image-v2.sh target_dir image[:tag][@digest]
  • 完整例子如下:
# 下载 Ubuntu 容器镜像 
bash download-frozen-image-v2.sh ubuntu ubuntu:latest  
# 需要自己手动打成 TAR 包 
tar -C 'ubuntu' -cf 'ubuntu.tar' .  
# 导入容器镜像 
docker load -i ubuntu.tar  

使用dp实现

dp 同样也是一个实现上述类似需求的小工具。dp 使用 Go 语言开发,天生具有良好的跨平台性。相对于前两个工具来说更容易在多平台上部署使用,而且 dp 还支持将多个镜像打包在一起。

  • 项目地址:dp
  • 貌似不更了,让去使用另一个工具,所以这个暂时作为一个方法标记吧,前面两个无法实现可以再考虑这个。