全部產品
Search
文件中心

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

更新時間:Sep 19, 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控制台搜尋該公用倉庫,檢查確認想要下載的這個鏡像版本是否真實存在。

  • 如果您是從私人倉庫中下載鏡像,需要首先確認Registry的登入狀態。

    1. 運行下邊的命令,顯示所有登入的Registry網域名稱。

      cat ~/.docker/config.json                    
    2. 查看裡面是否包含您想要下載鏡像的Registry網域名稱。

      如果沒有的話,您需要先進行登入操作。

      如果顯示已經登入的話,那麼您需要確認您登入的這個賬戶是否有許可權下載這個鏡像。子賬戶預設沒有任何許可權。關於倉庫的存取控制授權,請參見倉庫存取控制

    說明

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

    報錯提示: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會失敗?

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