• nvidia-docker(GPU)和存储驱动(storage_driver)


    一、docker使用nvidia  GPU

    1、nvidia-docker2

    安装使用NVIDIA-Docker--使用GPU的Docker容器

    https://blog.csdn.net/qq_31747765/article/details/108922204
    

    2、nvidia-container-toolkit

    最新版的nvidia-docker就是nvidia-container-toolkit,比nvidia-docker2更加优秀

    官方的解释是"Usage of nvidia-docker2 packages are deprecated since NVIDIA GPUs are now natively supported as devices in the Docker runtime"。(机翻:不赞成使用nvidia-docker2包,因为nvidia GPU现在在Docker运行时本机作为可支持设备)

    nvidia-container-toolkit需要主机已安装当前新版的docker 19.03

    使用nvidia-container-toolkit的最大优点:

    linux主机不需要安装cuda和cudnn,仅安装显卡驱动即可(tensorflow和nvidia-docker官方均强调这一点)

    3、实操

    设置下载源

    yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
    
    curl -s -L https://nvidia.github.io/nvidia-docker/centos7/x86_64/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo  
    

    补充:有的网址是自动跳转的。curl使用 -L 参数,curl 就会跳转到新的网址。-s, --silent Silent mode. Don't output anything静默不输出信息

    检测显卡驱动和型号

    $ sudo yum install nvidia-detect
    
    $ nvidia-detect -v
    Probing for supported NVIDIA devices...
    [10de:1e04] NVIDIA Corporation TU102 [GeForce RTX 2080 Ti]
    This device requires the current 440.64 NVIDIA driver kmod-nvidia
    [1af4:1050] Red Hat, Inc. Virtio GPU
    

    4、下载对应版本的显卡驱动

    NIVID官网:http://www.geforce.cn/drivers
    

    5、查找可安装的nvidia docker版本

    yum search --showduplicates nvidia-docker
    

    下载的时候,在手动搜索驱动程序中,大致勾选自己机器的类型,然后查找到跟步骤3检测到的型号对应的版本进行下载

     nvidia-docker配置如下:

    $ cat /etc/docker/daemon.json
    {
      "registry-mirrors": ["https://xxxxxxx"],   #替换成自己的harbor仓库地址
      "live-restore": true,
      "default-shm-size": "128M",
      "max-concurrent-downloads": 10,
      "oom-score-adjust": -1000,
      "debug": false,
      "exec-opts": ["native.cgroupdriver=cgroupfs"],
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "20m",
        "max-file": "3"
      },
      "storage-driver": "overlay2",
      "default-runtime": "nvidia",
      "storage-opts": [
        "overlay2.override_kernel_check=true"
      ],
      "runtimes": {
        "nvidia": {
          "path": "/usr/bin/nvidia-container-runtime",
          "runtimeArgs": []
        }
      }
    }
    

    注意:

    1、如果您有自定义/etc/docker/daemon.json,则nvidia-docker2程序包会覆盖它,可能导致docker 原有的 volume配置会全部丢失。

    2、内核问题,centos7内核3.10.0-957.el7.x86_64适配成功过,若是不满足,请升级内核

    # 资料 https://unix.stackexchange.com/questions/115289/driver-install-kernel-source-not-found
    yum -y install kernel-devel kernel-header
    

    二、docker的存储驱动

    https://docs.docker.com/storage/storagedriver/select-storage-driver/   官网说明

    1、docker支持的存储驱动

    理想情况下,很少有数据写入到容器的可写层,并且您使用Docker卷来写入数据。但是,某些工作负载要求您能够写入容器的可写层。这是存储驱动程序进入的地方。

    Docker支持以下存储驱动程序:

    • overlay2 是当前所有受支持的Linux发行版的首选存储驱动程序,不需要任何额外的配置
    • aufs是在内核3.13上的Ubuntu 14.04上运行的Docker 18.06及更早版本的首选存储驱动程序,而该内核不支持overlay2
    • devicemapper支持,但是direct-lvm对于生产环境是必需的,因为loopback-lvm零配置虽然性能很差。devicemapper是CentOS和RHEL的推荐存储驱动程序,因为它们的内核版本不支持overlay2。但是,当前版本的CentOS和RHEL现在支持overlay2,这是推荐的驱动程序。
    • 如果btrfszfs驱动程序是后备文件系统(安装了Docker的主机的文件系统),则使用它们。这些文件系统允许使用高级选项,例如创建“快照”,但需要更多的维护和设置。这些中的每一个都依赖于正确配置的后备文件系统。
    • vfs存储驱动程序用于测试目的,以及无法使用写时复制文件系统的情况。此存储驱动程序的性能很差,通常不建议在生产中使用

    2、Supported backing filesystems

    3、centos7使用overlay2

    centos7中 xfs类型的文件系统,使用 xfs_info / ,ftype=1才支持overlay2,如果是0则不支持

    $ xfs_info /
    meta-data=/dev/sda3 isize=512 agcount=4, agsize=3080064 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=12320256, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=6015, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0

    centos 系统使用overlay,所以如果是xfs的文件系统,需要重新格式化

    系统默认格式化xfs是没有这个参数的,所以需要重新格式化添加参数,才能支持

    mkfs.xfs -n ftype=1 /dev/sdxxxx
    

    如果是kickstart 安装的系统,用如下命令:

    logvol / --fstype xfs --mkfsoptions='-n ftype=1'
    

    注意:

    1、如果用kickstart,iso/initd.img/vmlinuz 必须是同一版本

    2、修改驱动之前做好数据备份!!!!!

    参考:

    https://blog.csdn.net/qq_42294701/article/details/102863800  NVIDIA Docker2安装教程及踩坑历险记

    https://blog.csdn.net/guaxiaoqian/article/details/100662971   GPU机器CentOS环境安装nvidia驱动,部署docker环境教程

    https://blog.csdn.net/a632189007/article/details/78801166    Nvidia-Docker安装使用 -- 可使用GPU的Docker容器

    https://blog.csdn.net/u011698800/article/details/109548440   Centos8安装英伟达显卡驱动并通过docker部署深度学习环境

    https://blog.csdn.net/u011698800/article/details/107607187   Docker部署容器使用GPU并搭建jupyter环境

    https://www.jianshu.com/p/f25ccedb996e   安装NVIDIA-DOCKER

    https://gitlab.com/nvidia    比较齐全

    https://mp.weixin.qq.com/s/vRW0o6zauwgUTomElaoPOg    k8s中使用GPU

    https://www.jianshu.com/p/f25ccedb996e    安装NVIDIA-DOCKER(ubantu)

    https://lxkaka.wang/docker-nvidia/   容器中使用 GPU 的基础环境搭建

    https://blog.csdn.net/moshenglv/article/details/90342907    Docker之几种storage-driver比较

    centos7 nvidia驱动安装失败问题的解决办法

    https://blog.csdn.net/lwhsyit/article/details/82774438

  • 相关阅读:
    shell习题第21题:计算数字的个数
    shell习题第20题:统计文件大小
    萌新小白
    编程第一天
    萌新报道
    linux下安装php扩展pdo_oci和oci8
    安装Hadoop伪分布式踩过的坑
    zabbix安装过程
    MySQL_索引
    mysql复制
  • 原文地址:https://www.cnblogs.com/zjz20/p/14014627.html
Copyright © 2020-2023  润新知