首页 > 其他分享 >docker配置Nvidia环境,使用GPU

docker配置Nvidia环境,使用GPU

时间:2024-04-25 09:12:04浏览次数:26  
标签:Nvidia sudo apt ce nvidia GPU docker

前言

需要 nvdia driver 安装好,请参考 Ubuntu Nvidia driver驱动安装及卸载

docker 安装

配置 apt 阿里云的镜像源

sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

配置

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

安装 dockernvidia-docker2

sudo apt-get update
apt install docker-ce docker-ce-cli
sudo apt-get install -y nvidia-docker2

如果你只用docker,这一步不用操作。

但如果你是 k8s 环境 需要配置 cgroupdriver 改使用 systemd

# Set up cgroupdriver
cat > /etc/docker/daemon.json << EOF 
{
    "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

设置 docker 开机自启,重启加载 docker 配置

systemctl enable docker
systemctl restart docker

测试docker是否占用gpu

docker 中使用 gpu,必须在创建容器时打开 --gpus 参数,并保证 docker 的版本在 19.03 以上。

运行一个基本的CUDA容器来测试是否配置完成

sudo docker run --rm --runtime=nvidia --gpus all  nvidia/cuda:12.0.1-runtime-ubuntu22.04 nvidia-smi

输出如下所示,就代表你的容器以及支持GPU:

Thu Apr 25 08:53:22 2024
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.154.05             Driver Version: 535.154.05   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  Tesla T4                       Off | 00000000:00:05.0 Off |                    0 |
| N/A   39C    P0              25W /  70W |    105MiB / 15360MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A   3812267      C   /usr/local/bin/python                       100MiB |
+---------------------------------------------------------------------------------------+

标签:Nvidia,sudo,apt,ce,nvidia,GPU,docker
From: https://www.cnblogs.com/niuben/p/18155185

相关文章

  • Containerd 配置使用 Nvidia container runtime
    前言Kubernetes集群中Docker如何使用GPU,请看这一篇docker配置Nvidia环境,使用GPU本文着重讲Containerd如何作为容器运行时来使用GPUnvidia-container-runtimenvidia-container-runtime是在runc基础上多实现了nvidia-container-runime-hook(现在叫nvidia-containe......
  • docker - [09] 镜像详解
    题记部分  一、镜像是什么  镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,还包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。如果得到镜像:1、从远程仓库下载2、朋友拷贝给你3、自己制作一个镜像Do......
  • Docker 数据卷
    概念:将docker容器内的数据保存进宿主机的磁盘中,运行一个带有容器卷存储功能的容器实例命令:dockerrun-it--privilege=true-v/宿主机绝对路径目录:/容器内目录镜像名作用:将运用与运行的环境打包镜像,run后形成容器实例运行,但是我们对数据的要求希望是持久化的Docker容器......
  • docker 镜像
    是什么镜像是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),这个打包好的运行环境就是image镜像文件。只有通过这个镜像文件才能生成Docker容器实......
  • C# 项目 docker 部署
    开发环境.netsdkversion:8.0https://learn.microsoft.com/en-us/dotnet/core/docker/publish-as-container?pivots=dotnet-8-0修改csproj文件,添加以下内容<ProjectSdk="Microsoft.NET.Sdk.Web"><PropertyGroup><DockerDefaultTarg......
  • 普通用户权限运行docker
    docker安装后默认权限是管理员,在Ubuntu系统中需要使用sudo命令,但是很多时候docker的拉取操作都是写在脚步里面的,因此执行的时候十分的难搞,如果给脚本sudo权限后那么整个的环境路径都会改变,但是不给就需要手动在脚本中找到docker操作并手动加上sudo命令,因此很多时候我们需要给普通......
  • windows 11系统下打开docker 提示 docker engine stopped
    windows11系统下打开docker提示dockerenginestopped参考链接:https://zhuanlan.zhihu.com/p/663821762装好了dockerforwindows以后,点开发现界面中心一直提示dockerenginestopped,按照很多方法都不行,后面再知乎的一个专栏里面找到了解决方法总结来说就是检查几个内容(以......
  • 6.prometheus监控--监控docker
    4.监控docker为了能够获取到Docker容器的运行状态,用户可以通过Docker的stats命令获取到当前主机上运行容器的统计信息,可以查看容器的CPU利用率、内存使用量、网络IO总量以及磁盘IO总量等信息。dockerstats#除了使用命令以外,用户还可以通过Docker提供的HTTPAPI查看容器详......
  • Docker 发布镜像
    在GitHub发布Docker镜像在GitHub上创建一个personalaccesstoken(classic)在DockerCLI中登录到GitHubContainerRegistryexportCR_PAT=YOUR_TOKENecho$CR_PAT|dockerloginghcr.io-uUSERNAME--password-stdin将YOUR_TOKEN和USERNAME替换为你自......
  • Docker从入门到精通:Docker 容器数据卷详解
    前言在Docker中,数据卷(Volume)是一种可用于持久化存储数据的重要机制。它允许容器与宿主机之间或者容器之间共享数据,并且能够保留数据,即使容器被删除也不会丢失。本文将介绍Docker容器数据卷的基本概念、用法以及一些实用技巧。什么是Docker容器数据卷?Docker容器数据卷是......