
关于
Azure 容器注册表 Python SDK。用于管理容器镜像、制品和仓库。
name: azure-containerregistry-py description: 适用于 Python 的 Azure 容器注册表 SDK。用于管理容器镜像、制品和仓库。 risk: unknown source: community date_added: '2026-02-27'
适用于 Python 的 Azure 容器注册表 SDK
在 Azure 容器注册表中管理容器镜像、制品和仓库。
安装
pip install azure-containerregistry
环境变量
AZURE_CONTAINERREGISTRY_ENDPOINT=https://<registry-name>.azurecr.io
认证
Entra ID(推荐)
from azure.containerregistry import ContainerRegistryClient
from azure.identity import DefaultAzureCredential
client = ContainerRegistryClient(
endpoint=os.environ["AZURE_CONTAINERREGISTRY_ENDPOINT"],
credential=DefaultAzureCredential()
)
匿名访问(公共注册表)
from azure.containerregistry import ContainerRegistryClient
client = ContainerRegistryClient(
endpoint="https://mcr.microsoft.com",
credential=None,
audience="https://mcr.microsoft.com"
)
列出仓库
client = ContainerRegistryClient(endpoint, DefaultAzureCredential())
for repository in client.list_repository_names():
print(repository)
仓库操作
获取仓库属性
properties = client.get_repository_properties("my-image")
print(f"Created: {properties.created_on}")
print(f"Modified: {properties.last_updated_on}")
print(f"Manifests: {properties.manifest_count}")
print(f"Tags: {properties.tag_count}")
更新仓库属性
from azure.containerregistry import RepositoryProperties
client.update_repository_properties(
"my-image",
properties=RepositoryProperties(
can_delete=False,
can_write=False
)
)
删除仓库
client.delete_repository("my-image")
列出标签
for tag in client.list_tag_properties("my-image"):
print(f"{tag.name}: {tag.created_on}")
按顺序筛选
from azure.containerregistry import ArtifactTagOrder
# 最新的在前
for tag in client.list_tag_properties(
"my-image",
order_by=ArtifactTagOrder.LAST_UPDATED_ON_DESCENDING
):
print(f"{tag.name}: {tag.last_updated_on}")
清单操作
列出清单
from azure.containerregistry import ArtifactManifestOrder
for manifest in client.list_manifest_properties(
"my-image",
order_by=ArtifactManifestOrder.LAST_UPDATED_ON_DESCENDING
):
print(f"Digest: {manifest.digest}")
print(f"Tags: {manifest.tags}")
print(f"Size: {manifest.size_in_bytes}")
获取清单属性
manifest = client.get_manifest_properties("my-image", "latest")
print(f"Digest: {manifest.digest}")
print(f"Architecture: {manifest.architecture}")
print(f"OS: {manifest.operating_system}")
更新清单属性
from azure.containerregistry import ArtifactManifestProperties
client.update_manifest_properties(
"my-image",
"latest",
properties=ArtifactManifestProperties(
can_delete=False,
can_write=False
)
)
删除清单
# 按摘要删除
client.delete_manifest("my-image", "sha256:abc123...")
# 按标签删除
manifest = client.get_manifest_properties("my-image", "old-tag")
client.delete_manifest("my-image", manifest.digest)
标签操作
获取标签属性
tag = client.get_tag_properties("my-image", "latest")
print(f"Digest: {tag.digest}")
print(f"Created: {tag.created_on}")
删除标签
client.delete_tag("my-image", "old-tag")
上传和下载制品
from azure.containerregistry import ContainerRegistryClient
client = ContainerRegistryClient(endpoint, DefaultAzureCredential())
# 下载清单
manifest = client.download_manifest("my-image", "latest")
print(f"Media type: {manifest.media_type}")
print(f"Digest: {manifest.digest}")
兼容工具
Claude CodeCursor
标签
后端开发
