美文网首页Docker 学习
Docker学习 - 4.仓库

Docker学习 - 4.仓库

作者: 消失黎明 | 来源:发表于2019-06-02 14:34 被阅读0次

    仓库(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
    

    相关文章

      网友评论

        本文标题:Docker学习 - 4.仓库

        本文链接:https://www.haomeiwen.com/subject/ouztxctx.html