Docker注册表和存储库之间的区别
我对docker注册表和存储库之间的区别感到困惑。Docker文档似乎可以互换使用这两个词。此外,存储库有时被称为图像,例如来自其文档的图像: 为了将存储库推送到其注册表,您需要指定 正如我们在这里看到的,一个映像或将您的容器提交到一个命名映像 现在,您可以将此存储库推送到由其 名字或标签Docker注册表和存储库之间的区别,docker,Docker,我对docker注册表和存储库之间的区别感到困惑。Docker文档似乎可以互换使用这两个词。此外,存储库有时被称为图像,例如来自其文档的图像: 为了将存储库推送到其注册表,您需要指定 正如我们在这里看到的,一个映像或将您的容器提交到一个命名映像 现在,您可以将此存储库推送到由其 名字或标签 如何将存储库推送到注册表?您不是正在将映像推送到存储库吗 Docker registry是一项存储Docker图像的服务。 Docker注册表可以由第三方托管,如公共或私有注册表,如以下注册表之一: , ,
如何将存储库推送到注册表?您不是正在将映像推送到存储库吗 Docker registry是一项存储Docker图像的服务。 Docker注册表可以由第三方托管,如公共或私有注册表,如以下注册表之一:
- ,
- ,
- ,
(有关更多详细信息,请参阅) Docker repository是具有相同名称、具有不同标记的不同Docker图像的集合。标记是存储库中图像的字母数字标识符 例如,请参见。官方python映像有许多不同的标记,这些标记都是Docker Hub上官方python存储库的成员。Docker Hub是Docker托管的Docker注册表 要了解更多信息,请阅读:
因此,命令
docker pull amouat/revealjs:latest
将从docker Hub注册表下载amouat/revealjs
存储库中标记为latest的图像。补充信息:
- 通常将存储库推送到注册表(以及其中的所有映像)。但您可以将单个图像推送到注册表。在所有情况下,都使用
docker push
- 图像具有12个十六进制数字的图像ID,但也通过以下方式标识:
namespace/repo name:tag
- 映像全名可以选择以注册表主机名和端口作为前缀:
myregistryhost:5000/namespace/repo name:tag
- 一个常见的命名约定是使用您的注册表用户名作为我所称的“名称空间”李>
- docker存储库是
和注册表
的巧妙组合图像
docker tag foo <registry>/<image>:<tag>
与docker tag foo/:
docker tag foo <repository>:<tag>
Docker Registry是一项服务,您可以自己托管(受信任和私有),也可以让Docker hub作为此服务的主机。通常,如果您的软件是商业性的,那么您将作为“私有且受信任”的注册表来托管它。对于Java开发人员来说,这有点类似于Maven Artifactory设置 Docker Repository是一组“标记”图像。例如,您可能已经标记了5张docker标签foo:
图像: a) Nano编辑器(image1_标签:v1) b) 特定软件1(图像1_标签:v2) c) Sudo(图像1_标签:v3) d) apache http守护程序(image1_标记:v4) e) tomcat(图像1_标签:v5) 您可以使用ubuntu:latest
命令将上述每个图像推送到存储库中。只要存储库名称匹配,它们就会被成功推送,并显示在您选择的存储库下并正确标记 现在,您的问题是,“那么这个存储库托管在哪里/谁在管理服务”?这就是Docker注册表出现的地方。默认情况下,您将获得一个docker hub注册表(开源),您可以使用它来保存您的私有/公共存储库。因此,无需任何修改,您的图像将被推送到docker hub中的私有存储库中。按下图像标记时的输出示例如下:docker push
docker@my-docker-vm:/$ docker push mydockerhub/my-helloworld-repo:my_tag The push refers to repository [docker.io/mydockerhub/my-helloworld-repo] bf41e934d39d: Pushed 70d93396f87f: Pushed 6ec525dfd060: Pushed 705419d10b13: Pushed a4aaef726d02: Pushed 04964fddc946: Pushed latest: digest: sha256:eb93c92351bce785aa3ec0de489cfeeaafd55b7d90adf95ecea02629b376e577 size: 1571 docker@my-docker-vm:/$
如果您立即键入docker images--digests--a,您可以确认推送的图像标签现在显示了docker hub registry管理的私有存储库的新签名。docker hub和其他第三方存储库托管服务称为“注册表”。注册表存储存储库的集合
因为一个注册表可以有多个存储库,并且一个存储库可以有同一映像的多个不同版本,每个版本都有标记。Docker映像注册表是存储所有Docker映像的地方。图像注册表允许您根据需要推拉容器图像 注册表可以是私有的,也可以是公共的。当注册是公共的时,图像将与全世界共享,而在私有注册中,图像仅在企业或团队成员之间共享
注册表使Docker守护进程能够轻松地提取和运行Docker映像。Artifactory是添加到列表中的一个;)我们使用它,这是Artifactory的链接-docker中的存储库和图像之间的区别是什么?存储库可以存储多个不同的图像,并用标记进行标记。为什么一个图像有多个标记是有意义的?docker图像与docker存储库的区别是什么?对于图像与存储库:如果您知道
,然后-Docker注册表(默认值为git
)=>GitHub(hub.Docker.com
);-Docker Repository=>Git Repository;-Docker Tag=>Git Ref(分支/标记)以更好地将Docker映射到Git:•Docker Registry=Git Server•Docker RepGitHub.com