Docker / Kubernetes 镜像源
时间:2019-09-04
本文章向大家介绍Docker / Kubernetes 镜像源,主要包括Docker / Kubernetes 镜像源使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
由于众所周知的原因, 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.3
# 使用 Azure 中国镜像源
$ docker pull gcr.azk8s.cn/google-containers/addon-resizer:1.8.3
使用镜像源加速 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.2
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.1
$ azk8spull k8s.gcr.io/pause-amd64:3.1
参考文档
-
https://www.google.com
-
https://ieevee.com/tech/2019/03/02/azure-gcr-proxy.html
-
https://www.cnblogs.com/xuxinkun/p/11025020.html
-
https://www.ilanni.com/?p=14534
原文地址:https://www.cnblogs.com/kcxg/p/11457209.html
- CentOS6.5菜鸟之旅:安装Realtek无线网卡驱动
- CentOS6.5菜鸟之旅:U盘安装CentOS64位
- 人工智能创造新型态工作 制造业受冲击
- ASP.NET Core File Providers
- JS魔法堂之实战:纯前端的图片预览
- 域名publica.com近50万交易 买家身份浮出水面
- Vim杂记:Sublime的配色方案
- Vim杂记:markdown插件
- 【手把手教你全文检索】Apache Lucene初探
- 微信小程序的“小游戏” 是什么?
- CentOS6.5菜鸟之旅:中文编辑器忍痛放弃Sublime
- JS魔法堂:Data URI Scheme介绍
- Sedo榜:域名happymath.com以3.5万美金交易居榜首
- ASP.NET Core WebListener 服务器
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python Post提交简单案例,文本内容在线语音合成
- Python多线程爬虫,主播信息资料爬取采集
- 基于Tensorflow2 Lite在Android手机上实现图像分类
- Python知乎专栏爬虫,pdfkit专栏文章制作PDF电子书
- Python爬虫练手,一个简单的Python资讯采集案例
- Python与seo,百度关键词相关搜索关键词采集源码
- istio请求路由分析
- [剑指]2空格替换
- (补充)SPAN+AVISPA for Verifying Cryptographic Protocols
- 如何修改终端中$符号前面的一串名称?
- Alfred 有多强悍,我写了个一键上传图片的 workflow 来告诉你
- Peewee出错:Illegal mix of collations
- 【TOOLS】Linux环境下升级python2.7到python3.6
- 溯源黑帽利用 Web 编辑器漏洞非法植入 SEO 页面事件
- Milvus 查询合并机制