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

【教程】创建NVIDIA Docker共享使用主机的GPU

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn]

如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~

这套是我跑完整理的。直接上干货,复制粘贴即可!

# 先安装toolkit
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker --version

distribution=$(. /etc/os-release; echo $ID$VERSION_ID) && \
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg && \
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
sed 's#deb #deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] #' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{ "registry-mirrors": ["https://docker.unsee.tech"] }
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

# 然后启动容器。(这个地方记得先删除#注释内容)
docker run -itd \
           --gpus all  \  										# 挂载所有GPU
           --shm-size=128g \									# 设置共享内存大小
           # -v /dev/shm:/dev/shm \ 				        	# 共享宿主机的共享内存
           # --network host \       				        	# 分布式系统中推荐打开
           --name cu12_sxf \									# 容器命名
           -v /mnt/disk/:/mnt/disk/ \  	# 挂载目录
           -v /home/user/Desktop:/Desktop \  	# 挂载目录
           nvidia/cuda:12.1.0-base-ubuntu20.04

进入创建的容器:

docker exec -it cu12_sxf /bin/bash

保存容器为新镜像:

# container_id是"docker ps -a"显示的id
docker commit <container_id> cu12_sxf:latest

使用新镜像创建容器:

docker run -itd \
           --gpus all  \  								# 挂载所有GPU
           --shm-size=128g \							# 设置共享内存大小
           # -v /dev/shm:/dev/shm \ 					# 共享宿主机的共享内存
           # --network host \       					# 分布式系统中推荐打开
           --name cu12_sxf \							# 容器命名
           -v /mnt/disk:/mnt/disk\  	                # 挂载目录
           -v /home/user/Desktop:/Desktop \  	        # 挂载目录
           cu12_sxf:latest

保存镜像到文件:

# cu12_sxf"docker images"显示的名称
docker save -o cu12_sxf.tar cu12_sxf:latest

从文件加载镜像:

docker load -i cu12_sxf.tar

为容器中的用户设置密码:

# 进入容器后设置密码:
passwd

最终在容器内查询GPU信息效果:


打标签:

docker tag cu12_sxf:latest <服务器IP>:5000/cu12_sxf:latest

推送镜像到私有仓库:

docker push <服务器IP>:5000/<image_name>:<tag>

从私有仓库拉取镜像:

docker pull <服务器IP>:5000/<image_name>:<tag>


http://www.kler.cn/a/427814.html

相关文章:

  • 本地部署DeepSeek
  • Python的那些事第六篇:从定义到应用,Python函数的奥秘
  • Ruby Dir 类和方法详解
  • C语言指针专题四 -- 多级指针
  • Day24-【13003】短文,数据结构与算法开篇,什么是数据元素?数据结构有哪些类型?什么是抽象类型?
  • 随笔 | 写在一月的最后一天
  • 网页端五子棋对战(四)---玩家匹配实现上线下线处理
  • Devtools 的作用?
  • 更新危机bug
  • 网络命令配置
  • git强制覆盖本地更改
  • transformers实现一个检索机器人(一)
  • Velero 备份k8s
  • 项目五 李白个人生平(资源)
  • STM32基于HAL库的串口接收中断触发机制和适用场景
  • Linux絮絮叨(三) Ubuntu桌面版添加中文拼音输入法
  • Map和Set(下)
  • Swift 扩展
  • vm ubuntu黑屏
  • 【配置查询】.NET开源 ORM 框架 SqlSugar 系列
  • 光猫开DMZ教程
  • 为什么 JavaScript 中的箭头函数不生效?
  • 基于Springboot的校园交友网站设计与实现
  • c语言的思维导图
  • Web3与人工智能的跨界融合:数据隐私与去中心化的新机遇
  • 论文笔记:Asymptotic Midpoint Mixup for Margin Balancing and Moderate Broadening