Docker pull 经常因为网络原因导致下载很慢,如果镜像源是 Docker Hub 则很好解决,因为 Docker 官方就提供加速镜像。但是遇到第三方镜像就不好解决了,本文主要解决第三方镜像 docker pull 的速度问题, 比如说 elk 的 docker 镜像。

一、先说 Docker Hub 的加速方法

1
2
3
4
5
# 直接添加配置文件后,重启 docker 服务即可  
vi /etc/docker/daemon.json  
{  
  "registry-mirrors": ["https://registry.docker-cn.com"]  
}  

二、第三方镜像加速方法,其原理是:使用国内的 docker 镜像构建服务,来构建一个私有镜像,下面以在阿里云构建 ELK 为例:
1. 首先在 阿里云代码托管中心创建 git 项目 (github也可以),并创建 Dockerfile,内容如下

1
from docker.elastic.co/elasticsearch/elasticsearch:7.4.2  
  1. 在 阿里云容器镜像服务中创建镜像并添加构建规则

    为了达到最好的速度,这里建议勾选海外构建

  2. 添加构建规则

  3. 构建成功后,按照当前镜像中的基本信息中的代码进行 pull 到本地

    1
    2
    3
    4
    
    # 先登录到阿里云  
    docker login --username=xxxxx@aliyun.com registry.cn-hangzhou.aliyuncs.com  
    # 拉取镜像  
    docker pull registry.cn-hangzhou.aliyuncs.com/xxx-elk/elasticsearch:7.4.2