5.3. Red Hat Quay 软件仓库概述
存储库为存储一组相关容器镜像提供了一个中央位置。这些镜像可用于以标准化格式构建应用程序及其依赖项。
存储库按命名空间进行组织。每个命名空间可以有多个存储库。例如,您可能具有个人项目的命名空间、一个用于公司的命名空间,或者对于您机构中的特定团队有一个命名空间。
通过付费计划,Quay.io 为用户提供其存储库的访问控制。用户可以将存储库变为公共存储库,即任何人都可以从存储库拉取或下载、镜像,或者用户可以使其私有,限制对授权用户或团队的访问权限。
Quay.io 的空闲层不允许私有存储库。您必须升级到 Quay.io 的已支付层,以创建私有存储库。如需更多信息,请参阅"有关 Quay.io 定价的信息"。
在 Quay.io 中创建存储库的方法有两种:使用相关 podman
命令推送镜像,或使用 Quay.io UI。您还可以使用 UI 删除存储库。
如果您在 UI 上不先通过命令行界面(CLI)推送镜像,则不会将创建的存储库设置为 Private,无论您拥有的计划是什么。
建议您在推送镜像前在 Quay.io UI 上创建存储库。Quay.io 检查计划状态,如果计划未激活,则不允许创建私有存储库。
5.3.1. 使用 UI 创建存储库
使用以下步骤使用 Quay.io UI 创建存储库。
流程
使用以下步骤使用 v2 UI 创建存储库。
流程
- 单击导航窗格上的 Repositories。
- 单击 Create Repository。
选择一个命名空间,如 quayadmin,然后输入 Repository name,如
testrepo
。重要不要在存储库名称中使用以下词语:*
build
*trigger
*tag
当这些词语用于存储库名称时,用户无法访问存储库,且无法永久删除存储库。尝试删除这些仓库会返回以下错误:
Failed to delete repository <repository_name>, HTTP404 - Not Found。
点 Create。
现在,您的 example 存储库应该在 Repositories 页面中填充。
-
可选。点 Settings
Repository visibility Make private 将存储库设置为私有。
5.3.2. 使用 Podman 创建软件仓库
使用正确的凭证,您可以使用 Quay.io 实例中尚不存在的 Podman 将镜像推送到 存储库。推送镜像指的是将容器镜像从本地系统或开发环境上传到容器 registry (如 Quay.io)的过程。将镜像推送到 registry 后,会创建一个存储库。
如果您在 UI 上不先通过命令行界面(CLI)推送镜像,则不会将创建的存储库设置为 Private,无论您拥有的计划是什么。
建议您在推送镜像前在 Quay.io UI 上创建存储库。Quay.io 检查计划状态,如果计划未激活,则不允许创建私有存储库。
使用以下步骤通过推送镜像来创建镜像存储库。
先决条件
-
您已下载并安装
podman
CLI。 - 已登录到 registry。
- 您已拉取了镜像,如 busybox。
流程
从示例 registry 中拉取示例页面。例如:
$ podman pull busybox
输出示例
Trying to pull docker.io/library/busybox... Getting image source signatures Copying blob 4c892f00285e done Copying config 22667f5368 done Writing manifest to image destination Storing signatures 22667f53682a2920948d19c7133ab1c9c3f745805c14125859d20cede07f11f9
使用新存储库和镜像名称标记本地系统上的镜像。例如:
$ podman tag docker.io/library/busybox quay.io/quayadmin/busybox:test
将镜像推送到 registry。在这一步后,您可以使用浏览器在存储库中查看标记的镜像。
$ podman push --tls-verify=false quay.io/quayadmin/busybox:test
输出示例
Getting image source signatures Copying blob 6b245f040973 done Copying config 22667f5368 done Writing manifest to image destination Storing signatures