全部產品
Search
文件中心

Container Registry:Docker登入、推送和拉取失敗常見問題

更新時間:Dec 13, 2024

本文介紹Docker登入、推送和拉取失敗時處理方法。

docker login失敗

為什麼docker login失敗?

登入失敗時,參考如下步驟進行排查。

  • 您使用了阿里雲賬戶的登入密碼,而不是Registry的獨立登入密碼。Registry的登入密碼是在Container Registry控制台上設定與修改的,操作步驟如下。

    1. 登入Container Registry控制台

    2. 執行個體列表頁面單擊執行個體卡片,進入執行個體詳情頁。

    3. 在左側導覽列選擇執行個體管理 > 訪問憑證

    4. 訪問憑證頁面,單擊右上方的設定固定密碼

    5. 設定固定密碼對話方塊,設定Registry的登入密碼,然後單擊確定

  • 您使用了sudo進行登入。使用sudo時,系統第一個要求輸入的密碼是Linux的使用者密碼。您可能在這裡輸入了Registry的登入密碼,導致登入操作失敗。

    區分這個錯誤的方式很簡單,Linux的使用者密碼大多允許嘗試三次,錯誤時會提示try again。而Registry的登入密碼錯誤一次之後就會退出,並返回以下錯誤。

    Error response from daemon: Get https://registry.cn-hangzhou.aliyuncs.com/v2/: unauthorized: authentication required                    
  • 如果您使用的是RAM使用者,請勿使用阿里雲帳號設定的密碼登入鏡像倉庫,您需要在容器鏡像控制台設定密碼,然後使用該密碼登入鏡像倉庫。具體操作,請參見配置訪問憑證

為什麼docker login逾時?

檢查您的網路是否可以正常使用。如果您的網路不能正常使用,將無法訪問到執行個體,從而會導致docker login逾時。

docker pull失敗

docker pull失敗,報錯提示Error: image xxx not found

報錯提示Error: image xxx not found

下載失敗時,請參考如下步驟進行排查。

  • 檢查鏡像地址:

    • 確認您輸入的鏡像地址是正確的,特別是在使用公用鏡像時。

    • 可以在Container Registry控制台中查看鏡像的具體地址和版本。

  • 私人倉庫的登入狀態:

    • 使用cat ~/.docker/config.json查看已登入的 Registry 網域名稱,確保您的私人倉庫網域名稱在其中。

    • 如果未登入,需使用docker login命令進行登入。

  • 賬戶許可權:

    • 確認您使用的賬戶有許可權訪問或下載該鏡像,尤其是使用子賬戶時,預設情況下可能沒有相關許可權。

    • 可以在倉庫的存取控制設定中進行許可權管理。關於倉庫的存取控制授權,請參見倉庫存取控制

說明

少數情況下會出現如下報錯,下載的塊檔案檢驗失敗。一般重試即可解決。

報錯提示:Error: filesystem layer verification failed for digest

為什麼在企業版執行個體匿名拉取鏡像會失敗?

您需要在概覽頁面右側執行個體設定地區開啟公開匿名拉取,您才可以匿名拉取鏡像。

docker push失敗

docker push失敗,報錯提示denied: requested access to the resource is denied

上傳失敗時,主要的排查步驟和docker pull基本一致,只是授權要求的層級比docker pull更高。

為什麼docker push會失敗?

推送鏡像之前請確保鏡像已建立鏡像倉庫。如果沒有鏡像倉庫,請確保命名空間已開啟自動建立倉庫功能。