Docker实践(15) – 通过Docker Hub分享镜像

如果你与其他人共享你的镜像,使用描述性名称tag镜像会更有帮助。为了满足这个需求,Docker能够轻松地将镜像移动到其它地方,Docker Inc则创建了免费的Docker Hub服务来鼓励这种共享。

为了使用Docker Hub服务,你需要注册一个Docker Hub帐号来使用docker login登录。注册地址为http://hub.docker.com。

问题

你想公开分享一个Docker镜像。

解决方法

使用Docker Hub registry分享你的镜像。

讨论

下面有几个术语需要理解,以免造成混乱。

  • Username – Docker registry用户名
  • Registry – registries保存镜像。你可以上传镜像到registry和从它下载镜像。Registries可以是公开或私有的。
  • Registry host – 运行Docker registry的主机
  • Docker Hub – 默认公开的registry,位于https://hub.docker.com
  • Index – 与registry host一样。待废弃的术语。
  • 正如你以前看到的,你可以根据需要对镜像进行多次tag。这对复制镜像是有用的,这样你可以管理它。
    我们假设你Docker Hub的用户名为”adev”。下面的三个命令展示如何复制来自Docker Hub的debian:wheezy镜像到你自己用户下。

    1. docker pull debian:wheezy
    2. docker tag debian:wheezy adev/debian:mywheezy1
    3. docker push adev/debian:mywheezy1

    你现在有一个Debian wheezy镜像的引用,你可以自己维护它了。
    如果你有一个私有的repository需要推送,除了在tag之前需要指定registry的地方外,其它步骤一样。我们假设你repository的地址为http://mycorp.private.dockerregistry。下面的示例tag和推送镜像。

    1. docker pull debian
    2. docker tag debian:wheezy mycorp.private.dockerregistry/adev/debian:mywheezy1
    3. docker push mycorp.private.dockerregistry/adev/debian:mywheezy1

    以上的命令不会把镜像推送到公共的Docker Hub,会推送到你的私有repository,所以有这个repository的访问权限的用户能拉取这个镜像。

    标签:Docker 发布于:2019-11-20 20:32:37