报错
在用docker拉取tensorrt的镜像时,出现报错。
拉取命令,如下
docker pull nvcr.io/nvidia/tensorrt:21.06-py3
报错信息如下
error pulling image configuration: Get "https://ngc.download.nvidia.cn/containers/registry//docker/registry/v2/blobs/sha256/f1/f1a0ca6212d0ac016dd71595f25eeb3388cfa46550b1a681019ff612d2cadb07/data?ak-token=exp=1638858036~acl=/containers/registry/docker/registry/v2/blobs/sha256/f1/f1a0ca6212d0ac016dd71595f25eeb3388cfa46550b1a681019ff612d2cadb07/data*~hmac=1afab07e2b68019d258890baf5381504fcd68d804910f1b7727866776f2423c1": dial tcp: lookup ngc.download.nvidia.cn: no such host
观察上述报错信息,尤其是最后一句dial tcp: lookup ngc.download.nvidia.cn: no such host
,知道原因出在host上。系统无法从域名ngc.download.nvidia.cn
解析到对应的ip地址,因而报错。
所以我们只需要获得域名ngc.download.nvidia.cn
的ip地址,并且在host里面唯一指定即可。
解决方案
查询域名对应的ip地址
将域名ngc.download.nvidia.cn
输入到ipaddress网站中,可以得到查询结果
该域名对应多个ip,选择其中一个ip,比如23.64.114.78
作为ip地址。
修改host
sudo vim /etc/hosts
添加如下内容
23.64.114.78 ngc.download.nvidia.cn
此时,hosts文件看起来如下
再执行拉取命令,可以看到是成功的。