什么是一个Docker存储库?

我似乎无法find什么是一个Docker存储库的定义。 标签的一般方法似乎是用户名/图像名称。

当然,它包含Docker镜像,但是它们需要是同一个镜像的不同版本还是不同的Docker镜像?

例如,我可以将App1,App2,…保存在同一个Docker存储库中,只是使用标签来区分它们。

按照惯例,Docker镜像被命名为<owner>/<application>:<tag> 。 如果您想要将不同的应用程序保存在同一个存储库中,则没有任何技术限制(即:除非强制关系,否则不必关联不同的标记),例如,您可以使用mycompany/myuser:app1mycompany/myuser:app2 。 但是,这不是你将会发现大部分公开图像的方式,这些图像被标记为我之前指出的。

我相信答案是Docker Repository是一个标记的图像版本集合。

虽然从技术上来说,它们在语义上可能是不同的图像,但这种差异可能是由标签来表示的,因为它们都具有相同的图像名称(人类和使用图像的软件混淆), )据我所知,不符合存储库的预期用途,以及3)可能与Docker Hub托pipe的公共和私有存储库registry的商业模式相反。

我从来没有打算试图打破这种商业模式,我只是有点困惑,因为术语库通常意味着比一个概念实体更普遍的东西。 Docker提供私有托pipe自己的registry的能力,包含许多存储库。

根据Docker Doc ,

registry是一个存储库的集合,一个存储库是一个图像集合 – 有点像GitHub存储库,除了代码已经build立。

用于将本地映像与registry中的存储库相关联的符号是username / repository:tag。

:标签是可选的,但build议; 这是注册pipe理机构为Docker镜像提供版本的机制。 所以,把所有这些放在一起,input你的用户名,回购和标签名称,所以你现有的图像将上传到你想要的目的地:

docker tag friendlyhello username/repository:tag

在这种情况下,我也发现使用这个词库有点混乱。 最后,存储库意味着包含图像的所有版本,当使用docker pull命令时,如果没有指定标签,则标签最新用于指定将被拉取的图像。