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

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

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

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

1、前期准备

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

  • GitHub,需要有一个GitHub账号,如果没有的,可以到官网https://github.com上注册(对于程序员来说,这个是GitHub必备的)
  • Docker Hub,需要有一个Docker Hub账号,如果没有的,可以到官网https://hub.docker.com上注册(对于学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镜像了。

关注我

以你最方便的方式关注我:

微信公众号:

微服务架构 - 巧妙获取被墙的Docker镜像的更多相关文章

  1. 基于Spring Boot和Spring Cloud实现微服务架构学习

    转载自:http://blog.csdn.net/enweitech/article/details/52582918 看了几周Spring相关框架的书籍和官方demo,是时候开始总结下这中间的学习感 ...

  2. 基于Spring Boot和Spring Cloud实现微服务架构学习--转

    原文地址:http://blog.csdn.net/enweitech/article/details/52582918 看了几周spring相关框架的书籍和官方demo,是时候开始总结下这中间的学习 ...

  3. 微服务理论之二:面向微服务架构与传统架构、SOA对比,以及云化对比

    一.Monolith 网上对Microservice进行介绍的文章常常以Monolith作为开头,我也不会例外.原因是,知道了Monolith的不便之后才能更容易地理解Microservice架构模式 ...

  4. 微服务架构-选择Spring Cloud,放弃Dubbo

    Spring Cloud 在国内中小型公司能用起来吗?从 2016 年初一直到现在,我们在这条路上已经走了一年多. 在使用 Spring Cloud 之前,我们对微服务实践是没有太多的体会和经验的.从 ...

  5. Spring Cloud构建微服务架构:服务网关(路由配置)【Dalston版】

    转载:http://blog.didispace.com/spring-cloud-starter-dalston-6-2/ 原创  2017-08-26  翟永超  Spring Cloud 被围观 ...

  6. 微服务架构集大成者—Spring Cloud (转载)

    软件是有生命的,你做出来的架构决定了这个软件它这一生是坎坷还是幸福. 本文不是讲解如何使用Spring Cloud的教程,而是探讨Spring Cloud是什么,以及它诞生的背景和意义. 1 背景 2 ...

  7. 放弃Dubbo,选择最流行的Spring Cloud微服务架构实践与经验总结

    http://developer.51cto.com/art/201710/554633.htm Spring Cloud 在国内中小型公司能用起来吗?从 2016 年初一直到现在,我们在这条路上已经 ...

  8. WeText项目:一个基于.NET实现的DDD、CQRS与微服务架构的演示案例

    最近出于工作需要,了解了一下微服务架构(Microservice Architecture,MSA).我经过两周业余时间的努力,凭着自己对微服务架构的理解,从无到有,基于.NET打造了一个演示微服务架 ...

  9. NET实现的DDD、CQRS与微服务架构

    WeText项目:一个基于.NET实现的DDD.CQRS与微服务架构的演示案例 最近出于工作需要,了解了一下微服务架构(Microservice Architecture,MSA).我经过两周业余时间 ...

随机推荐

  1. 学习Timer定时器

    原文地址:http://www.cppblog.com/ivenher/articles/19969.html setTimer函数用于创建一个计时器,KillTimer函数用于销毁一个计时器.计时器 ...

  2. CVE-2017-12149 JBOOS AS 6.X 反序列化漏洞利用

    检测目录: 返回500 一般就是存在了. 下载工具: http://scan.javasec.cn/java/JavaDeserH2HC.zip 使用方法: javac -cp .:commons-c ...

  3. Android 资源文件命名与使用

    [推荐]资源文件需带模块前缀 [推荐]layout 文件的命名方式 Activity 的 layout 以 module_activity 开头 Fragment 的 layout 以 module_ ...

  4. Java学习导航

    由于最近在系统的重新学习Java,为了便于日后复习,给个人博客中Java内容做一个目录. Java基础:Java虚拟机(JVM) Java基础:内存模型 Java基础:JVM垃圾回收算法 Java基础 ...

  5. Jupyter-notebook 导出时不显示Input[]代码

    参考: https://stackoverflow.com/questions/34818723/export-notebook-to-pdf-without-code    1. 第一个方式是直接在 ...

  6. Spring Boot实战笔记(六)-- Spring高级话题(多线程)

    一.多线程 Springt通过任务执行器(TaskExecutor)来实现多线程和并发编程.使用ThreadPoolTaskExecutor可实现一个基于线程池的TaskExecutor.而实际开发中 ...

  7. PAT1126:Eulerian Path

    1126. Eulerian Path (25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue In grap ...

  8. 项目在tomcat里运行一段时间总是自动崩掉的问题排查与解决

    最近的检验系统上线一段时间后,发现系统访问不了,tomcat总是会自动崩掉,一般遇到这种问题,程序员的第一反应都肯定是内存溢出. 确实是,但是java里内存分好几种,堆内存.栈内存.静态内存区等等,下 ...

  9. .net关于坐标之间一些简单操作

    火星坐标系 (GCJ-02)转换为百度坐标系 (BD-09) function GCJ02toBD09(lng, lat) { var x_pi = 3.14159265358979324 * 300 ...

  10. Embedded servlet containers

    73. Embedded servlet containers 73.1 Add a Servlet, Filter or Listener to an application There are t ...