使用公共 Registry - 每天5分钟玩转 Docker 容器技术(19)

时间:2022-03-14 18:46:23

保存和分发镜像的最直接方法就是使用 Docker Hub。

Docker Hub 是 Docker 公司维护的公共 Registry。用户可以将自己的镜像保存到 Docker Hub 免费的 repository 中。如果不希望别人访问自己的镜像,也可以购买私有 repository。

除了 Docker Hub,quay.io 是另一个公共 Registry,提供与 Docker Hub 类似的服务。

下面介绍如何用 Docker Hub 存取我们的镜像。

  1. 首先得在 Docker Hub 上注册一个账号。

  2. 在 Docker Host 上登录。
    使用公共 Registry - 每天5分钟玩转 Docker 容器技术(19)
    这里用的是我自己的账号,用户名为 cloudman6,输入密码后登录成功。

  3. 修改镜像的 repository 使之与 Docker Hub 账号匹配。
    Docker Hub 为了区分不同用户的同名镜像,镜像的 registry 中要包含用户名,完整格式为:[username]/xxx:tag
    我们通过 docker tag 命令重命名镜像。
    使用公共 Registry - 每天5分钟玩转 Docker 容器技术(19)
    注:Docker 官方自己维护的镜像没有用户名,比如 httpd。

  4. 通过 docker push 将镜像上传到 Docker Hub。 
    使用公共 Registry - 每天5分钟玩转 Docker 容器技术(19)
    Docker 会上传镜像的每一层。因为 cloudman6/httpd:v1 这个镜像实际上跟官方的 httpd 镜像一模一样,Docker Hub 上已经有了全部的镜像层,所以真正上传的数据很少。同样的,如果我们的镜像是基于 base 镜像的,也只有新增加的镜像层会被上传。如果想上传同一 repository 中所有镜像,省略 tag 部分就可以了,例如:
     docker push cloudman6/httpd

  5. 登录 https://hub.docker.com,在Public Repository 中就可以看到上传的镜像。
    使用公共 Registry - 每天5分钟玩转 Docker 容器技术(19)
    如果要删除上传的镜像,只能在 Docker Hub 界面上操作。

  6. 这个镜像可被其他 Docker host 下载使用了。

    使用公共 Registry - 每天5分钟玩转 Docker 容器技术(19)

下一节讨论如何搭建本地 Registry。

使用公共 Registry - 每天5分钟玩转 Docker 容器技术(19)