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。