Docker学习 - 4.仓库

7059386-a55534e7f4652258.jpg

仓库(Repository)是集中存放镜像的地方,一个容易与之混淆的概念是注册服务器(Registry)。实际上,注册服务器是存放仓库的具体服务器,每个服务器上有多个仓库,每个仓库有多个镜像。因此,仓库可以被看做是一个具体的项目或者目录,例如对于仓库地址 dl.dockerpool.com/ubuntu来说, dl.dockerpool.com是注册服务器地址, ubuntu是仓库名。

Docker Hub

目前Docker官方维护了一个公共仓库https://hub.docker.com,其中包含了15000多个镜像,大部分需求可以通过在Docker Hub中直接下载来完成。

登录

可以通过docker login来输入用户名,密码和邮箱来完成注册登录,。

基本操作

用户无需登录,只需要docker search来查找guan官方仓库中的镜像,并利用docker pull命令将其下载到本地。

下载镜像

下载镜像也是docker pull,但是要在镜像名称之前添加注册服务器的具体地址dl.dockerpool.com:5000
例如,我们需要下载ubuntu仓库的12.04镜像,可以使用:

$ sudo docker pull dl.dockerpool.com:5000/ubuntu:12.04
$ sudo docker images
dl.dockerpool.com:5000/ubuntu    ae78174402kdf3     1min ago    116.2MB

创建和使用私有仓库

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

$ sudo docker run  -d  -p  5000:5000 registry

默认的情况下,会将仓库(repository)创建在/tmp/registry目录下。也可以通过添加-v参数将镜像存储在指定的存储路径上。
例如,下面的例子可以将镜像放在/opt/data/registry目录。

$ sudo docker run  -d  -p  5000:5000  /opt/data/registry:/tmp/registry  registry

管理私有仓库

使用docker tag命令对镜像进行标记,格式为docker tag IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]:

$ sudo tag ubuntu:14.04   10.0.2.2:5000/test
$ sudo docker images
REPOSITORY     TAG      IMAGE ID          CREATED      VIRTUAL SIZE
ubuntu         14.04    ba5887dcewp75      6 days ago   199.3MB
10.0.2.2:5000/test      latest      ba5887dcwp75      6 days ago     199.3MB

然后可以使用docker push上传镜像

$ sudo docker push 10.0.2.2:5000/test
The push refers to  a repository [10.0.2.2:5000/test]   (len: 1)
Sending image list
Pushing  repository   10.0.2.2:5000/test  (1 tags)
Image 93r033dcea9aa already pushed, skipping
...
Image ba5887dcwp75 already pushed, skipping
Pushing tag for rev [ba5887dcwp75] on  {https://10.0.2.2:5000/v1/repositories/test/tag/latest}

用命令curl查看仓库10.0.2.2:5000中的镜像:

$ curl http://10.0.2.2:5000/v1/search
{"num_results":1,"query":"","results":[{"description":"","name":"library/test"}]}

在结果中看到{"description":"","name":"library/test"},表明镜像上传成功了。 这个时候,可以到任意一台能够访问10.0.2.2的机器上去下载该镜像了。

$sudo docker pull 10.0.2.2:5000/test  

下载之后还可以添加一个通用的标签ubuntu:14.04

$ sudo docker tag 10.0.2.2:5000/test ubuntu:14.04

猜你喜欢

转载自blog.csdn.net/weixin_34050519/article/details/90987197