本次我的机器使用的是Centos,所以软件源需要切换到vault软件源
sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
可根据各自的系统安装以下内容
bashsudo dnf update -y
sudo dnf install -y epel-release
sudo dnf install -y wget git gcc kernel-devel-$(uname -r) kernel-headers-$(uname -r)
epel-release: 提供额外的软件包。
gcc, kernel-devel, kernel-headers: 这些是编译 NVIDIA 驱动所必需的。$(uname -r) 会确保安装与你当前运行的内核版本匹配的头文件。
如果有Nouveau 驱动,他会与 NVIDIA 官方驱动冲突,必须禁用。
bashsudo bash -c "echo 'blacklist nouveau' > /etc/modprobe.d/blacklist-nouveau.conf"
sudo bash -c "echo 'options nouveau modeset=0' >> /etc/modprobe.d/blacklist-nouveau.conf"
更新内核initramfs并重启机器:
bashsudo dracut --force sudo reboot
如果不知道自己是什么型号的显卡,可以通过该方式查询
bashlspci | grep -i nvidia
# 如果上面命令没有输出,可使用该命令
lspci | grep -i vga
这里我查询出,该机器安装的显卡为 A10
知道显卡型号后,就可以去NVIDIA官网下载对应的驱动了
https://www.nvidia.com/Download/index.aspx
根据自己的显卡型号,选择对应的序列,我这里A10属于服务器显卡,安装在Linux64位系统中
点击 find, 可以进入到该驱动下载页面
如果需要使用服务器下载,可以右键获取下载链接,使用wget下载到当前目录
bash# 注意,这里的链接需要更换为右键复制的链接
wget https://us.download.nvidia.com/xxxxxxx.run
cd 到驱动文件的目录中,执行以下操作
bash# 给下载的文件添加执行权限
# 同样,文件名请替换为你下载的实际文件名
chmod +x NVIDIA-Linux-xxxxxx.run
# 运行安装程序
# --no-opengl-files 选项对于纯计算服务器很重要,可以避免覆盖系统库
sudo ./NVIDIA-Linux-xxxxxx.run --no-opengl-files
如果提示安装 32-bit 兼容库, 选择 No (除非你有特殊需求)。 其他基本一路使用默认选项或确认即可。
至此就已经完成安装了,不需要重启服务器
完成安装后,就可以使用NVIDIA的驱动命令来进行显卡状态的查询了
bashnvidia-smi
bash# 添加 NVIDIA 容器工具仓库
curl -s -L https://nvidia.github.io/libnvidia-container/centos8/libnvidia-container.repo | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
# 安装工具包
sudo dnf install -y nvidia-docker2
# 重启 Docker 服务使配置生效
sudo systemctl restart docker
修改 /etc/docker/daemon.txt
{ "runtimes": { "nvidia": { "path": "nvidia-container-runtime", "runtimeArgs": [] } }, "registry-mirrors": [ ], "default-runtime": "nvidia" }
"default-runtime": "nvidia" 告诉 Docker 默认就使用 NVIDIA 运行时
这样在 docker-compose.yml 中就不再需要复杂的 runtime: nvidia 配置。
本文作者:Silon汐冷
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!