5.3. 创建软件仓库
存储库提供用于存储一组相关容器镜像的中央位置。这些镜像可用于以标准化的格式构建应用程序及其依赖项。
仓库按命名空间组织。每个命名空间可以有多个软件仓库。例如,您可能有一个个人项目的命名空间、一个用于公司的命名空间,或针对您所在机构的特定团队有一个命名空间。
通过付费计划,Quay.io 为用户提供其存储库的访问控制。用户可以公开存储库,这意味着任何人都可以拉取或下载,或者用户可从中拉取或下载镜像,或者用户可以对其进行私有,并限制对授权用户或团队的访问。
Quay.io 的空闲层不允许使用私有存储库。您必须升级到 Quay.io 的付费层来创建私有存储库。如需更多信息,请参阅"与 Quay.io 定价相关的信息"。
在 Quay.io 中创建存储库的方法有两种:使用相关 docker 或 podman 命令推送镜像,或者使用 Quay.io UI。
如果您在不先在 UI 上创建存储库的情况下通过命令行界面(CLI)推送镜像,则创建的存储库将设置为 Private,无论您拥有的计划是什么。
建议您在推送镜像前在 Quay.io UI 上创建存储库。Quay.io 检查计划状态,如果计划未激活,则不允许创建私有存储库。
5.3.1. 使用 UI 创建镜像存储库 复制链接链接已复制到粘贴板!
使用以下步骤使用 Quay.io UI 创建存储库。
流程
- 通过 Web UI 登录您的用户帐户。
在 Quay.io 登录页面上,单击 Create New Repository。或者,您可以点 + 图标
New Repository。例如:
在 Create New Repository 页面中:
将 Repository Name 附加到您的用户名或您要使用的机构中。
重要不要在您的仓库名称中使用以下词语:*
build*trigger*tag当这些词语用于存储库名称时,用户无法访问存储库,且无法永久删除存储库。尝试删除这些软件仓库会返回以下错误:
Failed to delete repository <repository_name>, HTTP404 - Not Found。- 可选。单击 Click to set repository description,以添加存储库的描述。
- 根据您的需要,点 Public 或 Private。
- 可选。选择所需的存储库初始化。
- 单击 Create Private Repository 以创建新的空存储库。
5.3.2. 使用 CLI 创建镜像存储库 复制链接链接已复制到粘贴板!
使用正确的凭证时,您可以使用 Quay.io 实例中尚不存在的 Docker 或 Podman 将镜像推送到 存储库。推送镜像指的是将容器镜像从本地系统或开发环境上传到容器 registry (如 Quay.io)的过程。将镜像推送到 Quay.io 后,会创建一个存储库。
如果您在不先在 UI 上创建存储库的情况下通过命令行界面(CLI)推送镜像,则创建的存储库将设置为 Private,无论您拥有的计划是什么。
建议您在推送镜像前在 Quay.io UI 上创建存储库。Quay.io 检查计划状态,如果计划未激活,则不允许创建私有存储库。
通过推送镜像来创建镜像存储库。
先决条件
-
您已下载并安装
podmanCLI。 - 您已登录到 Quay.io。
- 您已拉取了一个镜像,如 busybox。
流程
从示例 registry 中拉取示例页面。例如:
podman pull busybox
$ podman pull busyboxCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用新存储库和镜像名称标记本地系统上的镜像。例如:
podman tag docker.io/library/busybox quay.io/quayadmin/busybox:test
$ podman tag docker.io/library/busybox quay.io/quayadmin/busybox:testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将镜像推送到 registry。执行此步骤,您可以使用浏览器在存储库中查看标记的镜像。
podman push --tls-verify=false quay.io/quayadmin/busybox:test
$ podman push --tls-verify=false quay.io/quayadmin/busybox:testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Getting image source signatures Copying blob 6b245f040973 done Copying config 22667f5368 done Writing manifest to image destination Storing signatures
Getting image source signatures Copying blob 6b245f040973 done Copying config 22667f5368 done Writing manifest to image destination Storing signaturesCopy to Clipboard Copied! Toggle word wrap Toggle overflow