因为我的宿主机 是ubuntu22.04,但是我现在需要用cuda11.3的编译环境,cuda11.3最高支持ubuntu20.04;所以我想在ubuntu22.04上安装一个ubuntu20.04的docker镜像,然后我要在docker里面安装nvidia cuda toolkit等等环境,这会不会有些麻烦,nvidia cuda有自己的docker 镜像,那我直接下载安装cuda镜像,岂不完美。
我确定了ubuntu的版本、cuda toolkit的版本以及cudnn的版本,但是我不知道在nvidia/cuda里面的标签是什么。通过下面的方法来确定tag名。
首先要获取nvidia镜像的列表:
https://hub.docker.com/r/nvidia/cuda/tags?page=2&name=11.3
可以直接在docker hub官网上查找,但是2024.7月以后应该就被墙了,挂vpn走境外服务器都不行。
当然也有办法获取到nvidia的镜像列表:
要详细显示 Docker Hub 上 nvidia/cuda 镜像的所有版本号,你可以使用以下几种方法来获取镜像的详细信息和可用的标签。
1. 使用 Docker CLI 列出标签
虽然 Docker CLI 本身没有直接列出所有标签的功能,你可以使用以下方法获取镜像标签:
使用 skopeo 工具(需要安装):
- skopeo 是一个工具,可以用来查询远程镜像仓库的镜像标签。
- 安装 skopeo:
sudo apt-get install skopeo - 列出 nvidia/cuda 的所有标签:
skopeo list-tags docker://docker.io/nvidia/cuda
2. 使用 Docker Hub API
通过 Docker Hub API,你可以查询镜像标签:
- 发送请求:
- 你可以通过以下 API 请求获取标签列表:
curl -s "https://hub.docker.com/v2/repositories/nvidia/cuda/tags/"
- 你可以通过以下 API 请求获取标签列表:
- 解析结果:
- 这个请求将返回一个 JSON 对象,其中包含镜像的标签列表。你可以使用工具如 jq 来提取标签信息。
可以看到类似下面的nvida/cuda的标签列表。
如果你使用上面的方法不行,请尝试 /etc/docker/daemon.json文件中增加源:(下面的源不行的话,就搜一些别的源添加进去)
{
"registry-mirrors":["https://dockerhub.xianfish.site", "https://docker.m.daocloud.io", "https://ustc-edu-cn.mirror.aliyuncs.com"]
}
修改镜像地址之后需要重新加载这个配置文件或者重启docker:
systemctl restart docker 或者service docker restart
获取到标准的nvidia/cuda 的tag名之后,就可以下载了。
比方说我现在想下载
tag:11.3.1-cudnn8-devel-ubuntu20.04
docker pull nvidia/cuda:11.3.1-cudnn8-devel-ubuntu20.0
要顺利pull,要保证你配置的源可用。