当前位置: 首页 > news >正文

如何在GPU上安装使用Docker

这里以Debian操作系统为例

Debian Docker 安装

Debian Docker 安装 | 菜鸟教程

卸载旧版本
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
使用官方安装脚本自动安装
 curl -fsSL https://get.docker.com -o get-docker.shsudo sh get-docker.sh
遇到报错

这块是cuda仓库的问题,阿里的处理了

apt命令解释
sudo apt update

更新本地软件包列表,让系统知道有哪些软件可以安装、更新、升级(只更新列表,不安装升级)

sudo apt upgrade

系统才会真正去下载并安装新版本

Nvidia Toolkit安装

NVIDIA 为容器环境(如 Docker)开发的工具集,让容器里的应用可以使用主机的 NVIDIA GPU 进行加速计算,比如用来训练深度学习模型

image-20250805175433289

Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit

Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit

# 安装必要的依赖
sudo apt-get install -y curl ca-certificates gnupg
# 清理旧的密钥和仓库配置(如有)
sudo rm -f /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo rm -f /etc/apt/trusted.gpg.d/nvidia-container-toolkit-keyring.gpg
# 添加NVIDIA官方GPG密钥(使用新的推荐方式)
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
# 添加适用于Debian Bookworm的仓库,这个结果可能不行,没测是啥
curl -s -L https://nvidia.github.io/libnvidia-container/debian/libnvidia-container.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
sudo rm /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo nano /etc/apt/sources.list.d/nvidia-container-toolkit.list
在文件中添加以下内容(适用于Debian Bookworm):deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/stable/debian11/amd64 /
deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/experimental/debian11/amd64 /
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
sudo chmod 644 /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

本来是两行

deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/stable/debian11/amd64 / deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/experimental/debian11/amd64 /

但下面不稳定,所以注释掉

Docker使用

Overview — NVIDIA Container Toolkit

镜像拉取

当我们在本地主机上使用一个不存在的镜像时 Docker 就会自动下载这个镜像。如果我们想预先下载这个镜像,我们可以使用 docker pull 命令来下载它

docker pull \
modelscope-registry.cn-hangzhou.cr.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.1.0-py311-torch2.3.1-tf2.16.1-1.28.0
使用GPU启动访问容器
docker run -it --rm \
--gpus all \
modelscope-registry.cn-hangzhou.cr.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.1.0-py311-torch2.3.1-tf2.16.1-1.28.0 \
bash
不带GPU启动容器
docker run -it --rm \
modelscope-registry.cn-hangzhou.cr.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.1.0-py311-torch2.3.1-tf2.16.1-1.28.0 \
bash
测试容器能否正常使用python环境
vim test.py
import torch
# 创建一个 3x2 矩阵,未初始化
x = torch.empty(3, 2)
print(x)
# 创建一个0填充的矩阵,指定数据类型
x = torch.zeros(3, 2, dtype=torch.long)
print(x)
# 使用指定数据创建tensor
x = torch.tensor([3.2, 3])
print(x)
python环境下测试容器内GPU能否正常使用
 
python
import torch 
print(torch.cuda.is_available())
显示True即可

http://www.lryc.cn/news/613520.html

相关文章:

  • SupChains团队:订单生产型供应链销量预测建模案例分享(六)
  • 容器之王--Docker的部署及基本操作演练
  • vLLM:彻底改变大型语言模型推理延迟和吞吐量
  • Aurora MySQL 8.0 性能分析账号创建完整指南
  • 神经网络入门指南:从零理解 PyTorch 的核心思想
  • 跨境电商增长突围:多维变局下的战略重构与技术赋能
  • 从“数字网格”到“空中交警” :星图低空云如何重构低空管理?
  • 鸿蒙 - 分享功能
  • MySql MVCC的原理总结
  • 软件加密工具-DSProtector使用说明
  • 2025年华数杯C题超详细解题思路
  • 旅游mcp配置(1)
  • 多场景两阶段分布式鲁棒优化模型、数据驱动的综合能源系统
  • pybind11 的应用
  • C语言feof函数详解:文件末尾检测的实用工具
  • 【华为机试】113. 路径总和 II
  • 计算机网络1-5:计算机网络的性能指标
  • CSS--:root指定变量,其他元素引用
  • [安卓按键精灵开发工具]本地数据库的初步学习
  • 剑指offer第2版——面试题1:赋值运算符函数
  • CPTS Remote 复现
  • react-router/react-router-dom
  • 深度学习中主要库的使用:(一)pandas,读取 excel 文件,支持主流的 .xlsx/.xls 格式
  • 房产证识别在房产行业的技术实现及应用原理
  • 超高车辆如何影响城市立交隧道安全?预警系统如何应对?
  • 网络基础概念
  • 基于Qt的Live2D模型显示以及控制
  • ora-01658 无法为表空间 users中的段创建initial区
  • RocketMQ架构解析
  • 遥感卫星领域的AI应用