diff --git a/nerdctl/setup_nvidia_docker_containerd_rootless.sh b/nerdctl/setup_nvidia_docker_containerd_rootless.sh index 9a47e90..e988f0e 100755 --- a/nerdctl/setup_nvidia_docker_containerd_rootless.sh +++ b/nerdctl/setup_nvidia_docker_containerd_rootless.sh @@ -33,6 +33,29 @@ configure_nvidia_ctk() { # 配置 nvidia-ctk 到 rootless 模式下的 config.toml nvidia-ctk runtime configure --runtime=containerd --config="$HOME/.config/containerd/config.toml" + + # 如果没有 /etc/nvidia-container-runtime/config.toml,则生成默认配置 + if [ ! -f /etc/nvidia-container-runtime/config.toml ]; then + sudo nvidia-ctk config --set default-runtime --config=/etc/nvidia-container-runtime/config.toml + fi + + # 配置 NVIDIA 共享库路径,确保加载 GPU 驱动 + echo "/usr/lib/x86_64-linux-gnu" | sudo tee /etc/ld.so.conf.d/nvidia.conf + sudo ldconfig + + # 添加 nvidia-container-cli 到 PATH + echo 'export PATH=$PATH:/usr/bin' >> ~/.profile + source ~/.profile +} + +# 启用 cgroup v2 支持和权限调整 +configure_cgroup_v2() { + echo "配置 cgroup v2 支持..." + sudo chmod -R 755 /sys/fs/cgroup + sudo chown -R $(whoami) /sys/fs/cgroup + sudo mkdir -p /etc/cni/tuning + sudo touch /etc/cni/tuning/allowlist.conf + sudo chmod 644 /etc/cni/tuning/allowlist.conf } # 重启 containerd 服务 @@ -47,6 +70,7 @@ restart_containerd() { # 执行所有步骤 install_nvidia_docker configure_nvidia_ctk +configure_cgroup_v2 restart_containerd echo "所有步骤已完成,NVIDIA Docker 和 containerd 配置已更新。"