檢查 Azure 容器登錄的健康情況

使用 Azure 容器登錄有時可能會發生問題。 例如,由於您的本機環境中有 Docker 的問題,因此您可能無法提取容器映像。 或者,網路問題可能會讓您無法連線至登錄。

作為第一個診斷步驟,請執行 az acr check-health 命令以取得環境健康情況的相關資訊,並選擇性存取目標登錄。 Azure CLI 2.0.67 或以上版本可使用此命令。 如果您需要安裝或升級,請參閱安裝 Azure CLI

如需其他的登錄疑難排解指引,請參閱:

執行 az acr check-health

下列範例顯示執行 az acr check-health 命令的不同方式。

注意

若您在 Azure Cloud Shell 中執行命令,便不會檢查本機環境。 但您可檢查目標登錄的存取權。

僅檢查環境

若要檢查本機 Docker 精靈、CLI 版本和 Helm 用戶端設定,請執行命令而不使用其他參數:

az acr check-health

檢查環境和目標登錄

若要檢查登錄存取權,以及執行本機環境檢查,請傳遞目標登錄的名稱。 例如:

az acr check-health --name myregistry

檢查虛擬網路中的登錄存取

若要確認路由傳送至私人端點的 DNS 設定,請傳遞虛擬網路的名稱或資源識別碼。 當虛擬網路所在的訂用帳戶或資源群組不同於登錄時,則需要資源識別碼。

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.io at IP 40.xxx.xxx.162 : OK
Challenge endpoint https://myregistry.azurecr.io/v2/ : OK
Fetch refresh token for registry 'myregistry.azurecr.io' : OK
Fetch access token for registry 'myregistry.azurecr.io' : OK

檢查登錄是否已設定隔離

啟用要隔離的容器登錄後,發佈至此存放庫的每個映像皆受到隔離。 存取或提取隔離映像的所有嘗試皆會失敗,並出現錯誤。 如需詳細資訊,請參閱提取隔離映像

下一步

如需 az acr check-health 命令所傳回錯誤碼的詳細資訊,請參閱健康情況檢查錯誤參考

請參閱 Azure Container Registry 常見問題和其他已知問題的常見問題集