Dockerregistry和存储库之间的区别
我很困惑dockerregistry和仓库之间的区别。 看起来Docker文档可以交换使用这两个词。 此外,存储库有时也被称为图像,例如来自他们的文档的图像:
为了将存储库推送到其registry中,您需要命名图像或将容器提交给命名图像,如我们在此处所见。
现在,您可以将此存储库推送到由其名称或标记指定的registry。
你怎么能把一个版本库推送到registry中? 你不是把图像推送到存储库吗?
Dockerregistry是一个存储你的泊坞窗图像的服务。
Dockerregistry可以由第三方托pipe,如公共或私有registry,如以下registry之一:
- Docker Hub ,
- docker ,
- Google容器registry ,
- AWS容器registry
或者你可以自己托pipedockerregistry
(有关更多详细信息,请参阅https://docs.docker.com/docker-trusted-registry/ )。
Docker存储库是具有相同名称的不同Docker镜像的集合,具有不同的标签。 标记是存储库中图像的字母数字标识符。
例如,请参阅https://hub.docker.com/r/library/python/tags/ 。 官方的Python映像有许多不同的标签,这些标签都是Docker Hub上的官方Python仓库的成员。 Docker Hub是由Docker托pipe的Docker Registry。
要了解更多信息,请阅读:
从“ 使用Docker开发和部署带有容器的软件 ”一书
注册pipe理机构,存储库,图像和标签
有一个分级系统来存储图像。 使用以下术语:
注册处
负责托pipe和分发图像的服务。 默认的registry是Docker Hub。
知识库
相关图像的集合(通常提供相同应用程序或服务的不同版本)。
标签
附加到存储库中图像的字母数字标识符(例如,14.04或稳定)。
因此,命令docker pull amouat/revealjs:latest
将从Docker Hubregistry中下载最近在amouat/revealjs
存储库中标记的图像。
补充信息:
- 您通常将存储库推送到registry(以及作为其一部分的所有图像)。 但是,您可以将单个图像推送到registry。 在所有情况下,您都使用
docker push
。 - 图像具有十二进制数字的图像ID,但也可以通过:
namespace/repo-name:tag
- 映像全名可以select以registry主机名和端口作为前缀:
myregistryhost:5000/namespace/repo-name:tag
- 一个通用的命名约定是使用你的registry用户名作为我所谓的“命名空间”。
docker库是一个可爱的registry
和image
组合。
docker tag foo <registry>/<image>:<tag>
是相同的
docker tag foo <repository>:<tag>