学科分类
目录
Docker

Docker Hub远程镜像管理

Docker Hub是一个基于云计算的注册服务,它允许连接到开发者的代码库、管理镜像和创建测试组,并且支持连接到Docker Cloud云服务平台进行主机镜像部署。可以说他为开发过程中的镜像、容器管理、用户和团队协作以及工作流自动化提供了集中式资源管理。

1.登录Docker Hub

要使用Docker Hub就需要先在其官网https://hub.docker.com/注册一个账号(需要用户名、邮箱和密码),通过邮件认证后,即可登录到Docker Hub中心,如图1所示主界面。

图1 Docker Hub主界面

从图1可以看出,Docker Hub提供了创建镜像仓库、创建组织等多种功能,例如通过Create Repository(创建仓库)链接可以创建Docker Hub上的远程仓库;通过Create Organization(创建组织)链接可以创建用于镜像开发的团队;通过Explore Repositories(搜索仓库)可以搜索Docker提供的官方仓库和其他开发者提供的公开仓库。

需要注意的是,Docker Hub的仓库分为Public(公开)和Private(私有)两种,公开仓库可以被其他开发者查看和拉取资源;而私有仓库不对外公开,只对内部创建组织的成员公开。Docker Hub为免费用户只提供了一个私有仓库,如果需要使用更多的私有仓库,则可以单击上图中的“Get more”链接通过付费的方式进行获取。

Docker Hub功能强大,并非只提供了上述3种简单的功能,还有其他一些功能,具体如下。

● 镜像管理:可以从社区或官方搜索、拉取、管理、推送镜像等。

● 自动构建镜像:Docker Hub支持连接到源代码仓库,如GitHub和Bitbucket,当源代码进行修改后可以进行自动化构建镜像。

● Webhooks(监测工具):属于自动构建的一个特性,Webhooks能够让开发者成功推送仓库后触发一些行为。

● Organizations(组织):可以创建工作组,来协同开发、管理一个镜像仓库。

● GitHub和Bitbucket集成:支持集成代码仓库GitHub和Bitbucket到工作流中。

2.修改镜像名称

当有了Docker Hub账号后,就可以将本地创建的镜像推送到远程Docker Hub仓库进行保存了。这里先使用docker images命令查看下本地镜像,显示结果如图2所示。

图2 镜像列表

从图2可以看出,本地有6个镜像,分别为REPOSITORY、hellodocker、ubuntu、ubuntu、python、hello-world。如果我们要将名为hellodocker的镜像推送到远程仓库,该镜像名就必须符合DockerID/repository的形式规范,其中DockerID为Docker Hub上的账号名,repository为镜像名。由于现在hellodocker镜像不符合远程仓库的名称规范,因此需要按照要求修改镜像名称,具体操作指令如下(这里假设刚才创建的Docker Hub账号名为itheima)。

$ docker tag hellodocker:latest itheima/hellodocker:latest

​ 使用上述指令后,会在本地复制一份名称为itheima/hellodocker的镜像,而原名称hellodocker的镜像不变,再用docker images指令查看,显示结果如图3所示。

图3 列出本地镜像

3.登录认证

想要通过客户端推送镜像到远程仓库必须先登录认证,具体操作指令如下。

$ docker login

​ 执行上述指令后,会要求输入Username和Password进行认证登录,认证成功后就会返回有Login Succeeded的消息,具体效果如图4所示。

图4 终端登录Docker Hub

4.推送镜像

我们可以在客户端使用Docker push指令向远程仓库推送镜像,具体使用方式如下。

$ docker push itheima/hellodocker:latest

完成后就可以在Docker Hub上进行查看了,具体如图5所示。

图5 镜像推送结果图

从图5可以看出,名称为itheima/hellodocker的镜像已经推送成功。

Docker Hub会定时对上传的公开镜像仓库进行索引,而itheima/hellodocker镜像仓库就是公开的,所以在一定时间后,任何人员都可以搜索到该公开镜像仓库。

小提示:

如果想要将推送的镜像仓库设置为私有的,有两种方式:第一种方式就是推送完成后立即进入Docker Hub仓库面板,进入对应仓库详情中的Settings菜单/功能下,单击“Make Private”按钮设置为私有仓库;另一种方式就是在推送镜像之前,先在Docker Hub上通过Create Repository(创建仓库)链接创建一个私有仓库,然后再以该私有仓库为名重命名一个本地镜像,推送到该指定私有仓库上。

点击此处
隐藏目录