docker私人registry和本地图像registry之间的区别?

我脑海里有什么东西在搅乱我。 在运行docker images我看到了我在docker环境中的本地镜像列表。 拉图片时,我从registry中拉出它,更具体地拉动由存储库pipe理的指定标签。

  • 所以有registry作为存储所有图像存储库的大中心
  • 并且存储库正在存储特定图像的提交/标记版本

但是什么是docker images呢? 这是一个registry ,不是吗? 它包含我在本地创build或拉出的所有图像。

如果我的要求是有效的:

它如何符合运行私人registry(这里提到https://docs.docker.com/registry/deploying/ )

运行这个docker run -d -p 5000:5000 --restart=always --name registry registry:2将这个新registry部署到我的docker images

所以,现在我在我的registry中注册了一个registry。 自定义registry除了可部署以外还有什么区别?

其他问题指出,它不是一个本地图像registry。 这是一个图像caching 。 图像caching的目的是避免每次执行docker运行时都下载相同的图像。

docker images只是列出了机器上的所有caching图像。 每当有新的图像在registry中,图像(一些图层)下载和caching时,执行docker pull ... 另外,当本地caching中存在一个图层时,docker告诉你,例如:

 Step 2/2 : CMD /bin/bash ---> Using cache 

另一方面,dockerregistry是存储图像的中央资源库。 它提供了一个远程API来拉和推图像。 本地图像caching不具有此function。 本地caching中的图像被读取和存储使用本地泊坞窗命令,只读取/ var / lib / docker /下的文件…

您提到的本地映像registry是您在本地构build的或从公共或私有的registry中获取的所有映像,您可以将其看作本地caching的映像,无需每次下载或重新构build即可使用。

运行registry实际上是做一个实现Docker Registry API的服务器,允许用户推,拉,删除和处理这个图像及其图层的存储。 像npm,nexus这样的中央资料库

例如,如果您在your.registry.com:5000中运行registry

你可以做类似的事情

 docker build -t your.registry.com:5000/my-image:tag . docker push your.registry.com:5000/my-image:tag 

所以有权访问你的服务器的其他人可以把它拉出来

 docker pull your.registry.com:5000/my-image:tag 

为了清楚起见,将Docker远程registry(如Docker Hub)视为远程Git存储库。 你拉你需要的Docker镜像(比如git仓库),然后用它来玩。

像远程Git仓库(如GitHub \ BitBucket)一样,Docker注册pipe理机构也是公共和私有的。 公共注册是为公共使用和开源项目。 例子包括像Docker Hub。 私人注册是为了组织使用还是为您自己。 私人注册的例子包括Azure Container Registry,EC2 Container Registry等。

官方Docker Registry镜像只是您自己系统Dockerregistry镜像 除非您有服务器或公共Internet IP地址,否则不能与其他人共享。 把它看作是用于Windows的Bonobo Private Git Server。