适用系统:CentOS 7.9
包含:NVIDIA 显卡驱动、Docker、nvidia-container-toolkit
在开始之前,强烈建议先看一遍 PWstudio 安装前必看,尤其是里面关于“复制粘贴”和“命令提示符不是命令的一部分”的说明,本篇很多步骤都会用到。如果你还不会用工具登录服务器/上传文件,先看 MobaXterm 新手教程。
本篇提到的每一个安装包(驱动、Docker 离线包等),下载链接都是普通网页链接,需要你先用浏览器下载到自己电脑,再用 MobaXterm(或类似工具)上传到服务器上,然后才能在下面的命令里用到它们。
执行下面两条命令,第一条是立即关闭防火墙,第二条是设置开机不自动启动防火墙(避免下次重启后又被打开):
sudo systemctl stop firewalld sudo systemctl disable firewalld
这两条命令一般不会有任何输出,只要没有报错,就说明执行成功了。
如果你的机器之前已经装过 NVIDIA 显卡驱动(比如管理员已经帮你装好过),可以先跳到下面 2.6 小节,执行 nvidia-smi 检查一下,如果能看到显卡信息,说明驱动已经装好了,这一整个“2. 安装 NVIDIA 显卡驱动”章节都可以跳过,直接进入“3. 安装 Docker”章节。
lspci | grep -i nvidia
这条命令的作用是列出服务器上被系统识别到的所有 NVIDIA 硬件设备。
01:00.0 VGA compatible controller: NVIDIA Corporation … 这样一行或几行文字,说明服务器上确实插了 NVIDIA 显卡,并且系统硬件层面已经识别到了,可以继续往下进行驱动安装。lspci 这个工具,可以先执行 sudo yum install -y pciutils 装上它,再重新执行上面的命令。sudo yum install -y gcc kernel-devel-$(uname -r) kernel-headers-$(uname -r)
这里的 $(uname -r) 是命令的一部分,它会被系统自动替换成你当前系统内核的版本号,不需要你手动改成别的内容(比如你自己的用户名)。请把整行命令原封不动地复制粘贴执行即可,不要只复制一部分,也不要漏掉美元符号和括号。
如果这一步提示找不到软件源、连不上网(比如报 “Could not retrieve mirrorlist” 之类的错误),这是 CentOS 7 官方源已经停止维护导致的,属于常见问题,解决方法见 q103 centos 7.9 换源,换源之后再重新执行本步骤。
CentOS 系统默认自带一个开源的 nouveau 显卡驱动,它会跟 NVIDIA 官方驱动冲突,所以要先把它禁用掉。执行下面命令,会创建一个配置文件:
sudo tee /etc/modprobe.d/blacklist-nouveau.conf << 'EOF' blacklist nouveau options nouveau modeset=0 EOF
这条命令执行后会把 blacklist nouveau 和 options nouveau modeset=0 这两行内容原样打印到屏幕上,这是正常的(因为 tee 命令本身会同时把内容显示出来并写入文件),不是报错。
重建内核镜像并切换为文本模式启动(依次执行命令):
sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak sudo dracut /boot/initramfs-$(uname -r).img $(uname -r) sudo systemctl set-default multi-user.target sudo reboot
最后一条 sudo reboot 会让服务器立即重启,这是正常且必须的步骤(用来让禁用 nouveau 的设置生效)。执行后你的终端连接会断开,这是正常现象,不用担心。请等待 1-2 分钟,让服务器完成重启,然后重新用 MobaXterm(或你使用的工具)登录一次服务器,登录成功后再继续下面 2.4 的步骤。
从 NVIDIA 官网 下载对应版本的驱动文件(如NVIDIA-Linux-x86_64-550.76.run)
或 从如下链接
链接:http://223.70.160.60:9999/qflow/NVIDIA-Linux-x86_64-550.76.run
用户名:pwmat
密码: SimplyTheBest
以上链接需要用浏览器打开并输入用户名密码下载,下载完成后,请用 MobaXterm(或 WinSCP 等工具)把这个.run文件上传到服务器上(比如上传到你重新登录后所在的家目录下),上传方法见 MobaXterm 教程:上传下载文件第 4 节“上传 / 下载文件”。
上传完成后,在服务器终端里执行安装(注意文件名要跟你实际下载的驱动文件名一致):
sudo sh NVIDIA-Linux-x86_64-550.76.run --ui=none --no-questions --accept-license --no-opengl-files
安装过程中终端会滚动输出一些安装信息,正常情况下几十秒到一两分钟就会跑完,最后回到命令提示符,不报错就说明安装成功了。如果中途报错,请把报错信息完整复制下来,用 AI 工具查一下,或者在 安装问题 Report / 解答 / 查询 / 讨论 里留言。
sudo reboot
同样,执行后终端会断开连接,这是正常的,等待 1-2 分钟后重新登录服务器。
重新登录服务器之后,执行:
nvidia-smi
注意 nvidia-smi 中间是一个短横线 -,没有空格,如果手动敲成 “nvidia - smi” 或者 “nvidia smi” 都会报错找不到命令,建议直接复制粘贴这行命令。
如果你的机器已经装过 Docker 了,可以先执行 docker –version,如果能看到版本号(比如 Docker version 27.x.x),说明已经装过了,本章节可以跳过,直接进入“4. 安装 nvidia-container-toolkit”章节。
CentOS 7.9 推荐使用离线 RPM 包方式安装,避免网络依赖(因为 CentOS 7 官方源已经停止维护,直接联网安装容易失败)。
链接:http://223.70.160.60:9999/qflow/docker7.tar
用户名:pwmat
密码: SimplyTheBest
用浏览器打开上面链接,输入用户名密码下载 docker7.tar 这个文件到你自己的电脑,然后用 MobaXterm 把它上传到服务器(建议上传到你当前登录的家目录,方便下一步操作)。
上传完成后,回到终端,依次执行下面几条命令(比如执行 cd docker7 依赖上一条 tar -xvf 解压出来的目录):
tar -xvf docker7.tar cd docker7 sudo yum install -y *.rpm
第一条命令是解压刚才上传的压缩包,会在当前目录下生成一个 docker7 文件夹;第二条命令是进入这个文件夹;第三条命令是安装文件夹里所有的 .rpm 安装包。安装过程会滚动输出很多软件包名称,属于正常现象,跑完没有报红色错误即可。
sudo systemctl start docker sudo systemctl enable docker
第一条命令是启动 Docker 服务;第二条是设置开机自动启动 Docker(这样以后服务器重启就不用再手动启动一次了)。这两条命令一般没有输出,或者只提示“Created symlink…“之类的信息,属于正常现象。
sudo docker run --rm swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/hello-world:latest
这条命令会从镜像仓库拉取一个很小的测试镜像并运行。如果你看到类似下面这样、以 “Hello from Docker!” 开头的一段文字,就说明 Docker 已经成功安装并且能正常工作了:
Hello from Docker! This message shows that your installation appears to be working correctly. ...
如果这一步报错(比如提示连不上 docker 服务),可以先检查 3.3 的两条命令有没有正常执行。
这一步的作用是:让你当前登录的普通用户,以后执行 docker 相关命令时可以不用每次都加 sudo。如果你不介意每次都加 sudo,这一步可以跳过。
sudo usermod -aG docker $USER
这里的 $USER 是系统自动变量,会自动被替换成你当前登录的用户名,不需要你手动改成自己的用户名,原样复制粘贴执行即可。
注意:需要重新登录或重启会话才能生效,也就是说执行完这条命令后,先退出终端(输入exit或直接关闭窗口),再重新登录一次服务器,这条设置才会真正起作用。
nvidia-container-toolkit 的作用,简单说就是让 Docker 容器”看得见、用得到”宿主机上的 NVIDIA 显卡,如果不装这个,之前装好的 GPU 驱动,Docker 容器是没法直接使用的。
推荐使用离线 RPM 包方式安装(CentOS 7 官方源支持有限)。
链接:http://223.70.160.60:9999/qflow/nvidia-container7.tgz
用户名:pwmat
密码: SimplyTheBest
跟前面一样,先用浏览器下载这个文件,再用 MobaXterm 上传到服务器。
关于目录的说明:这里下载的 nvidia-container7.tgz,和前面 3.1 下载的 docker7.tar 是两个完全独立、互不相关的压缩包,解压后会分别得到 docker7 和 nvidia-container7 两个不同的文件夹,它们是平级并列的关系(都在你的家目录下),不存在谁包含谁的关系。建议把这个新文件也上传到同一个家目录下即可,不需要进入到 docker7 文件夹里面去操作。
tar -zxvf nvidia-container7.tgz cd nvidia-container7 sudo yum install -y *.rpm
跟前面装 Docker 的步骤类似:第一条解压,第二条进入解压出来的目录,第三条安装里面所有的 rpm 包。
sudo nvidia-ctk runtime configure --runtime=docker
这一步只需要执行一次(以及下面 4.4 重启 Docker 服务也只需要一次),并不是每次要用 Docker 或者每次开机都要重新执行。这一步的作用是把 GPU 相关的运行时配置永久性地写入到 Docker 的配置文件里,配置好之后就一直生效了,除非你重装系统或者重装 Docker。
sudo systemctl restart docker
这一步是让上一步的配置生效,需要重启一次 Docker 服务(不是重启整台服务器,只是重启 Docker 这个软件本身,很快,几秒钟就好,不影响其它程序)。
sudo docker run --rm --gpus all \ swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nvidia/cuda:12.4.0-base-ubuntu22.04 \ nvidia-smi
这条命令会启动一个容器,并在容器内部执行 nvidia-smi。如果你在输出里同样看到显卡型号、驱动版本、CUDA 版本的表格信息(跟前面 2.6 步骤在宿主机上看到的类似),就说明 Docker 容器已经可以正常访问并使用 GPU 了,nvidia-container-toolkit 安装成功。
如果这一步报错(比如提示 GPU 不可见,或者 unknown flag: –gpus),一般说明前面某一步没有装对,建议依次检查:驱动是否装好(2.6)、Docker 是否装好(3.4)、本章节 4.1-4.4 是否都执行过。
至此,NVIDIA 显卡驱动、Docker、nvidia-container-toolkit 这三样基础环境都已经装好了。接下来需要继续安装 PWstudio 本身,请点击链接跳转到下一步,从 宿主机安装 server.py 服务 开始: 跳转到宿主机安装 server.py 服务章节 跟着文档安装到结尾。