Docker中的仓库的简述及工作原理

1、Docker仓库简述

Docker仓库的概念很好理解,就像是一个装载了许多镜像的仓库。Docker仓库有由Docker官方提供的公共仓库(Dokcer Hub),也有私有仓库。需要镜像时,如果这个镜像不存在,则可以去仓库中拉取(pull)镜像,默认是去公有仓库拉取
公有和私有也很好理解,谁都可以来拿的就是公有仓库,只有得到私人允许才能拿的就是私有仓库。

2、仓库的工作原理

先来学习一下Docker仓库的工作原理,打好理论基础对于实际操作的理解会更深刻。

<1>Docker仓库使用时涉及的三个角色

Docker仓库使用时会涉及到三个角色,分别是:Registry Client(仓库客户端)、Docker Index(Index服务)与Registry(Docker仓库)
这三个角色各有各的职责,互相协助来完成Docker仓库的使用。下面我绘制了一张图来简单说明三个角色各自的职责。
Docker中的仓库的简述及工作原理_第1张图片
注意:虽然Registry不提供用户认证的功能,但可以通过Index对用户身份进行验证,验证方式是Index服务的Token的方式(Token就相当于Index认证用户身份后给用户发的合法凭证,个人觉得就像是官方认证后给个人办理的身份证一样。)

<2>拉取(pull)一个镜像的过程发生了什么

当镜像不在本地时,客户端想要从仓库下载一个镜像,需要经过以下过程,分为了大致6个步骤,我在图中写出了说明。
Docker中的仓库的简述及工作原理_第2张图片

<3>推送(push)一个镜像的过程发生了什么

了解了拉取镜像,推送一定能很好的理解,因为无论是推送还是拉取,其实原理都是差不多的,只是操作内容有少许变化,下面也将推送的步骤在图中标出了:
Docker中的仓库的简述及工作原理_第3张图片

<4>删除(delete)一个镜像的过程发生了什么

删除镜像时的过程与推送镜像非常类似,下面也绘制了一张图以示说明:
Docker中的仓库的简述及工作原理_第4张图片

<5>客户端各操作总结

看过拉取、推送和删除的过程后,相信大家都发现原理十分类似。
这几种操作也可以用是否改变了仓库内容分为两种

  • 拉取(pull)没有改变仓库的内容。当仓库内容没有发生改变时,不需要有步骤7,无需同步Index和Registry中的镜像状态信息,只需要申请—>得到认证许可—>验证许可—>获得权限—>执行操作即可。
  • 推送(push)、删除(delete)改变了仓库的内容(添加或删除内容)。需要有一个步骤7,用于同步各端的镜像状态信息,需要申请—>得到认证许可—>验证许可—>获得权限—>执行操作—>同步状态即可。
    :也就是说改变了仓库内容,多了一步同步各端信息的操作。

你可能感兴趣的:(Docker,Linux,docker,linux)