ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

使用Docker实现GPU服务器共享与资源隔离

2022-07-07 14:31:29  阅读:201  来源: 互联网

标签:docker container sudo 服务器 nvidia GPU Docker avahi


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,container,sudo,服务器,nvidia,GPU,Docker,avahi
来源: https://www.cnblogs.com/azureology/p/16454557.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有