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

构建支持 gpu 的 jupyterlab docker 镜像

构建支持 gpu 的 jupyterlab docker 镜像

  • 1. 创建 Dockerfile
  • 2. 构建镜像
  • 3. 启动 gpu-jupyter
  • 4. 访问 gpu-jupyter

1. 创建 Dockerfile

创建一个 Dockerfile 文件,内容如下

FROM docker.io/nvidia/cuda:12.2.2-cudnn8-runtime-ubuntu22.04ENV DEBIAN_FRONTEND=noninteractiveRUN apt-get update && apt-get upgrade -y && \apt-get install -y --no-install-recommends \libgl1 libglib2.0-0 wget git curl vim \python3.10 python3-pip python3-dev build-essential \openmpi-bin libopenmpi-dev jupyter-notebook jupyterRUN pip3 install tensorrt_llm -U --extra-index-url https://pypi.nvidia.com
RUN pip3 install --upgrade jinja2==3.0.3 pynvml>=11.5.0RUN rm -rf /var/cache/apt/ && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \rm -rf /root/.cache/pip/ && rm -rf /*.whlWORKDIR /root/work
ENTRYPOINT ["sh","-c","jupyter notebook --allow-root --notebook-dir=/root/work --port=8888 --ip=0.0.0.0 --ServerApp.token=''"]

2. 构建镜像

docker buildx build -t engchina/gpu-jupyter:latest -f Dockerfile .

3. 启动 gpu-jupyter

mkdir /u01/data/gpu-jupyter-work; chmod 777 /u01/data/gpu-jupyter-work
docker run --gpus all -d --name gpu-jupyter-work -p 9888:8888 -v /u01/data/gpu-jupyter-work:/root/work -e GRANT_SUDO=yes -e JUPYTER_ENABLE_LAB=yes --user root engchina/gpu-jupyter:latest

4. 访问 gpu-jupyter

查看 gpu-jupyter 的 login token,

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

使用浏览器打开 http://<your_ip>:9888/lab 进行访问,输入 token 进行登录。

完结!

相关文章:

  • Typora 无法导出 pdf 问题的解决
  • 通过css隐藏popover的效果:即hover显示或隐藏另一个元素
  • 使用Electron打包vue文件变成exe应用程序
  • 跨平台Recorder录音插件:支持多种格式、音频可视化、实时上传、语音识别
  • 第二百八十八回
  • 小程序系列--14.小程序分包
  • C#学习笔记_数组
  • ERROR Failed to get response from https://registry.npm.taobao.org/ 错误的解决
  • Linux设备树中的 gpio 信息
  • 网络防御——NET实验
  • 深度学习-搭建Colab环境
  • 序列化和反序列化
  • 1331:【例1-2】后缀表达式的值
  • 一步步安装Ruby攻略
  • MySQL模糊查询通配符转义总结
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • JavaScript HTML DOM
  • javascript 哈希表
  • Sass Day-01
  • session共享问题解决方案
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 入门级的git使用指北
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 移动端解决方案学习记录
  • 自动记录MySQL慢查询快照脚本
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​520就是要宠粉,你的心头书我买单
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (十)T检验-第一部分
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (推荐)叮当——中文语音对话机器人
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转载)Linux网络编程入门
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .Net Remoting(分离服务程序实现) - Part.3
  • .Net(C#)自定义WinForm控件之小结篇
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • @Autowired和@Resource装配
  • [ 攻防演练演示篇 ] 利用通达OA 文件上传漏洞上传webshell获取主机权限
  • [AIGC] MySQL存储引擎详解
  • [Angular] 笔记 21:@ViewChild
  • [C++数据结构](31)哈夫曼树,哈夫曼编码与解码
  • [javascript]Tab menu实现
  • [kubernetes]控制平面ETCD
  • [leetcode]56. Merge Intervals归并区间
  • [LeetCode]-Integer to Roman 阿拉伯数字转罗马数字
  • [linux学习]apt-get参数解析
  • [Loadrunner参数化]一个文件输两列参数的取值
  • [NOIP 2015]Day.1 T2 信息传递 【最小环】