Docker Hub Mirror使用手册


前言

Docker之所以这么吸引人,除了它的新颖的技术外,围绕官方Registry(Docker Hub)的生态圈也是相当吸引人眼球的地方。

在Docker Hub上你可以很轻松下载到大量已经容器化的应用镜像,即拉即用。这些镜像中,有些是Docker官方维护的,更多的是众多开发者自发上传分享的。而且你还可以在Docker Hub中绑定你的代码托管系统(目前支持Github和Bitbucket)配置自动生成镜像功能,这样Docker Hub会在你代码更新时自动生成对应的Docker镜像,是不是很方便?

不幸的是,Docker Hub并没有在国内部署服务器或者使用国内的CDN服务,因此在国内特殊的网络环境下,镜像下载十分耗时,少则二十分钟,多则数十小时。为了克服跨洋网络延迟,能够快速高效地下载Docker镜像,最为有效的方式之一就是:使用 DaoCloud团队 提供的服务Docker Hub Mirror

Docker Hub Mirror简介

Docker Hub Mirror为全球最大的Docker Registry(Docker Hub)提供在中国的镜像代理服务。Docker Hub Mirror会为中国的用户在国内的服务器上缓存诸多镜像。

当用户的Docker设定了--registry-mirror参数后,用户的Docker下拉镜像时,首先去Docker Hub Mirror中查找镜像,若命中则说明该镜像已经在Docker Hub Mirror中缓存,用户直接从Docker Hub Mirror中下载;若没有命中,则说该镜像还没有被缓存,那么Docker Hub Mirror首先会被驱使去Docker Hub中下载该镜像,并进行缓存,最终让用户从Docker Hub Miorror中下载该镜像。

Docker Hub Mirror使用说明

注册Docker Hub Mirror账号

DaoCloud提供Docker Hub Mirror服务。用户可以进入Docker Hub Mirror注册入口注册。在进入控制台页面后直接点击启动你的加速器后,您即可得到一个Mirror的地址,将该地址配置在Docker Daemon的启动脚本中,重启Docker Daemon即可使得Docker Hub Mirror配置生效。

下文分四种不同的操作系统,来详细阐述如歌配置Docker Hub Mirror地址。

Ubuntu


  • 安装或升级Docker
    Docker 1.3.2版本以上才支持Docker Hub Mirror机制,如果您还没有安装Docker或者版本过低,请安装或升级版本。请参考 Docker安装文档

  • 配置Docker Hub Mirror
    sudo echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=http://xxx.m.daocloud.io\"" >> /etc/default/docker
    service docker restart

    请将xxx替换为您在 DaoCloud 上注册后,为您专属生成的Mirror地址链接名。
    该脚本可以将 --registry-mirror 加入到您的Docker配置文件 /etc/defaults/docker中。

  • 尽情享受Docker Hub Mirror
    Docker Hub Mirror使用不需要任何附件操作,就像这样下载官方Ubuntu镜像
    docker pull ubuntu


CentOS


  • 安装或升级Docker
    Docker 1.3.2版本以上才支持Docker Hub Mirror机制,如果您还没有安装Docker或者版本过低,请安装或升级版本。请参考 Docker安装文档

  • 配置Docker Hub Mirror
    sudo sed -i 's|OPTIONS=|OPTIONS=--registry-mirror=http://xxx.m.daocloud.io |g' /etc/sysconfig/docker
    service docker restart

    请将xxx替换为您在 DaoCloud 上注册后,为您专属生成的Mirror地址链接名。

    该脚本可以将 --registry-mirror 加入到您的Docker配置文件 /etc/defaults/docker中。

  • 尽情享受Docker Hub Mirror
    Docker Hub Mirror使用不需要任何附件操作,就像这样下载官方Ubuntu镜像
    docker pull ubuntu


MAC


  • 安装或升级MAC版本下的Boot2Docker
    Docker 1.3.2版本以上才支持Docker Hub Mirror机制,如果您还没有安装Docker或者版本过低,请安装或升级版本。请参考 Boot2Docker安装文档 ,高速下载Boot2Docker

  • 配置Docker Hub Mirror
    请确认你的Boot2Docker已经启动,并执行
    boot2docker ssh
    sudo su
    echo "EXTRA_ARGS=\"--registry-mirror=http://xxx.m.daocloud.io\"" >> /var/lib/boot2docker/profile && exit
    exit
    boot2docker restart

    请将xxx替换为您在 DaoCloud 上注册后,为您专属生成的Mirror地址链接名。
  • 尽情享受Docker Hub Mirror
    Docker Hub Mirror使用不需要任何附件操作,就像这样下载官方Ubuntu镜像:docker pull ubuntu


Windows


  • 安装或升级MAC版本下的Boot2Docker
    Docker 1.3.2版本以上才支持Docker Hub Mirror机制,如果您还没有安装Docker或者版本过低,请安装或升级版本。请参考 Boot2Docker安装文档 ,高速下载Boot2Docker

  • 配置Docker Hub Mirror
    进入Boot2Docker Start Shell,并执行
    sudo su
    echo "EXTRA_ARGS=\"--registry-mirror=http://xxx.m.daocloud.io\"" >> /var/lib/boot2docker/profile
    exit

    重新启动Boot2Docker

    请将xxx替换为您在 DaoCloud 上注册后,为您专属生成的Mirror地址链接名

  • 尽情享受Docker Hub Mirror
    Docker Hub Mirror使用不需要任何附件操作,就像这样下载官方Ubuntu镜像
    docker pull ubuntu

5 个评论

解决国内Docker Image下载慢的问题,请大家多多尝试使用,多提意见哈
非常好的镜像服务!!!
我想了解一下目前daocloud已经缓存了多少官方registry上的镜像,是全部吗,我比较好奇你们缓存的这些镜像都用了多少G/TB的存储空间?
全部几乎是不可能的
注册以后地址怎么生成的?
我在mac上按照daocloud的操作手册执行了boot2docker ssh ......之后会提示Need TLS certs for boot2docker,是不是缺少TLS相关的配置项?

要回复文章请先登录注册