前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >docker中如何使用GPU

docker中如何使用GPU

原创
作者头像
Sync
修改2025-02-25 15:54:34
修改2025-02-25 15:54:34
8890
举报

前提条件:

1. 系统已经安装好GPU驱动,CUDA,这里使用腾讯云自动安装驱动来安装GPU驱动和CUDA

2. 已安装NVIDIA Docker 工具,对于 NVIDIA Docker 工具这里介绍两种:nvidia-container-toolkit 和 nvidia-docker2 。

nvidia-docker2 是一个较早的解决方案,它包括 nvidia-docker 插件和 nvidia-container-runtime,nvidia-docker2 通过修改 Docker 的默认运行时为 nvidia-container-runtime,自动地将 NVIDIA 驱动和库文件注入到容器中,这样容器就可以访问宿主机上的 GPU。

nvidia-container-toolkit 是一个更新的解决方案,是 nvidia-docker2 的替代品,提供了更为现代和灵活的方式来在 Docker 容器中使用 NVIDIA GPU。

nvidia-container-toolkit 包括 nvidia-container-runtime 和 nvidia-container-toolkit(替代了 nvidia-docker)。使用 nvidia-container-toolkit 时,不需要使用特殊的命令来启动容器。相反,可以直接使用标准的 docker 命令,并通过 --gpus 标志来指定 GPU 访问,例如 docker run --gpus all ...。这是因为 nvidia-container-toolkit 将 GPU 支持集成到 Docker 的原生功能中。

1. 先安装docker并启动docker

代码语言:bash
复制
apt install -y docker.io
systemctl start docker

2. 执行sudo -i 切换到root,然后粘贴下面命令配置源

代码语言:bash
复制
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

3. 配置实验性软件包,这一步跳过也可以

代码语言:bash
复制
sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list

4. 更新源

代码语言:bash
复制
apt-get update

4. 安装

代码语言:bash
复制
apt-get install -y nvidia-container-toolkit
安装过程中如弹性图片,按Tab键切换到ok,然后回车即可
安装过程中如弹性图片,按Tab键切换到ok,然后回车即可

5. 重启docker

代码语言:bash
复制
systemctl restart docker

6. 验证

代码语言:bash
复制
docker run --rm -it --gpus all ubuntu nvidia-smi

常见问题:

docker拉镜像很慢,这种是因为docker HUB仓库在国外,由于国内外存在一些跨境网络影响,这种是正常现象。

至此,完成。

可以将docker的加速地址更换为国内的,用腾讯云或者清华的都行 ,这里用腾讯云的地址:

vim /etc/docker/daemon.json 打开文件加入对应地址,然后重启docker

代码语言:bash
复制
{
   "registry-mirrors": [
   "https://mirror.ccs.tencentyun.com"
  ]
}
#或清华
{
   "registry-mirrors": [
   "https://docker.mirrors.ustc.edu.cn"
  ]
}

下面是nvidia-docker的安装,由于nvidia-docker较老,就简单整理下命令:

代码语言:bash
复制
#添加 NVIDIA Docker 的官方存储库
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
apt-get update
#安装nvidia-docker2
apt-get install -y nvidia-docker2
systemctl restart docker

这里如果机器没有访问公网的能力,可以先按照下面的方案解决,两种方案:

方案一:

找个能上网的gpu机器,配置好nvidia-container-toolkit源后, 通过 yum install --downloadonly nvidia-container-toolkit --downloaddir=/tmp/test,将安装包下载到一个临时目录/tmp/test下,然后把安装包拷贝到了没有公网的gpu机器上,然后执行 rpm -ivh *.rpm即可。

方案二:

执行下面命令,通过下载各个软件包进行安装。腾讯云的服务器支持通过内网访问mirrors.tencent.com地址。

代码语言:bash
复制
mkdir test && cd test
wget https://mirrors.tencent.com/nvidia-cuda/rhel8/x86_64/libnvidia-container1-1.17.4-1.x86_64.rpm
wget https://mirrors.tencent.com/nvidia-cuda/rhel8/x86_64/libnvidia-container-tools-1.17.4-1.x86_64.rpm
wget https://mirrors.tencent.com/nvidia-cuda/rhel8/x86_64/nvidia-container-toolkit-1.17.4-1.x86_64.rpm
wget https://mirrors.tencent.com/nvidia-cuda/rhel8/x86_64/nvidia-container-toolkit-base-1.17.4-1.x86_64.rpm
rpm -ivh *.rpm

文档功底浅薄,大家在参考中发现问题时,请在评论区标注出来。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前提条件:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档