Docker构建/ Docker合成错误:未知desc =无法获取匿名令牌:意外状态:401未授权

56lgkhnf  于 2023-02-21  发布在  Docker
关注(0)|答案(3)|浏览(815)

当使用NVIDIA container构建一个container(通过docker build,docker run或docker-compose)时,我会随机地遇到以下错误。当我通常开始构建container时,它第一次就能工作。但接下来的几次通常就不工作了。

------
 > [internal] load metadata for nvcr.io/nvidia/l4t-base:r32.5.0:
------
failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: 
  failed to create LLB definition: failed to authorize: 
  rpc error: code = Unknown desc = failed to fetch anonymous token: unexpected status: 401 Unauthorized

我目前的解决方案是使用一个稍微不同的图像临时,而我正在调整其他部分的Dockerfile。

ctzwtxfj

ctzwtxfj1#

你必须docker login nvcr.io

大部分内容都在setup docs中有记录,不幸的是nvcr.io没有很好的SEO或UX,所以搜索结果和大多数尝试都不会显示此页面。这与ngc catalog/docker login ngc.nvidia.com不同,令人困惑。

      • 安装NGC CLI:**(适用于macOS)
  • 运行curl -O https://ngc.nvidia.com/downloads/ngccli_mac.zip && unzip ngccli_mac.zip && chmod u+x ngc
  • mv ngc /usr/local/bin/ngc
      • 设置环境:**
  • 创建帐户并从https://ngc.nvidia.com/获取API密钥
  • 将API密钥添加到CLI:ngc config set
  • 登录注册表:docker login nvcr.io
      • 观察包含正确身份验证详细信息的Docker CLI输出:**
[auth] nvidia/tensorrt:pull,push token for nvcr.io

提示

确保你登录到了正确的容器注册表。它是以你正在使用的docker镜像的名字登录的。例如nvcr.io/nvidia/tensorrt:22.01-py3使用nvcr.io

解释

事后看来,我理解了failed to fetch anonymous token: unexpected status: 401 Unauthorized。我没有通过身份验证(或者更准确地说,我通过了Docker Hub和NGC Catalog的身份验证,而不是nvcr.io)。它给了我一个匿名令牌,达到了速率限制。我需要创建一个帐户来获得更高的限制。

wvyml7n5

wvyml7n52#

如果你碰巧遇到这个错误,而且它以前也工作过,你可能遇到了nvcr的下载限制,要绕过它,只要重新启动docker就足够了。
对于Docker桌面,单击任务栏中的Docker图标,然后单击重新启动。或者在Mac上,您可以使用cmd + r。

o8x7eapl

o8x7eapl3#

将Docker从我的版本(4.5.0)更新到最新版本(4.9.0)对我有帮助。

相关问题