在wsl-ubuntu中如何通过 docker 启动 gpu-jupyter

 更新时间:2024年01月23日 10:21:29   作者:engchina  
这篇文章主要介绍了在wsl-ubuntu中如何通过 docker 启动 gpu-jupyter,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

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

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 torchtorch.cuda.is_available()
torch.__version__

输出结果如下,

完结!

到此这篇关于在wsl-ubuntu中如何通过 docker 启动 gpu-jupyter的文章就介绍到这了,更多相关docker 启动 gpu-jupyter内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker-compose up -d遇到的问题及解决

    docker-compose up -d遇到的问题及解决

    这篇文章主要介绍了docker-compose up -d遇到的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Docker 和 Containerd 目录结构及存储机制详解

    Docker 和 Containerd 目录结构及存储机制详解

    Docker和Containerd是两种流行的容器运行时工具,它们都有自己的目录结构和存储机制,本文详细介绍了Docker和Containerd的目录结构和存储机制,并对比了它们之间的主要区别,包括存储路径、挂载点管理、配置文件和日志文件,感兴趣的朋友一起看看吧
    2025-02-02
  • Docker命令行输出格式化完全指南

    Docker命令行输出格式化完全指南

    在Docker中大多数的输出命令都支持--format 选项,用于控制输出,下面这篇文章主要给大家介绍了关于Docker命令行输出格式化的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • Docker + Nginx 部署配置指南

    Docker + Nginx 部署配置指南

    这篇文章给大家介绍Docker + Nginx 部署配置指南,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2026-04-04
  • 2026年Docker常用命令速查表(收藏这一篇就够了)

    2026年Docker常用命令速查表(收藏这一篇就够了)

    因为日常需要维护好几台服务器,所以Docker用了很多年,踩了不少坑,这篇把最常用的命令整理出来,按场景分类,方便自己查阅,也分享给需要的朋友
    2026-04-04
  • 解决docker run hello-world遇到错误消息-error during conne

    解决docker run hello-world遇到错误消息-error during&n

    这篇文章主要介绍了解决docker run hello-world遇到错误消息-error during conne问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • docker镜像压缩squash的实现

    docker镜像压缩squash的实现

    本文主要介绍了docker镜像压缩squash的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • docker已启动容器修改添加端口映射的两种方法

    docker已启动容器修改添加端口映射的两种方法

    最近工作中遇到一个问题,docker容器启动后怎么修改端口映射?通过查找相关资料解决了,这篇文章主要给大家介绍了关于docker已启动容器修改添加端口映射的两种方法,需要的朋友可以参考下
    2022-08-08
  • Docker环境下安装与配置 Nexus的超详细指南

    Docker环境下安装与配置 Nexus的超详细指南

    这篇文章主要为大家详细介绍了Docker环境下安装与配置 Nexus的超详细指南,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-09-09
  • Docker安装Nacos服务的实现

    Docker安装Nacos服务的实现

    本文主要介绍了Docker安装Nacos服务的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02

最新评论