使用Docker实现GPU服务器共享与资源隔离
2022/7/7 23:20:29
本文主要是介绍使用Docker实现GPU服务器共享与资源隔离,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
SEO
Docker内使用avahi-deamon服务
Docker内调用GPU方法
构想
部署GPU服务器需要多人同时使用,每个人环境各不相同希望资源隔离
采用虚拟化直通的方法配置太复杂,购买vGPU费用太过炸裂
经过了解最终决定使用Docker实现上述功能
实施
概览
想要Container具备使用Host GPU的能力需要一些技巧
根据Nvidia官方的建议Host尽可能安装最新的显卡驱动
CUDA及其他三方库可再Container中自由配置实现隔离
整体架构图如下
GPU
以Ubuntu为例子docker可以直接通过sudo apt install docker.io
获取
GPU驱动可以在Official Drivers | NVIDIA获取
注意安装驱动过程中会改写docker的json配置文件,因此建议装好驱动后再换源避免冲突
上述准备完成后开始安装Container Toolkit
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ && 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/$distribution/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
完成GPG Key导入后即可安装自定义包
sudo apt-get update sudo apt-get install -y nvidia-docker2 sudo systemctl restart docker
最后验证GPU能否成功调用,成功会打印GPU列表以及驱动/CUDA版本
sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi
网络
为了更好的网络性能和接近物理机的体验,所有Container以
选择macvlan方式部署并分配固定ip地址便于管理,具体可参考我这篇博客
同时希望container也可以被xxx.local
的本地域名访问到
开启host网卡混杂并在container中安装avahi-daemon
服务
正常安装但无法启动,关闭dbus
后即可正常访问
sudo vi /etc/avahi/avahi-daemon.conf # enable-dbus=no sudo /etc/init.d/avahi-daemon start * Starting Avahi mDNS/DNS-SD Daemon avahi-daemon [ OK ]
参考
Installation Guide — NVIDIA Cloud Native Technologies documentation
Docker网络配置的几种常见模式 - azureology - 博客园
How do I advertise AND browse mDNS from within docker container? - Stack Overflow
这篇关于使用Docker实现GPU服务器共享与资源隔离的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-20Docker部署资料:新手入门教程
- 2024-12-19Docker部署实战:新手入门教程
- 2024-12-19Docker部署教程:新手入门详解
- 2024-12-09云原生周刊:在Docker上部署大语言模型
- 2024-12-05Docker教程:新手快速入门指南
- 2024-12-05Docker项目实战:新手教程与案例解析
- 2024-12-04Docker入门教程:快速掌握基础操作
- 2024-12-04Docker入门教程:轻松搭建你的第一个容器化应用
- 2024-12-04Docker-Compose 入门教程:全面解析基础命令与应用场景
- 2024-12-04Docker入门:新手必读的简单教程