容器使用nvidia

  1. 安装docker
  2. 安装nvidia的驱动
  3. 安装nvidia-docker2
  4. 使用命令进行启动

提示: 宿主机没必要安装cuda和cudnn的包,build的时候不能使用--runtime=nvidia,要构建镜像的时候使用nvidia,文档下方有解释

在centos部署nvidia

切换到命令行

init 3

安装依赖,默认的gcc版本不够,使用devtoolset-9,可以安装kernel5.x版本

yum -y install gcc kernel kernel-devel
# yum -y install centos-release-scl
# yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
# scl enable devtoolset-9 bash临时使用
# echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile 长期使用

关闭集显

sed -i 's@blacklist nvidiafb@#blacklist nvidiafb@g' /lib/modprobe.d/dist-blacklist.conf
echo blacklist nouveau >> /lib/modprobe.d/dist-blacklist.conf
echo options nouveau modeset=0 >> /lib/modprobe.d/dist-blacklist.conf
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
/usr/sbin/dracut /boot/initramfs-$(uname -r).img $(uname -r)

关闭集显后需要重启服务器

reboot

检查集显是否关闭成功

lsmod | grep nouveau

安装驱动

# 驱动下载地址https://www.geforce.cn/drivers
# 请选择自己需要的版本号
# 需要加上权限
#source /opt/rh/devtoolset-9/enable
chmod +x NVIDIA-Linux-x86_64-418.67.run
# 不使用命令 直接复制 上面地址也可以在浏览器直接下载
./NVIDIA-Linux-x86_64-418.67.run --no-opengl-files
./NVIDIA-Linux-x86_64-418.67.run --no-opengl-files -s # 静默安装

安装nvidia-docker2

https://github.com/NVIDIA/nvidia-docker github,可以在readme就轻松找到安装内容

以下是针对centos7的部署

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

yum install -y nvidia-container-toolkit nvidia-docker2
systemctl restart docker

安装之后会配置好/etc/docker/daemon.json

# 暂无机器,

修改后

{
"insecure-registries":[],
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"],
"max-concurrent-downloads": 10,
"max-concurrent-uploads": 20,
"default-runtime": "nvidia",
"runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    }

}
# 启动命令
# 方式1
nvidia-docker run -it --runtime=nvidia ubuntu:16.04 bash
# 方式2
nvidia-docker run -it -e NVIDIA_VISIBLE_DEVICES=all ubuntu:16.04 bash
# 方式3
# 在daemon.json配置了 default-runtime=“nvidia”
docker run -it -e NVIDIA_VISIBLE_DEVICES=all ubuntu:16.04 bash

# build 镜像(还需要自行测试)
nvidia-docker build -t nvidia-test:v1 .
docker build -e NVIDIA_VISIBLE_DEVICES=all -t nvidia-test:v1 .

参考文档:

http://www.vpser.net/manage/centos-6-upgrade-gcc.html

Copyright © hankbook.cn 2020 all right reserved,powered by Gitbook该文件修订时间: 2022-08-08 09:48:50

results matching ""

    No results matching ""