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 容器注册表专业版计划的所有用户开放。请访问容器注册表产品页面获取完整文档。我们期待看到您如何利用这种灵活性构建更安全、合规且高性能的交付流水线。

相关推荐
Web极客码1 分钟前
WordPress 在哪里存储网站上的图片?
运维·服务器·wordpress
大佐不会说日语~3 分钟前
Docker Compose 部署 Spring Boot 应用 502 Bad Gateway 问题排查与解决
spring boot·docker·gateway·maven·故障排查
J_liaty3 分钟前
SpringBoot整合Canal实现数据库实时同步
数据库·spring boot·后端·canal
想逃离铁厂的老铁7 分钟前
Day60 >> 94、城市间货物运输1️⃣ + 95、城市间货物运输 2️⃣ + 96、城市间货物运输 3️⃣
java·服务器·前端
草莓熊Lotso8 分钟前
从零手搓实现 Linux 简易 Shell:内建命令 + 环境变量 + 程序替换全解析
linux·运维·服务器·数据库·c++·人工智能
小二·11 分钟前
Go 语言系统编程与云原生开发实战(第6篇)云原生部署实战:Docker 镜像瘦身 × K8s 部署 × Helm 一键发布
docker·云原生·golang
Mr_Xuhhh2 小时前
MySQL核心知识梳理:从连接到查询的完整指南
数据库·sql·mysql
wsxlgg2 小时前
MySQL中count(*)、count(1)、count(字段)的区别
数据库·mysql
pengdott8 小时前
Oracle RAC内存融合技术深度解析:集群性能的幕后引擎
数据库·oracle
csudata9 小时前
绿色便携版PostgreSQL发行版重磅发布
数据库·postgresql