在 wsl-ubuntu 里通过 docker 启动 gpu-jupyter

在 wsl-ubuntu 里通过 docker 启动 gpu-jupyter

  • [0. 背景](#0. 背景)
  • [1. 安装 docker-ce](#1. 安装 docker-ce)
  • [2. 安装 NVIDIA Container Toolkit](#2. 安装 NVIDIA Container Toolkit)
  • [3. 使用 nvidia-ctk 命令配置容器运行](#3. 使用 nvidia-ctk 命令配置容器运行)
  • [4. 通过 docker 运行 nvidia-smi](#4. 通过 docker 运行 nvidia-smi)
  • [5. 运行 gpu-jupyter](#5. 运行 gpu-jupyter)
  • [6. 访问 gpu-jupyter](#6. 访问 gpu-jupyter)
  • [7. 测试 gpu-jupyter 是否可以访问 cuda](#7. 测试 gpu-jupyter 是否可以访问 cuda)

0. 背景

今天突然想尝试一下在 wsl-ubuntu 里通过 docker 启动支持 gpu 的 jupyter,那就开始着手干吧。

1. 安装 docker-ce

在 wsl-ubuntu 里面安装 docker-ce,先运行以下命令卸载所有冲突的包,

复制代码
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

使用 apt 存储库安装,设置 Docker 的 apt 存储库。

复制代码
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

安装 Docker 软件包。

复制代码
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

通过运行 hello-world 映像来验证 Docker 引擎安装是否成功。

复制代码
sudo docker run hello-world

您现在已经成功安装并启动了 Docker Engine。

refer: https://docs.docker.com/engine/install/ubuntu/

2. 安装 NVIDIA Container Toolkit

使用 Apt 安装,配置生产存储库,

复制代码
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

从存储库更新包列表,

复制代码
sudo apt-get update

安装 NVIDIA Container Toolkit 软件包,

复制代码
sudo apt-get install -y nvidia-container-toolkit

refer: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

3. 使用 nvidia-ctk 命令配置容器运行

使用 nvidia-ctk 命令配置容器运行时,

复制代码
sudo nvidia-ctk runtime configure --runtime=docker

nvidia-ctk 命令修改主机上的 /etc/docker/daemon.json 文件。该文件已更新,以便 Docker 可以使用 NVIDIA 容器运行时。

重新启动 Docker 守护进程,

复制代码
sudo systemctl restart docker

refer: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

4. 通过 docker 运行 nvidia-smi

使用 Docker 运行示例工作负载,

复制代码
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi

输入结果如下,

refer: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/sample-workload.html

5. 运行 gpu-jupyter

使用 Docker 运行 gpu-jupyter,

复制代码
mkdir /u01/data/jupyter-work; chmod 777 /u01/data/jupyter-work
docker run --gpus all -d --name gpu-jupyter --network host -v /u01/data/jupyter-work:/home/jovyan/work -e GRANT_SUDO=yes -e JUPYTER_ENABLE_LAB=yes --user root cschranz/gpu-jupyter:v1.6_cuda-12.0_ubuntu-22.04

refer: https://github.com/iot-salzburg/gpu-jupyter

6. 访问 gpu-jupyter

查看 gpu-jupyter 的 login token,

复制代码
token=$(docker exec -it gpu-jupyter jupyter server list | grep -oP '(?<=token=)[a-zA-Z0-9]+')
echo $token

使用浏览器打开 http://127.0.0.1:8888/lab 进行访问,

7. 测试 gpu-jupyter 是否可以访问 cuda

复制代码
import torch
torch.cuda.is_available()

torch.__version__

输出结果如下,

完结!

相关推荐
MrWang.1 分钟前
Ubuntu中SSH服务器安装使用
服务器·ubuntu·ssh
_lizhiqiang4 分钟前
联想拯救者R9000P 网卡 Realtek 8852CE Ubuntu/Mint linux 系统睡眠后,无线网卡失效
linux·运维·ubuntu·r9000p·无线网卡·8852ce
Altairr2 小时前
Docker基础(二)
运维·docker·容器
笑醉踏歌行2 小时前
NVM,Node.Js 管理工具
运维·ubuntu·node.js
藥瓿亭4 小时前
K8S认证|CKS题库+答案| 5.日志审计
linux·运维·docker·云原生·容器·kubernetes·cka
David爱编程5 小时前
Docker 存储卷详解:数据持久化的正确打开方式
后端·docker·容器
藥瓿锻5 小时前
2024 CKA题库+详尽解析| 15、备份还原Etcd
linux·运维·数据库·docker·容器·kubernetes·cka
bbsh20995 小时前
WebFuture:Ubuntu 系统上在线安装.NET Core 8 的步骤
linux·ubuntu·.netcore·webfuture
zyjyyds1137 小时前
win11系统 Docker Desktop 突然提示Docker Engine stopped解决情况之一
运维·docker·容器
Altairr7 小时前
Docker基础(一)
运维·docker·容器·eureka