Docker Registry是一项服务,您可以托管自己(Trusted和Private),也可以让Docker Hub作为该服务的主机。通常,如果您的软件是商业软件,则将其托管为“私人和受信任”注册表。对于Java开发人员,这有点类似于Maven Artifactory设置。
Docker Repository是一组“标记”映像。例如,您可能标记了5张ubuntu:latest图像:
a)纳米编辑器(image1_tag:v1)
b)特定软件1(image1_tag:v2)
c)须藤(image1_tag:v3)
d)apache http守护程序(image1_tag:v4)
e)雄猫(image1_tag:v5)
您可以使用docker push命令将上述每个图像推送到存储库中。只要存储库名称匹配,它们就会被成功推送,并出现在您选择的存储库下并正确标记。
现在,您的问题是,“那么该存储库托管在哪里/谁在管理服务”?这就是Docker Registry出现的地方。默认情况下,您将获得一个docker hub注册表(开源),可用于保留您的私有/公共存储库。因此,无需进行任何修改,您的图像将被推送到Docker Hub中的私有存储库。推送图像标签时的输出示例如下:
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注册表管理的私有存储库显示了新的签名。