博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微服务架构 - 巧妙获取被墙的Docker镜像
阅读量:6156 次
发布时间:2019-06-21

本文共 1654 字,大约阅读时间需要 5 分钟。

微服务架构 - 巧妙获取被墙的Docker镜像

在国内由于种种原因,有些Docker镜像直接是获取不到的,特别是k8s中的一些镜像。本人在部署k8s中的helm组件时需要获取tiller镜像,如果直接用如下命令:

docker pull gcr.io/kubernetes-helm/tiller:v2.12.1

会由于网络原因连接不上从而导致获取镜像失败。

经查相关资料,可以有一种“曲线求国”的方案,在此通过实现巧妙获取被墙的tiller镜像方法分享给大家。

1、前期准备

这种“曲线求国”的方案,首先要准备2个网站的账号:

GitHub,需要有一个GitHub账号,如果没有的,可以到官网上注册(对于程序员来说,这个是GitHub必备的)

Docker Hub,需要有一个Docker Hub账号,如果没有的,可以到官网上注册(对于学Docker的,这个Docker Hub也是必备的)
2、自定义Dockerfile
通过定义Dockerfile可以构建出镜像,为此首先先自定义一个tiller的镜像的Dockerfile文件,即:

FROM gcr.io/kubernetes-helm/tiller:v2.12.1

MAINTAINER 1256122943@qq.com
通过上面的Dockerfile内容可以发现只是以gcr.io/kubernetes-helm/tiller:v2.12.1为基础镜像,没有加其它实质的东西,这样保证了自定义Dockerfile构建的镜像跟原来的tiller镜像是一样的。

定义好该Dockerfile文件,在本机上构建是不行的,因为在本机上是获取不到基础镜像gcr.io/kubernetes-helm/tiller:v2.12.1。此时就得利用GitHub了,即在GitHub上创建一个repository,比如名称就叫gcr.io_mirror。然后将Dockerfile文件上传到该repository中,即:

在我本人的GitHub是将Dockerfile放到gcr.io_mirror/kubernetes-helm/tiller/v2.12.1中多了几个目录是为了方便管理。

3、构建镜像

现在Dockerfile文件已经在GitHub中,那么现在就可以通过Docker Hub来构建镜像了,首先在Docker Hub中创建repository,即:

名称可以写tiller;描述内容可以随便写一下,例如tiller:v2.12.1;要选择是公开的即是Public;最重要的就行要选择通过连接GitHub来获取需要构建的源码,即点击“Connected”,然后要你填写GitHub的相关信息(如果是第一次关联),然后选择GitHub中需要构建的库,即选择刚刚在GitHub创建的gcr.io_mirror:

注意此处的Dockerfile location这个要填Dcokerfile所在的路径,在此处得填写为:

kubernetes-helm/tiller/v2.12.1/Dockerfile

这个的路径具体就是这个Dockerfile文件在GitHub的库中路径了。

这些信息填写好后,就可以点击“Create & Build”按钮了,这个构建的过程可能需要几分钟。

4、利用镜像

镜像在Docker Hub中构建好后,就可以在本机上获取我们自定义构建的tiller镜像了,即在本机上输入命令:

docker pull lzj09/tiller:v2.12.1

这样就样把自定义tiller镜像获取到了,但是为了在使用中更加方便,可以为该镜像打一下tag,即:

docker tag lzj09/tiller:v2.12.1 gcr.io/kubernetes-helm/tiller:v2.12.1

那么我们就通过这种“曲线求国”的方式获取到了gcr.io/kubernetes-helm/tiller:v2.12.1镜像了。
原文地址

转载地址:http://ehbfa.baihongyu.com/

你可能感兴趣的文章
网络安全系列之八 Cookie注入(注入中转)
查看>>
DVWA系列之15 文件包含漏洞利用
查看>>
开源GIS之--移动GIS
查看>>
js new Date()
查看>>
如何根据动态SQL代码自动生成DTO
查看>>
mysql 的用户管理
查看>>
Oracle技术之如何监测一个PLSQL过程的运行情况(三)
查看>>
健身:手臂训练
查看>>
Unable to preventDefault inside passive event listener due to target being treated as passive.
查看>>
【趣文翻译】如何用各种编程语言杀死一条龙,PHP大亮 [转]
查看>>
[Asp.net MVC]Asp.net MVC5系列——第一个项目
查看>>
[Node.js]DNS模块
查看>>
响应式编程(Reactive Programming)(Rx)介绍
查看>>
数据之独立存储(Isolated Storage)[转]
查看>>
[数据结构]快速排序
查看>>
面试题----网页/应用访问慢突然变慢,如何定位问题
查看>>
对Java单例模式 volatile关键字作用的理解
查看>>
sublime Text3支持vue高亮,sublime Text3格式化Vue
查看>>
我的第一篇博客
查看>>
神经网络CNN训练心得--调参经验
查看>>