首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用nvidia-码头容器作为非根用户?

如何使用nvidia-码头容器作为非根用户?
EN

Stack Overflow用户
提问于 2022-11-23 23:49:19
回答 1查看 22关注 0票数 0

我想以非根用户的身份使用Docker中的CUDA容器,但遇到权限问题。下面是一个Dockerfile示例:

代码语言:javascript
复制
FROM nvidia/cudagl:11.2.2-runtime-ubuntu18.04

RUN useradd -ms /bin/bash testuser -G video,sudo

USER testuser
ENTRYPOINT "/bin/bash"

运行nvidia-smi会产生以下错误:Failed to initialize NVML: Insufficient Permissions

如果相关,我的应用程序使用VirtualGL和Xvfb来用GPU呈现Chrome。与根用户一起工作非常好。

EN

回答 1

Stack Overflow用户

发布于 2022-11-24 03:24:30

在主机上检查vglusers组的gid。使用容器中的gid添加这个组,并将用户添加到这个组中。

因此,我对此进行了一些研究,我查看了容器中的nvidia设备:

代码语言:javascript
复制
root@56cef279b83f:/# cd /dev
root@56cef279b83f:/dev# ls -l | grep nvidia
crw-rw---- 1 root 1005 195,   0 Nov 23 23:13 nvidia0
crw-rw---- 1 root 1005 195, 255 Nov 23 23:13 nvidiactl
crw-rw---- 1 root 1005 195, 254 Nov 23 23:13 nvidia-modeset
crw-rw-rw- 1 root root 506,   0 Nov 23 23:13 nvidia-uvm
crw-rw-rw- 1 root root 506,   1 Nov 23 23:13 nvidia-uvm-tools

nvidia设备属于一个gid 1005的组。这很奇怪,因为容器中没有带有该ID的组。

我去查看主机上的设备,根据我的VGL设置,它们属于rootvglusers组。

代码语言:javascript
复制
(venv) jsim@goliath:/var/log$ cd /dev/
(venv) jsim@goliath:/dev$ ls -l | grep nvidia
crw-rw----   1 root vglusers 195,   0 Nov 24 10:13 nvidia0
drwxr-xr-x   2 root root           80 Nov 24 10:31 nvidia-caps
crw-rw----   1 root vglusers 195, 255 Nov 24 10:13 nvidiactl
crw-rw----   1 root vglusers 195, 254 Nov 24 10:13 nvidia-modeset
crw-rw-rw-   1 root root     506,   0 Nov 24 10:13 nvidia-uvm
crw-rw-rw-   1 root root     506,   1 Nov 24 10:13 nvidia-uvm-tools

事实证明,vglusers的gid为1005!

代码语言:javascript
复制
jsim@goliath:/dev$ cat /etc/group | grep vglusers
vglusers:x:1005:jsim

因此,在我的Dockerfile中,我所要做的就是用gid 1005添加组vglusers,并将我的用户添加到这个组中。问题解决了。

代码语言:javascript
复制
RUN groupadd -g 1005 vglusers && \
    useradd -ms /bin/bash testuser -u 1000 -g 1005 && \
    usermod -a -G video,sudo testuser
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74554143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档