DigitalOcean容器注册表推出多注册表支持功能

近日,DigitalOcean 云平台宣布,容器注册表进行了一项重大升级:现在,单个团队可以创建和管理多个注册表。此功能面向专业版计划(Professional Plan)的客户,无需额外费用,每个团队最多可创建 10 个注册表,从而在 DigitalOcean 上提供了极大的镜像部署灵活性。

什么是多注册表?它为何重要?

此前,虽然一个 DigitalOcean 容器注册表(DOCR)账户可以创建多个团队,但每个团队仅限于一个容器注册表。

通过此次更新,专业版计划的客户现在可以在单个团队下创建最多 10 个注册表,每个注册表都包含其独立的一组仓库和配置。此架构专为管理不同环境(如开发、预发布、生产)或分布式团队的用户设计,允许进行分隔化的注册表管理。

多注册表的好处

  • 环境隔离:隔离不同的部署阶段(例如开发环境与生产环境)。
  • 区域性能:在特定区域(如 fra1 或 nyc3)配置注册表,使镜像与您的 Kubernetes 集群位于同一区域。这减少了拉取镜像时的延迟和数据传输成本。
  • 法规遵从性:对于有严格数据驻留要求(如 GDPR)的用户,多注册表通过确保容器工件存储在特定的地理管辖范围内来增强合规性。
  • 为 DOCR 的未来增强做好准备:这种多注册表基础为 DOCR 未来的高级功能(如注册表镜像和地理复制)铺平了道路。

如何在 DigitalOcean 上使用新的多注册表功能

1、通过控制面板

点击右上角的"创建注册表"按钮以添加更多注册表。

再创建一个注册表。

一个新的注册表已添加成功。

2、通过API

通过我们更新的 API 命名空间 v2/registries,可以简化多注册表的管理。请注意,为保持向后兼容性,旧的 v2/registry 端点仍然保留,但所有多注册表操作必须使用新的复数化端点。

创建注册表

要创建一个新注册表,发送一个指定唯一名称和目标区域的 POST 请求。

复制代码
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
  -d '{"name": "example", "subscription_tier_slug": "basic", "region": "fra1"}' \
  "https://api.digitalocean.com/v2/registries"

注意:在专业版计划下,您最多可以创建 10 个注册表。

列出所有注册表

通过检索与您账户关联的所有注册表列表来审核您的基础架构。

复制代码
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
  "https://api.digitalocean.com/v2/registries"

获取注册表信息

获取特定注册表的配置详细信息,例如其端点和创建日期。

复制代码
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
  "https://api.digitalocean.com/v2/registries/example"

获取 Docker 凭证

为特定注册表生成限定范围的凭证。这对于配置隔离的 CI/CD 流水线至关重要(例如,允许运行器仅推送到预发布注册表)。

复制代码
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
  "https://api.digitalocean.com/v2/registries/example/docker-credentials"

启动垃圾回收

垃圾回收对于管理您专业版计划的共享存储池至关重要。为特定注册表显式触发垃圾回收以清除无标签的清单。

复制代码
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
  "https://api.digitalocean.com/v2/registries/example/garbage-collection"

删除注册表

在多注册表设置中,您必须使用 v2/registries 端点来删除注册表。旧的端点无法区分要删除哪个注册表。

复制代码
curl -X DELETE \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
  "https://api.digitalocean.com/v2/registries/example"

我们的命令行工具 doctl 和 Terraform 提供商现已包含对管理 DigitalOcean 容器注册表的支持。

3、通过CLI

与 API 更新同步,我们的命令行工具 doctl 现在新增了一个复数化的子命令:registries。此子命令是管理注册表的新规范,反映了新的 API 命名空间。请注意,旧的 registry 子命令将在未来的版本中弃用。

创建注册表

要创建新注册表,使用 create 命令并指定唯一名称、目标区域和订阅层级。

复制代码
doctl \
  -t $DIGITALOCEAN_TOKEN \
  registries create cool-reg \
  --region=blr1 \
  --subscription-tier=professional

注意:选择专业版层级以创建和管理多个注册表。

列出所有注册表

通过检索与您账户关联的所有注册表列表来审核您的基础架构。

复制代码
doctl \
  -t $DIGITALOCEAN_TOKEN \
  registries list

获取注册表信息

获取特定注册表的配置详细信息,例如其端点和区域标识。

复制代码
doctl \
  -t $DIGITALOCEAN_TOKEN \
  registries get cool-reg

删除注册表

使用 delete 命令删除特定注册表。删除前会收到提示,如果您确认,请选择"yes"。

复制代码
doctl \
  -t $DIGITALOCEAN_TOKEN \
  registries delete cool-reg

有关可用命令的更多信息,请阅读 doctl registries help

重要限制与注意事项

在采用此功能时,请注意以下操作限制:

  • 10 个注册表限制:每个订阅专业版计划的团队最多可以创建 10 个注册表。
  • API命名空间 :针对多个注册表的操作必须使用 v2/registries 路径。单数的 v2/registry 路径将默认指向您的"主要"注册表,或者在上下文不明确时会失败。
  • 计划降级:如果您希望从专业版计划降级到入门版或基础版,您必须先手动删除所有"次要"注册表,直到只剩一个为止。

多注册表支持现已正式面向 DigitalOcean 容器注册表专业版计划的所有用户开放。请访问容器注册表产品页面获取完整文档。我们期待看到您如何利用这种灵活性构建更安全、合规且高性能的交付流水线。

相关推荐
r i c k2 分钟前
数据库系统学习笔记
数据库·笔记·学习
野犬寒鸦17 分钟前
从零起步学习JVM || 第一章:类加载器与双亲委派机制模型详解
java·jvm·数据库·后端·学习
IvorySQL1 小时前
PostgreSQL 分区表的 ALTER TABLE 语句执行机制解析
数据库·postgresql·开源
小Pawn爷1 小时前
4.镜像仓库
docker
·云扬·1 小时前
MySQL 8.0 Redo Log 归档与禁用实战指南
android·数据库·mysql
IT邦德1 小时前
Oracle 26ai DataGuard 搭建(RAC到单机)
数据库·oracle
爱吃生蚝的于勒1 小时前
【Linux】进程信号之捕捉(三)
linux·运维·服务器·c语言·数据结构·c++·学习
The森2 小时前
Linux IO 模型纵深解析 01:从 Unix 传统到 Linux 内核的 IO 第一性原理
linux·服务器·c语言·经验分享·笔记·unix
惊讶的猫2 小时前
redis分片集群
数据库·redis·缓存·分片集群·海量数据存储·高并发写
不爱缺氧i2 小时前
完全卸载MariaDB
数据库·mariadb