Docker镜像管理

举报
tea_year 发表于 2021/12/22 22:58:53 2021/12/22
【摘要】 Docker引擎为使用者提供了客户端,我们通过客户端指令可以创建镜像、生成并启动容器、存储镜像、搜索镜像等,这些都属于镜像管理的内容。对于Docker镜像管理,Docker提供了一些工具,常用的有Dock...

Docker引擎为使用者提供了客户端,我们通过客户端指令可以创建镜像、生成并启动容器、存储镜像、搜索镜像等,这些都属于镜像管理的内容。对于Docker镜像管理,Docker提供了一些工具,常用的有Docker Hub和Docker Registry,接下来针对这两种常用的镜像管理工具进行简要介绍。

1.Docker Hub

Docker Hub是一个基于云的注册服务,来提供镜像的注册管理。他集成了Docker很多的优秀功能,比如可以自动化进行项目管理等。

Docker Hub包含了一系列的组件,具体如下。

● Web UI:Web用户界面

● Meta-data store:镜像数据管理

● Authentication service:认证服务

● Tokenization:标志化

由于Docker Hub镜像管理工具是开源免费的,并且可以自动化进行项目管理,所以对大多数个人和小团队公司来说是个不错的选择。只是Docker Hub的这种免费是针对用户的公开镜像而言的,也就是说这种镜像是可以被外界查看并获取的。Docker Hub为每个账号只提供一个私有镜像仓库,如果想要获取更多私有镜像仓库就必须付费购买了。

2.Docker Registry

Docker官方也提供了另一种镜像管理工具Docker Registry,他是Docker生态系统中的组件,包含了带有不同名称和参数的镜像,其实就是一个镜像内容存储和调配的系统,而用户则可以使用docker pull或者docker push指令与之交互。

与Docker Hub相比,Docker Registry是完全免费的,并且可以将所有镜像本地私有化管理。但是Docker Registry在功能上没有Docker Hub强大,并且需要自己手动配置、升级、维护和管理。

对于一些新手或者想要零维护的开发者而言,使用这种需要手动定制的镜像管理工具Docker Registry是不太推荐的;而对于一些有经验的开发者或者寻求镜像本地私有化管理的团队来说,想要免费进行Docker镜像管理,Docker Registry是一种理想的选择。
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命令查看下本地镜像
本地有6个镜像,分别为REPOSITORY、hellodocker、ubuntu、ubuntu、python、hello-world。如果我们要将名为hellodocker的镜像推送到远程仓库,该镜像名就必须符合DockerID/repository的形式规范,其中DockerID为Docker Hub上的账号名,repository为镜像名。由于现在hellodocker镜像不符合远程仓库的名称规范,因此需要按照要求修改镜像名称,具体操作指令如下(这里假设刚才创建的Docker Hub账号名为aaa)。

$ docker tag hellodocker:latest aaa/hellodocker:latest
使用上述指令后,会在本地复制一份名称为aaa/hellodocker的镜像,而原名称hellodocker的镜像不变,再用docker images指令查看.
3.登录认证

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

$ docker login

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

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

$ docker push aaa/hellodocker:latest

完成后就可以在Docker Hub上进行查看了,具体如图5所示。
Docker Hub会定时对上传的公开镜像仓库进行索引,而aaa/hellodocker镜像仓库就是公开的,所以在一定时间后,任何人员都可以搜索到该公开镜像仓库。

小提示:

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

文章来源: aaaedu.blog.csdn.net,作者:tea_year,版权归原作者所有,如需转载,请联系作者。

原文链接:aaaedu.blog.csdn.net/article/details/113895365

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。