原文出自:http://blog.csdn.net/anxpp/article/details/52483957

123

    仓库是集中存放镜像的地方。

    首先说下注册服务器,注册服务器实际上是存放仓库的具体服务器,每个服务器通常会有多个仓库,而每个仓库下又有多个镜像。

    比如仓库地址:dl.dockerpool.com/ubuntu,dl.dockerpool.com是注册服务器,ubuntu是仓库名。

    其中仓库分共有仓库和私有仓库。

    1、Docker Hub

    Docker官方维护了一个公共仓库:htpps://hub.docker.com,其中包括了非常多的镜像,可以满足很多方面的需求了,我们可以直接从里面下载镜像。

    登陆

    可以使用docker login进行注册或者登陆。

    注册成功后本地用户目录的.dockercfg中将保存用户的认证信息。

    基本操作

    如果我们需要搜索指定的镜像,可以通过docker search命令,并使用docker pull下载镜像到本地。

    在介绍镜像的文章中已经介绍了具体的搜索方式,此处不再赘述。

    一般的,可以将这些镜像分为2类,一类是基础镜像,一般由docker公司维护,镜像的名字通常为单个单词;还有一种是由其他用户上传的镜像,名字前一般会带有前缀,表示某一用户的某个仓库。

    额外的,查找时通过-s N参数可以指定评价为N星以上的镜像。

    用户也可以通过docker push命令将本地镜像上传到仓库中。

    自动创建

    何为自动创建?有时候用户创建了镜像,并安装了某个软件,如果软件发布新的版本,则需要手动更新镜像,而自动创建就使得需要经常升级镜像内程序变得十分方便。

    自动创建功能可以是用户通过docker hub指定一个目标网站(github或者bitbucket)上的项目,一旦发现项目有新的提交,就自动执行创建。

    二配置自动创建的不走如下:

 

  • 创建并登陆docker hub,以及目标网站。在目标网站中链接账户到docker hub。
  • 在docker hub中配置一个自动创建
  • 先去一个目标网站中的项目(需要包含Dockerfile)和分支。
  • 指定Dockerfile的位置并提交创建

 

    之后可以在docker hub中的“自动创建”页面中跟踪每次创建的状态。

    2、Docker Pool

    天朝的墙,高又高,强大的Docker Hub我们可能时常上不去或者不稳定(此处推荐同学们科学上网),国内专业的Docker技

术社区Docker Pool也提供了官方镜像的下载管理服务(http://dockerpool.com)。

    从这里下载的镜像与官方的是完全一样的,不过下载的时候需要指定地址,如:

 

[plain] view plain copy
 
 print?在CODE上查看代码片派生到我的代码片
  1. docker pull dl.dockerpool.com:5000/ubuntu:12.04  

    这时标签为docker pull dl.dockerpool.com:5000/ubuntu,可以使用docker tag修改标签:

 

 

[plain] view plain copy
 
 print?在CODE上查看代码片派生到我的代码片
  1. docker tag dl.dockerpool.com:5000/ubuntu:12.04 ubuntu:12.04  

 

    3、私有仓库

    搭建一个私有仓库以便于团队能更容易的管理镜像等,所以还是有必要的。

    3.1、创建私有仓库

    安装docker后,可以使用官方提供的registry镜像简单的搭建一套本地私有仓库环境:

 

 

[plain] view plain copy
 
 print?在CODE上查看代码片派生到我的代码片
  1. docker run -d -p 5000:5000 registry  

    然后会自动下载并启动一个registry容器,创建本地的私有仓库服务。

 

    默认情况下仓库创建在容器的/tmp/registry目录下。

    可以通过参数-v指定镜像文件存储到本机的路径上:

 

[plain] view plain copy
 
 print?在CODE上查看代码片派生到我的代码片
  1. docker run -d -p 5000:5000 -v /var/docker/registry:/tmp/registry registry  

    此时本地启动的私有仓库监听5000端口。

 

 

    3.2、管理

    操作就是跟Docker Hub的是一样的......
    可以通过curl查看仓库中的镜像:

 

 

[plain] view plain copy
 
 print?在CODE上查看代码片派生到我的代码片
  1. curl http://127.0.0.1:5000/v1/search  

    镜像的上传下载也比较简单。

 

 

小结

    docker仓库为镜像的分发和管理变得非常简单,我们也可以到公共仓库中下载需要的镜像。