關於 docker 出現 denied: requested access to the resource is denied 解決方式

前言

最近要上傳 Docker 的時候不知道為什麼一直出現「denied: requested access to the resource is denied」的錯誤訊息,所以記錄一下有哪些解決方式。

問題狀況

首先當我輸入 docker push localImageName 的時候就會出現以下狀況

1
2
3
4
5
6
7
8
9
10
11
Using default tag: latest
The push refers to repository [docker.io/library/test]
d8deea6aacf6: Preparing
d31b1b3688ec: Preparing
859d050b8423: Preparing
5f70bf18a086: Preparing
9164c306cc0a: Preparing
8396c878c66c: Waiting
3ee39e78fd25: Waiting
138331e9552c: Waiting
denied: requested access to the resource is denied

requested access to the resource is denied

解決方向

接下來這邊就稍微記錄一下全部的解決流程。

首先我們在上傳 Docker Image 到 DockerHub 的時候指令通常是 docker push,而若你要上傳你的 image 的話則必須是 username/images。

舉例來講你的 local image 可能叫做 test,而你 DockerHub 可能是 hsiangfeng,那麼在輸入 docker push 的時候就要打 docker push hsiangfeng/test,所以接下來繼續紀錄 Docker denied: requested access to the resource is denied 錯誤訊息幫。

登入狀態

首先可以先試著輸入 docker login 確定自己 Docker 帳號是否已經登入成功並驗證通過

Login Succeeded

如果有登入的話,可以先試著登出在登入 docker logout

logout

接下來再重新登入 docker login 再去重新 docker push localImageName

滿多人都說這個時候就可以解決了。

tag name 忘記改

有一種特殊狀況是自己忘記改 tag name,因為 Docker 是用 tag 去辨別上傳的,因此遠端的 DockerHub 帳號必須與 local Image Name 相同,假設你的 local Image Name 叫做 test,那麼就要輸入以下指令改成以下

1
docker tag test username/test

以我的 DockerHub 帳號是「hsiangfeng」來講,那就要改成 docker tag test hsiangfeng/test,屆時輸入 docker images 應該就會看到 hsiangfeng/test 的 images

images

接下來再去試著 docker push hsiangfeng/test 看看。

忘記建立 Repositories

最後一個算是滿蠢的問題,要注意當你輸入 docker push hsiangfeng/test 的時候,docker 並不會幫你自動建立 Repositories,因此請記得到 DockerHub 新增一個儲存庫,並且名稱要與你要上傳的相同

Create

接下來新增之後就可以在試著輸入一次 docker push hsiangfeng/test 了,通常到這一步基本上就可以成功了。

成功畫面

參考文獻

Liker 讚賞

這篇文章如果對你有幫助,你可以花 30 秒登入 LikeCoin 並點擊下方拍手按鈕(最多五下)免費支持與牡蠣鼓勵我。
或者你也可以考慮請我喝一杯咖啡

Google AD

撰寫一篇文章其實真的很花時間,如果你願意「關閉 Adblock (廣告阻擋器)」來支持我的話,我會非常感謝你 ヽ(・∀・)ノ