储存库
预计阅读时间:7分钟
Docker Hub存储库允许您与团队,客户或整个Docker社区共享容器映像。
通过该docker push
命令将Docker映像推送到Docker Hub 。单个Docker Hub存储库可以容纳许多Docker映像(存储为
tag)。
创建存储库
要创建存储库,请登录Docker Hub,单击“存储库”,然后 单击“创建存储库”:
创建新的存储库时:
- 您可以选择将其放置在Docker ID名称空间中,或者放置在您是所有者的任何 组织中。
- 存储库名称在该名称空间中必须唯一,可以是2到255个字符,并且只能包含小写字母,数字,连字符(
-
)和下划线(_
)。 - 该描述最多可以包含100个字符,并在搜索结果中使用。
- 您现在可以链接GitHub或Bitbucket帐户,或者稍后选择在存储库设置中进行链接。
按下“创建”按钮后,您可以开始使用docker push
来将图像推送到该存储库。
将Docker容器映像推送到Docker Hub
要将映像推送到Docker Hub,您必须首先使用Docker Hub用户名和通过Web上的Docker Hub创建的存储库名称来命名本地映像。
您可以通过向存储库添加特定的图像来添加多个图像:<tag>
(例如,docs/base:testing
)。如果未指定,则标记默认为latest
。
使用以下方法之一命名您的本地图像:
- 当您构建它们时,使用
docker build -t <hub-user>/<repo-name>[:<tag>]
- 通过重新标记现有的本地图像
docker tag <existing-image> <hub-user>/<repo-name>[:<tag>]
- 通过使用
docker commit <existing-container> <hub-user>/<repo-name>[:<tag>]
提交更改
现在,您可以将此存储库推送到由其名称或标记指定的注册表。
$ docker push <hub-user>/<repo-name>:<tag>
然后将图像上传并供您的队友和/或社区使用。
私人仓库
私有存储库使您可以将容器映像私有化,无论是对自己的帐户还是在组织或团队中。
要创建私有存储库,请在创建存储库时选择私有:
您还可以通过转到其“设置”标签将现有存储库设为私有:
您可以使用Docker Hub用户帐户免费获得一个私有存储库(不适用于您所属的组织)。如果您的用户帐户需要更多的私有存储库,请从“账单信息”页面升级Docker Hub计划 。
一旦私人仓库被创建,你可以push
和pull
使用泊坞窗图像,并从它。
注意:您需要登录并有权使用私有存储库。
注意:私有存储库当前无法通过顶级搜索或搜索
docker search
。
您可以从该存储库的“设置”页面指定协作者并管理他们对私有存储库的访问。如果您有可用的存储库插槽,也可以在公共库和私有库之间切换存储库的状态。否则,您可以升级 Docker Hub计划。
合作者及其角色
协作者是您要授予其对私有存储库访问权限的人。一旦指定,他们可以push
和pull
你的资料库。不允许他们执行任何管理任务,例如删除存储库或将其状态从私有更改为公开。
笔记
协作者无法添加其他协作者。只有存储库的所有者才具有管理访问权限。
您还可以通过使用组织和团队在Docker Hub上分配更细化的协作者权限(“读取”,“写入”或“管理员”)。有关更多信息,请参见组织文档。
查看存储库标签
Docker Hub的单个存储库视图向您显示可用标签和关联映像的大小。转到“存储库”视图,然后单击存储库以查看其标签。
图像大小是图像及其所有父图像占用的累积空间。这也是映像.tar
时创建的文件内容所使用的磁盘空间docker save
。
要查看单个标签,请单击“标签”选项卡。
如果超过1个月没有进行推/拉活动,则该图像被认为是过时的,即:
- 尚未拉出超过1个月
- 并没有被推超过一个月
如果清单中所有单架构图像的一部分都是陈旧的,则多架构图像被认为是陈旧的。
要删除标签,请选中相应的复选框,然后从“ 操作”下拉列表中选择“删除”。
笔记
只有对存储库具有管理访问权限的用户(拥有管理员权限的所有者或团队成员)可以删除标签。
选择标签的摘要以查看详细信息。
搜索存储库
您可以通过其搜索界面或使用命令行界面来搜索Docker Hub注册表。搜索可以按图像名称,用户名或描述找到图像:
$ docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 1034 [OK]
ansible/centos7-ansible Ansible on Centos7 43 [OK]
tutum/centos Centos image with SSH access. For the root... 13 [OK]
...
在那里,您可以看到两个示例结果:centos
和ansible/centos7-ansible
。第二个结果显示它来自名为的用户的公共存储库ansible/
,而第一个结果centos
没有显式列出存储库,这意味着它来自官方映像的顶级命名空间
。该/
字符将用户的存储库与映像名称分开。
找到所需的图像后,可以通过以下方式下载docker pull <imagename>
:
$ docker pull centos
latest: Pulling from centos
6941bfcbbfca: Pull complete
41459f052977: Pull complete
fd44297e2ddb: Already exists
centos:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.
Digest: sha256:d601d3b928eb2954653c59e65862aabb31edefa868bd5148a41fa45004c12288
Status: Downloaded newer image for centos:latest
现在,您有了一个可以运行容器的映像。
给储存库加注星标
您的存储库可以加注星标,也可以给存储库加注星标。星号是表明您喜欢存储库的一种方式。它们也是收藏您的收藏夹的简便方法。
服务帐号
服务帐户是机器人使用的Docker ID,用于自动化容器化应用程序的构建管道。服务帐户通常用于自动化工作流程中,并且不与团队计划中的成员共享Docker ID。
为您的团队帐户创建一个新的服务帐户:
- 创建一个新的Docker ID。
- 在您的组织中创建一个团队,并授予其对您的私有存储库的只读访问权限。
- 将新的Docker ID添加到您的组织中。
- 将新的Docker ID添加到您先前创建的团队中。
- 从用户帐户创建一个新的个人访问令牌(PAT),并将其用于CI。
为您的Pro帐户创建一个新的服务帐户:
- 创建一个新的Docker ID。
- 从主菜单中单击存储库。
- 从列表中选择一个存储库,然后转到“协作者”选项卡。
- 将新的Docker ID添加为协作者。
- 从用户帐户创建一个新的个人访问令牌(PAT),并将其用于CI。
如果您只想为开放源代码存储库或访问官方映像和其他公共映像使用只读PAT,则不必授予对新Docker ID的任何访问权限。
码头工人,码头工人,值得信赖的,注册,帐户,计划,Dockerfile,多克尔集线器,网络挂接,文档,文档笔记
服务帐户仍受Docker的公平拉动限制政策约束。要了解有关这些限制的更多信息,请参阅我们的资源消耗更新常见问题解答。