docker环境安装Nvidia-container-runtime

docker环境安装Nvidia-container-runtime
1.对于已经安装好docker的CentOS系统

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.repo | sudo tee /etc/yum.repos.d/nvidia-container-runtime.repo
yum install nvidia-container-runtime -y

2.对于已经安装好docker的Ubuntu系统

(1). 首先配置nvidia源

curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | \
  sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
sudo apt-get update

(2). 参考https://gitee.com/wuxler/nvidia-container-runtime?_from=gitee_search 安装nvidia-container-runtime

sudo apt-get install nvidia-container-runtime
systemctl stop docker
把运行时添加到docker中:
dockerd --add-runtime=nvidia=/usr/bin/nvidia-container-runtime

创建容器后,执行

nvidia-smi

如果正常会有gpu信息

Docker退出容器不关闭容器的方法
docker 以交互式的方式启动容器后,如果使用exit退出交互界面后,整个容器都会exit 。但是如何使我们退出交互模式的同时不关闭容器呢,那就是在要退出交互模式时不使用exit还是使用命令 Ctrl+P+Q

如何进入运行中的docker容器

docker exec -i -t 容器ID或名字 /bin/bash

修改docker的默认安装目录
详情见:修改dockers的默认安装目录

docker运行命令

docker run -it -v **/test:/soft** -p 80:22 --gpus all centos /bin/bash
  • -v参数表示的是挂载宿主机的一个目录,冒号’:'前面的目录是宿主机目录,后面的目录是容器内的目录。
  • -i参数表示的是交互式操作
  • -t参数表示的是终端
  • -p参数可以制定要映射的ip和端口,但是在一个指定端口上只可以绑定一个容器,这里是将本地的80端口映射到容器的22端口
  • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

删除容器

docker rm -f 1e560fca3906

删除镜像

docker rmi hello-world
<think>嗯,用户想在CentOS 7上离线安装NVIDIA Container Runtime,但环境没有网络连接。首先,我需要回忆一下NVIDIA Container Runtime的依赖关系。根据之前的引用,用户提到需要安装nvidia-container-toolkit而不是nvidia-docker2,因为后者已经被弃用了[^2]。还有,安装过程中可能需要libnvidia-container等库,引用[1]提到libnvidia-containerNVIDIA容器运行时的基础库,所以这个肯定是必须的。 接下来,用户的环境是离线的,所以必须手动下载所有相关的RPM包。通常这些包可以在有网络的相同系统上下载,然后传输到离线机器上安装。步骤大概包括:在有网络的CentOS 7机器上添加NVIDIA的仓库,使用yumdownloader或者repotrack下载所有依赖包,然后复制到离线机器上用yum localinstall安装。 不过需要注意,离线安装时可能会有依赖问题,比如某些包可能需要特定版本的库。所以可能需要下载所有依赖项,包括可能的间接依赖。另外,安装顺序也很重要,可能需要先安装libnvidia-container,然后是nvidia-container-toolkit,最后是nvidia-container-runtime,根据引用[4]中的步骤,他们提到了添加仓库和启用实验性分支,但离线的话这些步骤无法执行,只能手动处理。 另外,用户提到的是CentOS 7,所以需要确认下载的RPM包是否兼容该版本。例如,在引用[4]中,distribution变量是基于/etc/os-release生成的,所以需要确保下载的包对应CentOS 7的版本号,比如centos7。 然后,配置Docker使用nvidia作为运行时,这部分可能需要编辑/etc/docker/daemon.json文件,添加runtime参数,然后重启docker服务。但如果在安装过程中某些步骤缺失,可能会导致错误,比如引用[3]提到的Unknown runtime specified nvidia错误,可能是因为配置不正确或者没有正确安装运行时。 总结步骤应该是: 1. 在有网络的机器上下载所有必需的RPM包。 2. 传输到离线环境。 3. 按顺序安装这些包。 4. 配置Docker使用nvidia运行时。 5. 验证安装是否成功。 需要确保所有依赖都被正确下载,特别是libnvidia-containernvidia-container-toolkit和nvidia-container-runtime。此外,可能需要检查内核版本和NVIDIA驱动是否已经安装,因为容器运行时可能依赖主机上的驱动。 还有,用户可能需要先安装NVIDIA驱动和CUDA,如引用[4]中的步骤,但用户的问题是关于容器运行时的离线安装,所以假设驱动已经装好。不过可能需要确认这一点,因为容器运行时需要NVIDIA驱动支持。 最后,测试安装是否成功可以通过运行一个简单的容器命令,比如nvidia-smi,或者使用nvidia-container-cli工具来检查配置是否正确。如果出现错误,可能需要检查日志或者重新确认安装步骤。</think>### 分步解答:CentOS 7离线安装NVIDIA Container Runtime #### 一、前期准备 1. **获取离线安装包**(需在有网络的CentOS 7环境操作): ```bash # 添加NVIDIA仓库(需联网) distribution="centos7" sudo yum install -y yum-utils sudo rpm --install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-20.10.9-3.el7.x86_64.rpm sudo yum-config-manager --add-repo=https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.repo # 下载依赖包(关键组件) repotrack --download_path=./nvidia-container-runtime-pkgs \ libnvidia-container \ libnvidia-container-tools \ nvidia-container-toolkit \ nvidia-container-runtime ``` 生成的`nvidia-container-runtime-pkgs`目录包含所有依赖项[^1][^4]。 2. **传输安装包**: 将目录通过U盘/内网工具复制到离线环境的`/tmp/nvidia-container-runtime-pkgs` #### 二、离线安装步骤 ```bash # 1. 安装基础依赖 sudo yum localinstall -y /tmp/nvidia-container-runtime-pkgs/libnvidia-container*.rpm # 2. 安装核心组件 sudo yum localinstall -y /tmp/nvidia-container-runtime-pkgs/nvidia-container-toolkit*.rpm sudo yum localinstall -y /tmp/nvidia-container-runtime-pkgs/nvidia-container-runtime*.rpm # 3. 配置Docker运行时 sudo tee /etc/docker/daemon.json <<EOF { "runtimes": { "nvidia": { "path": "/usr/bin/nvidia-container-runtime", "runtimeArgs": [] } } } EOF # 4. 重启服务 sudo systemctl restart docker ``` #### 三、验证安装 ```bash # 检查容器运行时是否识别GPU docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi ``` 若输出GPU信息则成功[^3]。 #### 四、常见问题处理 - **依赖冲突**:若出现`Error: Package X requires Y but none available`,需补充缺失的依赖包到离线目录 - **运行时未识别**:检查`/etc/docker/daemon.json`格式,确保无语法错误
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值