docker私有镜像仓库和本地镜像镜像仓库的区别?
docker difference between private registry and the local image registry?
我心里有事困扰着我。当 运行 docker images
我看到 local 图像的列表,我在 docker 环境中。拉取图像时,我从注册表中拉取它,更具体地说,拉取由存储库管理的指定标签。
- 所以有 registry 作为存储 all 图像的大枢纽
存储库
- 并且 存储库 正在存储特定图像的 commits/tagged 个版本
但是docker images
又是什么呢?它也是一个 注册表 ,不是吗?它包含我在本地构建或拉取的所有图像。
如果我的声明有效:
它如何符合 运行 私有注册表(此处提到 https://docs.docker.com/registry/deploying/)
运行这个docker run -d -p 5000:5000 --restart=always --name registry registry:2
将这个新的 registry 部署到我的 docker images
...
所以现在我的注册表中有一个注册表...registception?
除了自定义注册表可部署之外还有什么区别?
为了清楚起见,将 Docker 远程注册表(例如 Docker Hub)视为远程 Git 存储库。你拉取 Docker 个你需要的图像(比如 git 个存储库)并使用它。
与远程 Git 存储库(例如 GitHub\BitBucket)一样,Docker 注册表也是 public 和私有的。 Public 注册表用于 public 使用和开源项目。例子包括 like Docker Hub。私人注册表供组织使用或供您自己使用。私有注册表的示例包括 Azure 容器注册表、EC2 容器注册表等。
官方 Docker 注册表映像只是 Docker 注册表映像 您自己的系统,您除非您有服务器或 public 互联网 IP 地址,否则无法与他人共享它们。将其视为 Windows 的 Bonobo 私人 Git 服务器。
您提到的本地图像注册表是您在本地构建或从注册表中提取的所有图像 public 或私有图像,您可以将其视为图像的本地缓存,无需下载即可重复使用或每次重建。
运行 注册表实际做的是启动一个服务器,该服务器实现 Docker Registry 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:tag
它不是其他问题所指出的本地图像注册表。它是一个 图像缓存 。图像缓存的目的是避免每次执行 docker 运行.
时都下载相同的图像
docker images
简单的列出了机器上所有缓存的图片。每当注册表上有更新的图像时,图像(某些层)就会在执行 docker pull ...
时下载并缓存。此外,当本地缓存中存在图层时,docker 会告诉您,例如:
Step 2/2 : CMD /bin/bash
---> Using cache
另一方面,docker 注册表是存储图像的中央存储库。它提供了一个远程 api 来拉和推图像。本地图片缓存没有这个功能。使用本地 docker 命令读取和存储本地缓存中的图像,这些命令仅读取 /var/lib/docker/...
下的文件
我心里有事困扰着我。当 运行 docker images
我看到 local 图像的列表,我在 docker 环境中。拉取图像时,我从注册表中拉取它,更具体地说,拉取由存储库管理的指定标签。
- 所以有 registry 作为存储 all 图像的大枢纽 存储库
- 并且 存储库 正在存储特定图像的 commits/tagged 个版本
但是docker images
又是什么呢?它也是一个 注册表 ,不是吗?它包含我在本地构建或拉取的所有图像。
如果我的声明有效:
它如何符合 运行 私有注册表(此处提到 https://docs.docker.com/registry/deploying/)
运行这个docker run -d -p 5000:5000 --restart=always --name registry registry:2
将这个新的 registry 部署到我的 docker images
...
所以现在我的注册表中有一个注册表...registception? 除了自定义注册表可部署之外还有什么区别?
为了清楚起见,将 Docker 远程注册表(例如 Docker Hub)视为远程 Git 存储库。你拉取 Docker 个你需要的图像(比如 git 个存储库)并使用它。
与远程 Git 存储库(例如 GitHub\BitBucket)一样,Docker 注册表也是 public 和私有的。 Public 注册表用于 public 使用和开源项目。例子包括 like Docker Hub。私人注册表供组织使用或供您自己使用。私有注册表的示例包括 Azure 容器注册表、EC2 容器注册表等。
官方 Docker 注册表映像只是 Docker 注册表映像 您自己的系统,您除非您有服务器或 public 互联网 IP 地址,否则无法与他人共享它们。将其视为 Windows 的 Bonobo 私人 Git 服务器。
您提到的本地图像注册表是您在本地构建或从注册表中提取的所有图像 public 或私有图像,您可以将其视为图像的本地缓存,无需下载即可重复使用或每次重建。
运行 注册表实际做的是启动一个服务器,该服务器实现 Docker Registry 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:tag
它不是其他问题所指出的本地图像注册表。它是一个 图像缓存 。图像缓存的目的是避免每次执行 docker 运行.
时都下载相同的图像docker images
简单的列出了机器上所有缓存的图片。每当注册表上有更新的图像时,图像(某些层)就会在执行 docker pull ...
时下载并缓存。此外,当本地缓存中存在图层时,docker 会告诉您,例如:
Step 2/2 : CMD /bin/bash
---> Using cache
另一方面,docker 注册表是存储图像的中央存储库。它提供了一个远程 api 来拉和推图像。本地图片缓存没有这个功能。使用本地 docker 命令读取和存储本地缓存中的图像,这些命令仅读取 /var/lib/docker/...
下的文件