由于众所周知的原因, Docker 官方镜像仓库和 Google 镜像仓库在国内访问速度很慢或者不可用。这样就给我们在部署和使用 Kubernetes 时带来了极大的不便。今天我们就来介绍几种方法,可以让你愉快的解决该问题。
既然是网络方面的问题,解决该问题的思路就很简单了,当然是使用国内可用的镜像源。这里为大家推荐两个好用的国内镜像源:Azure 中国镜像源和中科大镜像源。
Azure 中国镜像源  
Azure 中国镜像源地址:http://mirror.azure.cn/
Azure 中国镜像源 Github 地址:https://github.com/Azure/container-service-for-azure-china
镜像源配置说明:http://mirror.azure.cn/help/gcr-proxy-cache.html
中科大镜像源
中科大镜像源地址:http://mirrors.ustc.edu.cn/
中科大镜像源 Github 地址:https://github.com/ustclug/mirrorrequest
镜像源配置说明:https://github.com/ustclug/mirrorrequest/issues/187

使用镜像源加速 Docker.io 镜像仓库

hub.docker.com 是 Docker 官方镜像仓库,也是我们平时在使用 Docker 过程使用最多的一个镜像仓库。该镜像仓库平时拉取速度通常就只有几十 Kb,非常的慢,使用起来严重影响了工作效率。
既然现在国内有镜像源可用,我们当然直接使国内镜像源便可。下面分别对其使用方法进行介绍。
如果在 Docker 官方仓库拉取的是官方镜像,拉取方法类似如下:
$ docker pull xxx:yyy
使用中科大镜像源,应该类似这样拉取:
$ docker pull docker.mirrors.ustc.edu.cn/library/xxx:yyy
使用 Azure 中国镜像源,应该类似这样拉取:
$ docker pull dockerhub.azk8s.cn/library/xxx:yyy
如果在 Docker 官方仓库拉取的镜像是私有仓库
拉取方法类似如下:
$ docker pull xxx/yyy:zz
使用中科大镜像源,应该类似这样拉取:
$ docker pull docker.mirrors.ustc.edu.cn/xxx/yyy:zz
使用 Azure 中国镜像源,应该类似这样拉取:
$ docker pull dockerhub.azk8s.cn/xxx/yyy:zz
  • 演示一个使用镜像源拉取的实例
下面我们以拉取 mysql:5.7 和 360cloud/wayne 为例:
# 使用中科大镜像源 

$ docker pull docker.mirrors.ustc.edu.cn/library/mysql:5.7
$ docker pull docker.mirrors.ustc.edu.cn/360cloud/wayne
# 使用 Azure 中国镜像源 $ docker pull dockerhub.azk8s.cn/library/mysql:5.7
$ docker pull dockerhub.azk8s.cn/360cloud/wayne
注:首次拉取时可能会有 Error:image library/mysql:5.7 not found 类似报错,这说明镜像源中没有缓存该镜像。这个属于正常现像,因为加速镜像都是先从官方镜像仓库进行拉取的,然后缓存到本地。遇到这种情况,你可以尝试多拉取几次即可。

使用镜像源加速 gcr.io 镜像仓库

  • 如果拉取的 Google 镜像仓库中容器镜像类似如下:
$ docker pull gcr.io/xxx/yyy:zzz

使用中科大镜像源,应该类似这样拉取:
$ docker pull gcr.mirrors.ustc.edu.cn/xxx/yyy:zzz 使用 Azure 中国镜像源,应该类似这样拉取:
$ docker pull gcr.azk8s.cn/xxx/yyy:zzz
  • 演示一个使用镜像源拉取的实例
下面我们以拉取 gcr.io/kubernetes-helm/tiller:v2.9.1 为例:

# 使用中科大镜像源
$ docker pull gcr.mirrors.ustc.edu.cn/kubernetes-helm/tiller:v2.9.1 # 使用 Azure 中国镜像源
$ docker pull gcr.azk8s.cn/kubernetes-helm/tiller:v2.9.1

使用镜像源加速 k8s.gcr.io 镜像仓库

部署或使用 Kubernetes 时我们会使用到很多相关的镜像,而这些镜像通常会使用 k8s.gcr.io 这个镜像仓库。
其实 k8s.gcr.io 就是 gcr.io/google-containers 下面的容器镜像,这样我们也可以使用中科大镜像源或者 Azure 中国镜像源来对此进行加速。
  • 如果我们拉取的 Kubernetes 所需容器镜像类似以下形式:
