如何在GPU上安装使用Docker

发布于:2025-08-08 ⋅ 阅读:(12) ⋅ 点赞:(0)

这里以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.sh
 sudo 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即可


网站公告

今日签到

点亮在社区的每一天
去签到