我脑子里有件事困扰着我。在运行docker images时,我会看到我的本地图像列表,我在对接环境中拥有这些图像。在提取图像时,我从注册表中提取它,更具体地,提取由存储库管理的指定标记。
那么,docker images是什么呢?它也是一个注册表,不是吗?它保存了所有的图像,我已经建立了当地或拉。
如果我的要求有效::
它如何符合运行私有注册表(在这里提到的https://docs.docker.com/registry/deploying/)
运行这个docker run -d -p 5000:5000 --restart=always --name registry registry:2会将这个新的注册表部署到我的docker images中.
所以现在我在我的注册表里有一个注册表..。注册?除了自定义注册表是可部署的之外,还有什么不同?
发布于 2017-09-07 17:46:01
它并不像其他问题所指出的那样是本地图像注册中心。它是一个图像缓存。图像缓存的目的是避免每次执行停靠程序运行时都要下载相同的映像。
docker images简单地列出了机器上所有缓存的映像。每当注册表上有较新的图像时,在执行docker pull ...时将下载和缓存映像(某些层)。此外,当本地缓存中存在一个层时,停靠程序会告诉您,例如:
Step 2/2 : CMD /bin/bash
---> Using cache另一方面,码头注册中心是存储图像的中央存储库。它提供了一个远程api来提取和推送图像。本地图像缓存没有此功能。本地缓存中的图像被读取并存储在/var/lib/ docker /.
发布于 2017-09-07 14:06:15
为了清楚起见,可以将Docker远程注册中心(如Docker集线器)看作远程Git存储库。您可以提取您需要的Docker映像(比如git存储库),然后使用它。
与远程Git存储库(如GitHub\BitBucket )一样,Docker注册中心也是公共和私有的。公共注册中心供公众使用和开放源码项目使用。例子包括在类似码头集线器。作为私有注册中心供组织使用或供您自己使用。私有注册中心的示例包括Azure容器注册表、EC2容器注册表等。
正式的Docker映像只是您自己的系统的Docker注册表映像,除非您有服务器或公共Internet IP地址,否则您不能与其他人共享它们。把它想象成。
发布于 2017-09-07 17:33:04
正如您所提到的,本地图像注册表是您在本地构建的所有映像,或者是从注册表公共或私有目录中提取的图像,您可以看到它就像一个本地图像缓存,无需每次下载或重建即可重新使用这些图像。
运行注册表,实际上所做的就是旋转一个实现码头注册处API的服务器,该服务器允许用户推送、拉、删除和处理这些图像及其层的存储。把它看作是一个中央存储库,比如npm,nexus
例如,如果您在your.registry.com:5000中运行注册表
你可以这样做
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:taghttps://stackoverflow.com/questions/46097427
复制相似问题