当使用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。
3条答案
按热度按时间ctzwtxfj1#
你必须
docker login nvcr.io
大部分内容都在setup docs中有记录,不幸的是
nvcr.io
没有很好的SEO或UX,所以搜索结果和大多数尝试都不会显示此页面。这与ngc catalog/docker login ngc.nvidia.com
不同,令人困惑。curl -O https://ngc.nvidia.com/downloads/ngccli_mac.zip && unzip ngccli_mac.zip && chmod u+x ngc
mv ngc /usr/local/bin/ngc
ngc config set
docker login 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)。它给了我一个匿名令牌,达到了速率限制。我需要创建一个帐户来获得更高的限制。wvyml7n52#
如果你碰巧遇到这个错误,而且它以前也工作过,你可能遇到了nvcr的下载限制,要绕过它,只要重新启动docker就足够了。
对于Docker桌面,单击任务栏中的Docker图标,然后单击重新启动。或者在Mac上,您可以使用cmd + r。
o8x7eapl3#
将Docker从我的版本(4.5.0)更新到最新版本(4.9.0)对我有帮助。