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 页面中:
将仓库名称附加到您的用户名或您想要使用的组织。
重要不要在存储库名称中使用以下词语:*
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 检查计划状态,如果计划未激活,则不允许创建私有存储库。
使用以下步骤通过推送镜像来创建镜像存储库。
先决条件
-
您已下载并安装
podman
CLI。 - 您已登录到 Quay.io。
- 您已拉取了镜像,如 busybox。
流程
从示例 registry 中拉取示例页面。例如:
podman pull busybox
$ podman pull busybox
Copy 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:test
Copy 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:test
Copy 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 signatures
Copy to Clipboard Copied! Toggle word wrap Toggle overflow