仓库是集中存放镜像的地方,分为公共仓库和私有仓库。一个容易与之混肴的概念是注册服务器。实际上注册服务器是存放仓库的具体服务器,一个注册服务器上可以有多个仓库,而每个仓库下面可以有多个镜像。从这方面来说,可将仓库看做一个具体的项目或目录。例如对于仓库地址private-docker.com/ubuntu来说,private-docker.com是注册服务器地址,ubuntu是仓库名。
1.Docker Hub公共镜像市场
目前Docker官方维护了一个公共镜像仓库https://hub.docker.com,其中已经包括超过上万的镜像。大部分镜像需求,都可以通过Docker Hub中直接下载镜像来实现。
(1)登录
可以通过命令行执行docker login命令输入用户名和密码、邮箱等来完成注册和登录。注册成功后,本地用户目录.dockerfile中将保存用户的认证信息。
登录成功的用户可以上传个人制造的镜像。
(2)基本操作
用户无需登录即可通过docker search命令来查找官方仓库中的镜像,并利用docker pull 命令来将它下载到本地。
例如:
搜寻centos的镜像
下载centos镜像
(3)自动创建
自动创建功能对于需要经常升级镜像内程序来说,十分方便。有时候,用户创建了镜像,安装了某个软件,如果软件发布新版本则需要手动更新镜像。
而自动创建允许用户通过Docker Hub指定跟踪一个目标网络(目前支持Github或BitBucket)上的项目,一旦项目发生新的提交,则自动执行创建。
要配置自动创建,包括如下步骤:
a.创建并登陆Docker Hub,以及目标网站;*在目标网站中连接账户到Docker Hub;
b.在Docker Hub中配置一个"自动创建";
c.选取一个目标网站中的项目(需要含Dockerfile)和分支;
d.指定Dockerfile的位置,并提交创建;
之后,可以在Docker Hub的“自动创建”页面中跟踪每次创建的状态。
2.时速云镜像市场
时速云镜像市场,通过百度搜索一大把,阿里云等是比较有名的。当然通常是要收费的。
3.搭建本地私有仓库
(1)使用registry镜像创建私有仓库
docker run -d -p 5000:5000 registry
这将自动下载并启动一个registry容器,创建本地的私有仓库服务。
默认情况下,会将仓库建立在容器的/tmp/registry目录下。可以通过-v参数来将镜像文件存放在本地的指定路径。
例如下面的例子将上传的镜像放到/opt/data/registry目录:
docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry
此时,在本地将启动一个私有仓库服务,监听端口为5000
(2)管理私有仓库
docker tag ubuntu:14.04 10.0.2.2:5000/test
使用docker push 上传标记的镜像
docker push 10.0.2.2:5000/test
注意:如果要使用安全证书,用户可以从比较知名的CA服务商申请公开的SSL/TLS证书,或者使用openssl等软件自行生成。