什么是Docker存储库?

时间:2014-12-28 14:00:05

标签: docker dockerhub

我似乎无法找到究竟什么是Docker存储库的定义。标签的一般方法似乎是username / imagename。

当然,它包含Docker图像但是它们是否需要是同一图像的不同版本,还是它们可以是不同的Docker图像?

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

3 个答案:

答案 0 :(得分:2)

按照惯例,Docker镜像被命名为<owner>/<application>:<tag>。如果你想在不同的应用程序库下保存不同的应用程序,则没有任何技术限制(例如:除非你强制关系,否则不必关联不同的标签),例如,你可以拥有{{1 }和mycompany/myuser:app1。但这并不是你发现大多数公共图像的方式,这些图像都是我之前指出的标记。

答案 1 :(得分:2)

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

虽然技术上看起来它们在语义上可能是不同的图像,但差异可能由标签表示,这将是1)令人困惑,因为它们都具有相同的图像名称(对于使用图像的人和软件而言令人困惑)据我所知,2)不符合存储库的预期用途,3)可能与Docker Hub托管的公共和私有存储库的业务模型相对立。

我从来没有打算尝试打破这种商业模式,我只是有点困惑,因为术语库通常意味着比一个概念实体更通用的东西。 Docker提供了私有托管自己的注册表的功能,这些注册表包含许多存储库。

答案 2 :(得分:1)

根据Docker Doc

  

注册表是存储库的集合,存储库是图像的集合 - 有点像GitHub存储库,但代码已经构建。

     

将本地映像与注册表上的存储库相关联的表示法是   用户名/库:标签。

     

:标签是可选的,但建议使用;这是注册管理机构用来为Docker镜像提供版本的机制。因此,将所有这些放在一起,输入您的用户名,以及回购和标记名称,以便将现有图像上传到您想要的目的地:

     

<script> function calendarInit(){ formatGoogleCalendar.init({ calendarUrl: 'https://www.googleapis.com/calendar/v3/calendars/magic.kfs@gmx.de/events?key=AIzaSyDei0zrhHPHAtYc5x7vjdUmGaC3FlFnm1Y ', past: true, upcoming: true, sameDayTimes: true, pastTopN: 20, upcomingTopN: 4, recurringEvents: true, itemsTagName: 'ul', upcomingSelector: '#events-upcoming', pastSelector: '#events-past', upcomingHeading: '<div id="Termine" >Kommende Termine</div> ', pastHeading: '<p><h2 class="medium left">Vergangene Termine</h2></p>', format: ['*date*', ': ', '*summary*', ' &mdash; ', '*description*', ' in ', '*location*'] }); } var cal = setInterval(calendarInit(), 10*60*1000);

我还发现在该上下文中使用 repository 这个词有点令人困惑。最后,存储库旨在包含图像的所有版本,标记 latest 用于指定在使用 docker时未指定标记的情况下将被拉取的图像拉命令。