$ docker pull k8s.gcr.io/xxx:yyy
# 相当于$ docker pull gcr.io/google-containers/xxx:yyy 使用中科大镜像源,应该类似这样拉取:
$ docker pull gcr.mirrors.ustc.edu.cn/google-containers/xxx:yyy 使用 Azure 中国镜像源,应该类似这样拉取:
$ docker pull gcr.azk8s.cn/google-containers/xxx:yyy
  • 演示一个使用镜像源拉取的实例
下面我们以拉取 k8s.gcr.io/addon-resizer:1.8.3 为例:
# 使用中科大镜像源
$ docker pull gcr.mirrors.ustc.edu.cn/google-containers/addon-resizer:1.8.
# 使用 Azure 中国镜像源
$ docker pull gcr.azk8s.cn/google-containers/addon-resizer:1.8.

使用镜像源加速 quay.io 镜像仓库

部署或使用 Kubernetes 相关周边组件或生态时我们经常会从 quay.io 镜像仓库拉取镜像。quay.io 默认情况下在国内也是不可用的,同样我们也可以通过中科大镜像源和 Azure 中国镜像源进行加速访问。
  • 如果我们拉取的 quay.io 下所需容器镜像类似以下形式:
$ docker pull quay.io/xxx/yyy:zzz

使用中科大镜像源,应该类似这样拉取:
$ docker pull quay.mirrors.ustc.edu.cn/xxx/yyy:zzz 使用 Azure 中国镜像源,应该类似这样拉取:
$ docker pull quay.azk8s.cn/xxx/yyy:zzz
  • 演示一个使用镜像源拉取的实例
下面我们以拉取 quay.io/coreos/kube-state-metrics:v1.5.0 为例:
# 使用中科大镜像源
$ docker pull quay.mirrors.ustc.edu.cn/coreos/kube-state-metrics:v1.5.0
# 使用 Azure 中国镜像源
$ docker pull quay.azk8s.cn/coreos/kube-state-metrics:v1.5.0

一些自动化工具

上面我们讲解和演示了如何使用中科大和 Azure 中国镜像源加速拉取镜像的方法。不过这些方法都是手动的,还不够方便。下面将介绍两个小工具,让你可以更加方便和快速的使用这些镜像源。

docker-wrapper

一个 Python 编写的工具脚本,可以替代系统的 Docker 命令,自动从 Azure 中国拉取镜像并自动 Tag 为目标镜像和删除 Azure 镜像,一气呵成。
项目地址:https://github.com/silenceshell/docker_wrapper
docker-wrapper 安装
$ git clone https://github.com/silenceshell/docker-wrapper.git
$ sudo cp docker-wrapper/docker-wrapper.py /usr/local/bin/ docker-wrapper 使用
$ docker-wrapper pull k8s.gcr.io/kube-apiserver:v1.14.1
$ docker-wrapper pull gcr.io/google_containers/kube-apiserver:v1.14.1
$ docker-wrapper pull nginx
$ docker-wrapper pull silenceshell/godaddy:0.0.

azk8spull

一个 Shell 编写的脚本,这个脚本功能和 docker-wrapper 类似。同样可以自动从 Azure 中国拉取镜像并自动 Tag 为目标镜像和删除 Azure 镜像。
项目地址:https://github.com/xuxinkun/littleTools#azk8spull
azk8spull 安装
$ git clone https://github.com/xuxinkun/littleTools$ cd littleTools
$ chmod +x install.sh
$ ./install.sh azk8spull 使用
$ azk8spull quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.24.
$ azk8spull k8s.gcr.io/pause-amd64:3.1

参考文档

  1. https://www.google.com
  2. https://ieevee.com/tech/2019/03/02/azure-gcr-proxy.html
  3. https://www.cnblogs.com/xuxinkun/p/11025020.html
  4. https://www.ilanni.com/?p=14534

