美文网首页
Docker 仓库

Docker 仓库

作者: _于曼丽_ | 来源:发表于2020-01-25 17:00 被阅读0次

    介绍

    Docker 仓库中存储着各种 Docker 镜像,我们可以从仓库中下载镜像到本地,也可以从本地上传镜像到仓库。常见仓库:

    下载镜像:

    1. 登录仓库
    2. 搜索镜像
    3. docker pull 下载镜像

    上传镜像:

    1. 登录仓库
    2. 创建 Docker Repository
    3. docker login 登录 Docker Registry
    4. docker tag 重命名本地镜像
    5. docker push 上传镜像

    Docker Hub

    创建仓库

    登录 Docker Hub,点击 Create a Repository 按钮创建仓库。

    你的 Docker Hub 账号名称会作为你创建的仓库的命名空间,在同一个命名空间下,仓库不能重名。

    如下图所示,我有三个仓库,三个仓库都处于 yumanli 命名空间下。

    上传镜像

    登录 Docker Hub Registry,用于登录的用户名为 Docker Hub 账号全名,密码为 Docker Hub 账号密码。

    docker login
    

    在将本地镜像上传到 Docker Hub 之前,你必须首先使用你的 Docker Hub 账号名称和你在 Docker Hub 上创建的仓库名称为本地镜像命名。Docker Hub 账号、仓库和镜像之间的关系如下:

    • 账号名称:yumanli
    • 仓库名称:yumanli/nodejs
    • 镜像名称:yumanli/nodejs:latest

    你可以使用以下方法来为本地镜像命名:

    • 当你创建本地镜像的时候,使用 docker build -t <hub-user>/<repo-name>[:<tag>] PATH

      $ vi Dockerfile
      
      FROM centos
      RUN yum -y install nodejs
      
      $ docker build -t yumanli/nodejs:latest .
      $ docker push yumanli/nodejs:latest
      
    • 修改已经存在的本地镜像名称,使用 docker tag <existing-image> <hub-user>/<repo-name>[:<tag>]

      $ docker pull nodejs
      $ docker tag nodejs yumanli/nodejs:latest
      $ docker push yumanli/nodejs:latest
      

    你可以上传多个镜像到同一个仓库,通过在镜像名后面添加 :tag 来区分镜像,如果没有指定 tag,则 tag 默认为 latest。

    • 账号名称:yumanli
    • 仓库名称:yumanli/test
    • 镜像名称:yumanli/test:hello-world yumanli/test:good-morning
    $ docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    yumanli/test        hello-world         fce289e99eb9        13 months ago       1.84kB
    yumanli/test        good-morning        fce289e99eb9        13 months ago       1.84kB
    $ docker push yumanli/test:hello-world
    $ docker push yumanli/test:good-morning
    

    下载镜像

    你可以通过 docker search 命令搜索 Docker Hub 上的镜像。

    $ docker search centos
    NAME                                 DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
    centos                               The official build of CentOS.                   1034      [OK]
    ansible/centos7-ansible              Ansible on Centos7                              43                   [OK]
    tutum/centos                         Centos image with SSH access. For the root...   13                   [OK]
    ...
    

    你可以搜到 centosansible/centos7-ansible 两个结果。第一个结果 centos 没有前缀,表明该镜像来自 Docker 的官方仓库。他是第二个结果 ansible/centos7-ansible 有前缀,表明该镜像来自 ansible 用户的 centos7-ansible 仓库。

    当你找到了你想要的镜像后,便可以使用 docker pull 命令下载镜像。

    $ docker pull centos
    latest: Pulling from centos
    6941bfcbbfca: Pull complete
    41459f052977: Pull complete
    fd44297e2ddb: Already exists
    centos:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.
    Digest: sha256:d601d3b928eb2954653c59e65862aabb31edefa868bd5148a41fa45004c12288
    Status: Downloaded newer image for centos:latest
    

    阿里云容器镜像服务

    创建仓库

    登录 阿里云容器镜像服务

    创建命名空间

    创建镜像仓库

    选择代码源为本地仓库

    上传镜像

    登录阿里云 Docker Registry,用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。可以在访问凭证页面修改凭证密码。

    docker login --username=阿里云账号 registry.cn-beijing.aliyuncs.com
    

    在将本地镜像上传到阿里云之前,你必须使用 docker tag 命令重命名镜像,新的镜像名称需要包括专有网络地址、命名空间和仓库名称。

    docker tag [ImageId] registry.cn-beijing.aliyuncs.com/yumanli/test:[镜像版本号]
    

    上传镜像

    docker push registry.cn-beijing.aliyuncs.com/yumanli/test:[镜像版本号]
    

    相关文章

      网友评论

          本文标题:Docker 仓库

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