Docker+Nvidia Container Toolkit 在ubuntu下离线安装
做项目时有的电脑不能联网,只能本地安装,这里记录操作流程
Docker安装
官方文档: https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository
参考docker官方文档,进入docker的安装包仓库https://download.docker.com/linux/ubuntu/dists/,选择自己的ubuntu版本(如果不知道用lsb_release -a查),例如我的ubuntu版本是20.04,版本名是focal,选择/focal/pool/stable/amd64/,有很多文件,各个文件选择最新版本下载即可。
安装文件
console
sudo dpkg -i ./containerd.io_<version>_<arch>.deb \
./docker-ce_<version>_<arch>.deb \
./docker-ce-cli_<version>_<arch>.deb \
./docker-buildx-plugin_<version>_<arch>.deb \
./docker-compose-plugin_<version>_<arch>.deb
安装后docker应该正常启动
查看docker的状态
sudo systemctl status docker
检查docker版本
docker --version
下载Nvidia Driver文件
网页: https://www.nvidia.com/en-us/drivers/
根据自己的电脑和显卡型号选择driver版本,网页最终推荐的是Linux x64 (AMD64/EM64T) Display Driver 595.58.03 | Linux 64-bit,直接下载
在有网络的同系统的机器上下载依赖包
# 创建存放 deb 包的目录
mkdir ~/nvidia-offline && cd ~/nvidia-offline
# 下载所有依赖包(包括 gcc、make、dkms、内核头文件等)
sudo apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances build-essential dkms linux-headers-$(uname -r) | grep "^\w" | sort -u)
拷贝后在离线机器上安装
sudo dpkg -i ./*
安装dricver
sudo chmod +x NVIDIA-Linux-*.run
sudo sh NVIDIA-Linux-*.run
安装完成后用nvidia-smi测试是否安装成功
Tips:
-
询问是否要安装32位兼容库,选yes,有些库会依赖32位兼容库,占用空间也很小
-
警告找不到libglvnd,忽略即可
-
是否自动生成nvidia-xconfig,选yes,让系统使用nvidia驱动
下载 NVIDIA Container Toolkit
官方文档:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
支持平台:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/supported-platforms.html
下载链接:https://github.com/NVIDIA/nvidia-container-toolkit
只需要安装驱动,不需要安装cuda toolkit
首先检查当前版本是否支持要安装的系统,例如1.19.0不支持18.04,确定版本后进入git仓库的release界面找要下载的版本,解压缩后进行安装
bash
sudo dpkg -i ./*
重启docker,让docker使用NVIDIA Container Toolkit
sudo systemctl restart docker
测试docker内部是否检测到gpu
导入镜像,这里之前docker pull了一个ubuntu20.04的镜像,用save指令保存到了ubuntu_image.tar
bash
sudo docker load -i ubuntu_image.tar
测试nvidia-smi
sudo docker run --rm -it --gpus all ubuntu:20.04 nvidia-smi