639 字
3 分钟
给无网络环境的RedHat配置Docker和CUDA

RedHat真是我用过的最垃圾、最恶心的系统。

安装RedHat#

下载的iso文件应该为*-dvd.iso格式,安装时选择最小化安装。

删除磁盘的所有分区,点击+创建新分区:

  • /boot 1 GiB
  • /boot/efi 300 MiB
  • /swap 8 GiB,这里还要修改文件类型为swap
  • / 留空会自动分配剩余空间

安装Nvidia相关的内容#

安装gcc#

配置本地安装源#

首先,把之前下载的dvd.iso挂载到系统中,首先要把iso复制到/isos/rhel.iso,然后再挂载。

Terminal window
sudo mkdir -p /isos
sudo cp ~/Downloads/rhel.iso /isos/rhel.iso
sudo mkdir -p /mnt/rhel-iso
sudo mount -o loop /isos/rhel.iso /mnt/rhel-iso

此时ISO内容被挂载到/mnt/rhel-iso

然后配置本地仓库文件:

Terminal window
sudo tee /etc/yum.repos.d/local.repo <<EOF
[local-baseos]
name=Local RHEL 9.2 BaseOS
baseurl=file:///mnt/rhel-iso/BaseOS
enabled=1
gpgcheck=0
[local-appstream]
name=Local RHEL 9.2 AppStream
baseurl=file:///mnt/rhel-iso/AppStream
enabled=1
gpgcheck=0
EOF

安装gcc和相关工具#

然后进行清理sudo dnf clean all,然后就可以进行安装了:

Terminal window
sudo dnf install -y gcc make kernel-devel-matched kernel-headers libglvnd-devel

安装Nvidia驱动#

下载Nvidia驱动#

Nvidia官网下载适合你显卡的驱动,注意选择正确的操作系统版本。下载的应该是.run文件。然后记得把下载的文件复制到/home下。

取消默认的驱动#

创建文件/etc/modprobe.d/disable-nouveau.conf

Terminal window
echo -e "blacklist nouveau\noptions nouveau modeset=0" | sudo tee /etc/modprobe.d/disable-nouveau.conf

更新initramfs

Terminal window
sudo dracut --force

然后重启。

安装Nvidia驱动#

使用Ctrl+Alt+F3登录命令行,然后sudo ./NVIDIA-Linux-x86_64-*.run安装驱动。重启后使用nvidia-smi检查驱动是否安装成功。

安装Docker#

下载Docker安装包#

参考网址:https://docs.docker.com/engine/install/rhel/

Docker官网下载最新版本的Docker,下载的应该是.tar.gz文件。然后记得把下载的文件复制到/home下。使用sudo dnf install *.rpm安装所有的依赖包。

然后:

Terminal window
sudo usermod $USER -aG docker # 添加本用户到docker的组中
sudo service docker start

安装Container Toolkit#

参考网址:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

在有网的机器上配置Nvidia的仓库:

Terminal window
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | \
sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo

然后下载相应的安装包:

Terminal window
sudo dnf download --resolve nvidia-container-toolkit

把下载好的包复制到无网的机器上,然后sudo dnf install *.rpm安装所有的依赖包。

配置Docker使用Nvidia运行时#

Terminal window
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

在这里建议重启

测试#

安装完成后,可以使用以下命令测试DockerNvidia是否正常工作:

从有网的机器上使用docker save -o ./cuda-sample.tar nvcr.io/nvidia/k8s/cuda-sample:nbody命令下载cuda-sample镜像,然后把cuda-sample.tar复制到无网的机器上。

在无网的机器上使用以下命令加载镜像并测试:

Terminal window
docker load -i cuda-sample.tar
docker run --rm --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
给无网络环境的RedHat配置Docker和CUDA
https://blog.xiaobaizhang.top/posts/redhat-offline/
作者
张小白
发布于
2025-06-25
许可协议
CC BY-NC-SA 4.0