检查 Azure 容器注册表的运行状况

使用 Azure 容器注册表时,可能会偶尔遇到问题。 例如,由于本地环境中的 Docker 出现问题,可能无法拉取容器映像。 或者,可能会因网络问题而无法连接到注册表。

进行诊断时,首先请运行 az acr check-health 命令,了解环境的运行状况,并可选择访问目标注册表。 此命令可在 Azure CLI 2.0.67 或更高版本中使用。 如果需要进行安装或升级,请参阅安装 Azure CLI

有关其他注册表故障排除指南,请参阅:

运行 az acr check-health

下述示例演示了如何通过不同方式运行 az acr check-health 命令。

仅检查环境

若要检查本地 Docker 守护程序、CLI 版本和 Helm 客户端配置,请在没有其他参数的情况下运行此命令:

az acr check-health

检查环境和目标注册表

若要检查对注册表的访问权限并执行本地环境检查,请传递目标注册表的名称。 例如:

az acr check-health --name myregistry

检查虚拟网络中的注册表访问权限

若要验证要路由到专用终结点的 DNS 设置,请传递虚拟网络的名称或资源 ID。 当虚拟网络所在的订阅或资源组与注册表不同时,需要资源 ID。

az acr check-health --name myregistry --vnet myvnet

错误报告

此命令将信息记录到标准输出。 如果检测到问题,它会提供错误代码和说明。 若要详细了解代码和可能的解决方案,请查看错误参考

默认情况下,该命令在发现错误时会停止。 也可运行此命令,这样它就会提供所有运行状况检查的输出,即使发现了错误。 按以下示例中所示添加参数 --ignore-errors

# Check environment only
az acr check-health --ignore-errors

# Check environment and target registry; skip confirmation to pull image
az acr check-health --name myregistry --ignore-errors --yes

示例输出:

az acr check-health --name myregistry --ignore-errors --yes
Docker daemon status: available
Docker version: Docker version 18.09.2, build 6247962
Docker pull of 'mcr.microsoft.com/mcr/hello-world:latest' : OK
ACR CLI version: 2.2.9
Helm version:
Client: &version.Version{SemVer:"v2.14.1", GitCommit:"5270352a09c7e8b6e8c9593002a73535276507c0", GitTreeState:"clean"}
DNS lookup to myregistry.azurecr.cn at IP 40.xxx.xxx.162 : OK
Challenge endpoint https://myregistry.azurecr.cn/v2/ : OK
Fetch refresh token for registry 'myregistry.azurecr.cn' : OK
Fetch access token for registry 'myregistry.azurecr.cn' : OK

检查注册表是否配置了隔离区

在启用容器注册表隔离后,发布到此存储库的每个映像都会被隔离。 任何访问或拉取隔离映像的尝试都将失败并出现错误。 有关详细信息,请参阅拉取隔离映像

后续步骤

若要详细了解 az acr check-health 命令返回的错误代码,请参阅运行状况检查错误参考

参阅常见问题解答,其中解答了有关 Azure 容器注册表的常见问题和其他已知问题。