• ubuntu20.04中安装配置docker nvidia容器来实现宿主机GPU的调用


    配置并安装docker

    在 Ubuntu 上安装 Docker 非常直接。我们将会启用 Docker 软件源,导入 GPG key,并且安装软件包。
    (这里指推荐使用官方的安装方法,snap的方法不推荐,各种命令不是很通用)
    1、首先,更新软件包索引,并且安装必要的依赖软件,来添加一个新的 HTTPS 软件源:

    sudo apt update
    sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
    
    • 1
    • 2

    2、使用下面的 curl 导入源仓库的 GPG key:

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
    • 1

    3、将 Docker APT 软件源添加到你的系统:

    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    
    • 1

    4、现在,Docker 软件源被启用了,你可以安装软件源中任何可用的 Docker 版本。

    sudo apt update
    sudo apt install docker-ce docker-ce-cli containerd.io
    
    • 1
    • 2

    5、想要安装 Docker 最新版本,运行下面的命令。如果你想安装指定版本,跳过这个步骤,并且跳到下一步。

    sudo apt update
    apt list -a docker-ce
    
    • 1
    • 2
    sudo apt install docker-ce=<VERSION> docker-ce-cli=<VERSION> containerd.io
    
    • 1

    6、一旦安装完成,Docker 服务将会自动启动。你可以输入下面的命令,验证它:

    sudo systemctl status docker
    
    • 1

    输出将会类似下面这样:

    ● docker.service - Docker Application Container Engine
         Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: en>
         Active: active (running) since Sun 2023-04-16 02:27:44 UTC; 33s ago
    TriggeredBy: ● docker.socket
           Docs: https://docs.docker.com
       Main PID: 6777 (dockerd)
          Tasks: 11
         Memory: 29.1M
         CGroup: /system.slice/docker.service
                 └─6777 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containe>
    
    Apr 16 02:27:43 jc0786 dockerd[6777]: time="2023-04-16T02:27:43.429784929Z" level=i>
    Apr 16 02:27:43 jc0786 dockerd[6777]: time="2023-04-16T02:27:43.479114229Z" level=i>
    Apr 16 02:27:43 jc0786 dockerd[6777]: time="2023-04-16T02:27:43.991187022Z" level=i>
    Apr 16 02:27:44 jc0786 dockerd[6777]: time="2023-04-16T02:27:44.089426281Z" level=i>
    Apr 16 02:27:44 jc0786 dockerd[6777]: time="2023-04-16T02:27:44.126231191Z" level=w>
    Apr 16 02:27:44 jc0786 dockerd[6777]: time="2023-04-16T02:27:44.126292878Z" level=i>
    Apr 16 02:27:44 jc0786 dockerd[6777]: time="2023-04-16T02:27:44.126420656Z" level=i>
    Apr 16 02:27:44 jc0786 dockerd[6777]: time="2023-04-16T02:27:44.153000389Z" level=i>
    Apr 16 02:27:44 jc0786 systemd[1]: Started Docker Application Container Engine.
    
    ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    7、当一个新的 Docker 发布时,你可以使用标准的sudo apt update && sudo apt upgrade流程来升级 Docker 软件包。

    如果你想阻止 Docker 自动更新,锁住它的版本:

    sudo apt-mark hold docker-ce
    
    • 1

    安装docker-nvidia(启动容器调用显卡必备项)

    1、添加软件包存储库(不要重复添加,添加后会报错要删除)

    curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
     
    distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
     
    curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
     
    sudo apt-get update
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2、安装Nvidia-Docker2
    安装 nvidia-docker2 软件包并重新加载 docker 守护程序配置:

    sudo apt-get install -y nvidia-docker2
     
    sudo pkill -SIGHUP dockerd
    
    • 1
    • 2
    • 3

    3、进行测试

    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
    • 1
    • 2

    4、下载镜像文件测试
    run的时候一定要加–gpus all的参数

    docker run --rm --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
    
    • 1

    修改docker数据保存路径(强烈建议修改,要不后面会很麻烦)

    1、停止docker服务

    sudo systemctl stop docker
    
    • 1

    如果有提示soket服务进行,继续停止相关的服务

    sudo systemctl stop docker.soket
    
    • 1

    2、创建新的docker保存目录(建议数据盘)

    sudo mkdir /data/docker
    
    • 1

    3、修改配置文件(没有该文件的新建一个)

    sudo nano /etc/docker/daemon.json
    
    • 1

    将以下内容复制粘贴到文件中,并将其中的 /data/docker 替换为实际的数据存储路径:

    {
      "data-root": "/data/docker"
    }
    
    • 1
    • 2
    • 3

    4、保存并关闭配置文件

    5、启动 Docker 服务

    sudo systemctl start docker
    
    • 1

    6、测试验证
    确认 Docker 数据存储路径是否已经修改成功:

    docker info | grep 'Docker Root Dir'
    
    • 1
  • 相关阅读:
    2023-09-11 LeetCode每日一题(课程表 III)
    一文带你了解线程池原理
    30分钟学会如何使用Shiro
    thread_local 线程变量存储.tbss段或.tdata段
    (一)数据结构绪论
    官宣!2024影响因子即将公布,或将迎来这些重大变化!
    【ACWing】3429. 全排列
    Python 与 Qt c++ 程序共享内存,传递图片
    【内网安全】——Linux信息收集
    MyCat分片水平拆分
  • 原文地址:https://blog.csdn.net/qq_36302310/article/details/136619461