ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Docker 容器注册表如何工作?

2021-11-30 18:01:15  阅读:116  来源: 互联网

标签:容器 Hub 标签 注册表 Docker docker


Docker 容器注册表(如 Docker Hub)是用于托管和共享 Docker 容器的平台。虽然默认的 Docker Hub 专注于公共容器,但大多数云提供商(如 AWS 和 GCP)将运行自己的私有容器注册表。

什么是 Docker 注册表?

容器注册表是命名 Docker 映像的在线存储和分发系统。它与 NPM 之类的包管理器非常相似,因为它也可以存储不同版本的图像。任何拥有注册帐户的人都可以通过运行docker push 一个username/imagename 参数来登录和上传构建的图像:

docker push anthonyheddings/testcontainer

然后,如果您想在其他地方使用该容器,您可以以相同的方式下载它:

docker pull anthonyheddings/testcontainer

除非您正在构建镜像FROM scratch,否则您可能正在从 Docker Hub 中提取。Docker Hub 是默认的 Docker 注册表。

当您为应用程序编写 Dockerfile 时,您可以使用以下FROM 命令从 Docker Hub 扩展镜像:

从 Ubuntu

对于一些容器,比如ubuntu,它们是Docker 官方镜像,这意味着它们被广泛使用,你不需要指定上传它的用户名(如果你只是输入,这可能是多余的ubuntu/ubuntu)。

标记容器

Docker 注册表中的容器被组织成存储库。它们与 Git 存储库的概念非常相似,除了不是分支,而是使用不同的标签组织容器。

标签只是提供一种更好的方式来管理版本控制和发布的标签。您可以将它们分配给任何已完成的构建。您可以使用 Major.minor.patch 格式的标签标记图像,而不是引用构建 ID,并且能够轻松分辨出哪个图像是哪种格式,或者您的组织喜欢的任何格式。

如果不指定标签,Docker 将自动应用“latest”标签。每当您从集线器拉取映像时,latest 除非您指定版本号,否则您很可能会拉取。

您可以使用docker tag 手动标记的图像,但它更容易使用-t 与docker build。

 docker build -t 用户名/图像:标签。

当您将映像推送到 Docker Hub 或任何其他注册表时,您将能够根据它们的标签下拉不同的版本。

Docker Hub 的替代品

Docker Hub 是默认设置,因此如果您不指定其他设置,则所有与注册表一起使用的 Docker 命令都将附加 hub.docker.com 作为默认设置。

但是,许多云提供商将提供自己的 Docker 注册表作为服务,通常与他们提供的其他容器相关服务集成。例如,有Google Container Registry,它与 Cloud Run 及其 Kubernetes 服务配合得很好。

您可以切换到新的注册表,只需将注册表 URL 附加到所有容器引用。对于 GCR,那将是 gcr.io:

gcr.io/anthonyheddings/test

与 Docker Hub 非常相似,您需要使用docker login登录到注册表。

AWS 拥有Elastic Container Registry,可以很好地与Elastic Container Service和Elastic Kubernetes Service 配合使用。

Azure 有Azure Container Registry,可与他们的 Kubernetes 服务配合使用。

标签:容器,Hub,标签,注册表,Docker,docker
来源: https://blog.csdn.net/wlcs_6305/article/details/121638928

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有