简介

非常类似Git和Github的关系,Docker和Docker Hub也是如此,Docker Hub是Docker官方维护的一个公共仓库,用户可以在这里注册账号,推送自己的本地镜像到远程仓库。目前,绝大多数需求所需要的镜像都可以在Docker Hub上找到。

Docker Hub注册

点击官网链接进行注册即可,具体填写见下图,点击Sign up注册后会要求填写个人信息,随后到邮箱确认注册邮件即可正常登录Docker Hub。注意,记住自己的用户名ID和密码,在Docker本地机器上需要使用进行登录。

docker 登陆到容器中 docker登录仓库_推送

此前的博客提到了使用docker search命令在官方镜像库中查找公开镜像,使用docker pull命令来将远程公开镜像拉取到本地,这两个操作是不需要登录Docker hub账户的。

docker 登陆到容器中 docker登录仓库_docker_02

镜像推送

下面以hello-world镜像修改后为例,演示如何推送和拉取自己的镜像。

首先,通过tag命令创建一个以hello-world为蓝本的镜像,也可以是任意来源的镜像,(如DockerFile构建的或者Docker hub拉取修改后的),这里只是提供一个演示的个人镜像而已。

docker 登陆到容器中 docker登录仓库_Docker_03

确保自己已经按照上一节的内容登录了Docker hub账号之后,通过命令docker push username/appname:tag推送自己的镜像到个人远程仓库。这里的镜像名必须规范为username/appname:tag且username必须是当前登录的用户,否则均会推送失败。

推送后命令结果如下图,表示推送成功(格式规范基本上网络没问题就能成功)。

docker 登陆到容器中 docker登录仓库_Docker Hub_04

此时,登录Docker Hub账号后,查看自己的个人仓库,可以看到该推送内容,具体如下图。推送到自己账户的镜像都是默认公开的,别人可以在Docker hub上访问到,docker search命令只会在Docker官方仓库下搜索镜像,不能找到个人公开的。

docker 登陆到容器中 docker登录仓库_推送_05

此时,删除本地的该镜像,重新从Docker Hub上拉取到本地。这里要注意,拉取自己的镜像使用标准镜像名,如果该镜像公开(默认push就是公开),无需登录即可pull成功。具体演示见下图。

docker 登陆到容器中 docker登录仓库_Docker_06

最后,补充一点,个人镜像是可以私有的,需要在如下图的仓库设置中修改,不过有使用限制,更多仓库的私有需要购买,公开仓库不受限制。

docker 登陆到容器中 docker登录仓库_Docker Hub_07

补充说明

本文主要介绍了Docker Hub这一远程镜像仓库的使用方法,主要是推送和拉取操作。文章中如有疏漏,欢迎评论指正。