玩转docker-镜像加速器

镜像加速器

    Docker之所以这么吸引人,除了它的新颖的技术外,围绕官方Registry(Docker Hub)的生态圈也是相当吸引人眼球的地方。在Docker Hub上你可以很轻松下载到大量已经容器化好的应用镜像,即拉即用。这些镜像中,有些是Docker官方维护的,更多的是众多开发者自发上传分享的。而且你还可以在Docker Hub中绑定你的代码托管系统(目前支持Github和Bitbucket)配置自动生成镜像功能,这样Docker Hub会在你代码更新时自动生成对应的Docker镜像,是不是很方便?

    有个问题,Docker hub 官方虽然提供了众多的应用镜像,即拉即用,但,由于大家都懂得原因,国内访问Docker Hub的速度很不稳定,我们可以通过设置国内的docker镜像的代理服务,解决这个问题。

    镜像加速器的原理其实很简单,类似于缓存,首先如果镜像文件在服务器中的mirror文件中有缓存,则直接命中返回给客户端,否则将会根据--Registry 设置的镜像加速地址,从远程服务器优先加载到本地缓存(本地仓库),最酷的是,是否使用Mirror对Docker使用者来讲是透明的,也就是说在配置Mirror以后,大家可以仍然输入docker pull ubuntu来拉取Docker Hub镜像,除了速度变快了,和以前没有任何区别。

    这点特别像Maven远程仓库,都是从远程节点加载到本地仓库.目前,国内很多的云服务提供商都支持镜像资源,这里我采用阿里云的镜像服务器,配置给大家看看:

 

访问地址:阿里云docker镜像加速器链接

玩转docker-镜像加速器

举个例子

    拿拉去mysql镜像为例,简单了解一下docker 配置镜像加速器之后,拉去速度如何:

途中打马赛克处(为了保密,你懂得),就是我在阿里管理平台设置的镜像加速地址,大家也可设置一下

接着,上干货,尝试拉去mysql看看如何

首先我访问一下官网  https://hub.docker.com/,搜了一下mysql的镜像,随便找一个镜像例子,点进去之后,能看到镜像执行命令,见如下图:

玩转docker-镜像加速器

配置一下镜像加速器地址:

位置:/etc/docker/daemon.json

玩转docker-镜像加速器

执行docker pull mysql ,执行界面效果见如下图:

玩转docker-镜像加速器

速度还是挺快的,,需要注意的是,docker 打包的时候是分层打包,同样,拉取的时候也是分层拉取,每层都有一个唯一标识hash值

docker images 看看镜像情况,发现多了一个mysql,485m配置镜像之后,差不多5分钟左右全部拉去完毕

玩转docker-镜像加速器

    上述是整个docker 镜像加速器的配置以及验证全过程,大家有兴趣可尝试一下,总之,好记性不如烂笔头,欢迎大家批评指正!

 

转载于:https://my.oschina.net/yaukie/blog/2981091