Docker / Kubernetes 镜像源的更多相关文章

  1. docker 国内镜像源

    参考:docker 国内镜像源 作者:Joncc Linux环境 # vi /etc/docker/daemon.json { "registry-mirrors": [" ...

  2. docker改变镜像源

    sudo echo “DOCKER_OPTS=\”\$DOCKER_OPTS –registry-mirror=http://your-id.m.daocloud.io -d\”” >> ...

  3. Docker国内镜像源设置

    编辑json文件,添加如下内容后重启docker即可. [root@Docker ~]# cat /etc/docker/daemon.json{ "registry-mirrors&quo ...

  4. Docker CE 镜像源站

    sudo apt-get update sudo apt-get -y install apt-transport-https ca-certificates curl software-proper ...

  5. docker国内镜像源

    https://www.daocloud.io/mirror curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http ...

  6. 替换 Docker 或 Laradock 中 Debian 系统镜像源解决软件安装问题

    Docker Debian 镜像源替换 因多数默认的 Docker 镜像为国外的,而采用的镜像源也是国外的,故访问很慢,所以我们需要替换为国内的(比如阿里云或163等). 163 - Debian A ...

  7. docker镜像源设置

    由于docker默认镜像源为国外官方源,下载速度较慢.设置国内镜像源可加速 修改文件 /etc/docker/daemon.json vi /etc/docker/daemon.json 添加以下内容 ...

  8. docker配置国内阿里云镜像源

    使用docker默认镜像源下载镜像会很慢,因此很多情况下,我们在安装完docker以后都会修改为国内的镜像,这样在下载镜像的时候就不用等那么长时间了. 配置docker的镜像为阿里云镜像 方法一 $ ...

  9. Docker之镜像地址

    转载自https://www.cnblogs.com/doraman/p/9570891.html 官方docker hub 官方:https://hub.docker.com/explore/ 常用 ...

随机推荐

  1. NOIP提高组2018试题解析 目录

    重磅来袭! 本蒟蒻准备挑战一下NOIP2018提高组的试题啦(怎么办 我猜我连10分都拿不了) 目录: Day1 1.铺设道路   讲解  得分:100 2.货币系统   讲解 3.赛道修建   讲解 ...

  2. eclipse反编译插件 jadclipse jad

    eclipse常用反编译插件jadclipse.jad 1.下载jadclipse:net.sf.jadclipse_3.3.0.jar,放到eclipse-plugins 2.下载jad.exe,放 ...

  3. .NET Core验证ASP.NET密码

    .NET Core验证ASP.NET密码 随着.NET Core的持续更新和完善,越来越多的机构已经选择或者升级为.NET Core.但由于技术不完全相同,不可能所有应用/数据库都能无缝迁移,因此AS ...

  4. [bzoj4873] [洛谷P3749] [Shoi2017] 寿司餐厅

    Description Kiana最近喜欢到一家非常美味的寿司餐厅用餐.每天晚上,这家餐厅都会按顺序提供n种寿司,第i种寿司有一个 代号ai和美味度di,i,不同种类的寿司有可能使用相同的代号.每种寿 ...

  5. python类型-字典

    字典是python语言中唯一的映射类型,映射对象里哈希值(键,key)和指向的对象(值,value)是一对多的关系.一个字典对象是可变的,是一个容器类型,可存储任意个数的python对象,其中也可以包 ...

  6. C语言寒假大作战01

    问题 回答 这个作业属于哪个课程 2019软件四班C语言寒假作业大作战 这个作业要求在哪里 作业要求 我在这个课程的目标是 gitee 与 git基础命令学习与使用 这个作业在那个具体方面帮助我实现目 ...

  7. ios--->instrument的leaks来检查内存泄漏

    instrument来检查内存泄漏 1.第一步打开 或者: 然后选择leaks 2.若此时编译出现如下问题,可能是非debug版本造成的,切换成debug版本即可 打开工程的Edit Scheme选项 ...

  8. PTA 6-15 用单向循环链表实现猴子选大王 (20 分)

    一群猴子要选新猴王.新猴王的选择方法是:让n只候选猴子围成一圈,从某位置起顺序编号为1~n号.每只猴子预先设定一个数(或称定数),用最后一只猴子的定数d,从第一只猴子开始报数,报到d的猴子即退出圈子: ...

  9. 虚拟机ubuntu系统怎么添加 VMware tools

    首先弹出光盘 然后安装 点击安装VMware tools 然后进入光盘 打开VMware tools 文件夹 将解压文件拉到桌面上 打开桌面上的文件夹 不选中文件 然后键入下面的内容 输入密码 输入y ...

  10. SpringBoot使用JMS(activeMQ)的两种方式 队列消息、订阅/发布

    刚好最近同事问我activemq的问题刚接触所以分不清,前段时间刚好项目中有用到,所以稍微整理了一下,仅用于使用 1.下载ActiveMQ 地址:http://activemq.apache.org/ ...