為了在不使用 Docker 桌面的情況下直接在 WSL2 上運行 Docker,我遵循了不同的來源。我執行的步驟與此處描述的步驟非常相似:https : //dev.to/felipecrs/simply-run-docker-on-wsl2-3o8。Docker 可以作業,但我仍然必須配置一個憑證存盤,以便 docker 登錄才能作業。我嘗試了兩種方法:
A)我嘗試在https://github.com/docker/docker-credential-helpers/issues/102#issuecomment-388974092
'docker login'....之后使用pass 作為憑證??存盤。auths 被添加到 .docker/config.json,其中 credsStore 被設定為“ pass ”。但是,在成功登錄 docker 后,pull 命令仍然失敗并出現身份驗證錯誤:
似乎令牌不再用于后續命令。Login SucceededError response from daemon: unauthorized: unauthorized to access repository:...
B)嘗試了一種不太理想的方法,我切換到將wincred.exe配置為 credsStore
~/.docker/config.json
{
"credsStore": "wincred.exe"
}
如此處底部的獎金部分所示:https : //dev.to/felipecrs/simply-run-docker-on-wsl2-3o8:
wincred_version=$(curl -fsSL -o /dev/null -w "%{url_effective}" https://github.com/docker/docker-credential-helpers/releases/latest | xargs basename)
sudo curl -fL "https://github.com/docker/docker-credential-helpers/releases/download/${wincred_version}/docker-credential-wincred-${wincred_version}-$(dpkg
--print-architecture).zip" | zcat | sudo tee /usr/local/bin/docker-credential-wincred.exe >/dev/null
sudo chmod x /usr/local/bin/docker-credential-wincred.exe
這種方法有效,但奇怪的是,每次登錄或拉取都需要 > 1 分鐘才能成功通過身份驗證并開始操作。
我更喜歡使用類似于 A 的干凈的 Linux-only 方法,但也很感激 B 的剩余問題的解釋/解決方案。
uj5u.com熱心網友回復:
由于您使用的是pass,這意味著您需要一個 GPG 密鑰來加密 Docker 的憑證存盤。
您的 GPG 密鑰有密碼嗎?也許它正在嘗試請求它,但它不知道要使用哪個終端。為了加密您的憑據,不需要密碼,因為它使用公鑰(因此docker login不會導致任何錯誤),但對于解密,它需要私鑰,因此如果它無法詢問您,它將失敗對于密碼。
嘗試將GPG_TTYWSL2 中的設定為您當前用于 Docker pull 的那個:
export GPG_TTY=$(tty)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/346246.html
上一篇:GO的Docker開發環境
