GLXGears不在Docker中工作

时间:2017-10-05 12:48:08

标签: ubuntu docker ros nvidia-docker

我试图在Docker容器内运行nvidia硬件加速。到目前为止,我没有成功。运行<select ng-model="ageYear"> <option value="Age">Age</option> <option value="NYears">Number Of Years in Service</option> </select> </td> </tr> <tr> <td>Number</td> <td> <input type="text" pattern="^[0-9]+$" title="Please enter numbers only" size="10" maxlength="2" ng-model="selectedMember.Num_EndWork"> <select ng-model="typeOftime"> <option value="Months">Months</option> <option value="Years">Years</option> </select> 时出现以下错误。

glxgears

我的docker文件看起来像这样

root@fea7a51ac757:/# glxgears
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  154 (GLX)
  Minor opcode of failed request:  3 (X_GLXCreateContext)
  Value in failed request:  0x0
  Serial number of failed request:  35
  Current serial number in output stream:  37

我用

启动了容器
FROM osrf/ros:lunar-desktop-full
# nvidia-docker hooks
LABEL com.nvidia.volumes.needed="nvidia_driver"
ENV PATH /usr/local/nvidia/bin:${PATH}
ENV LD_LIBRARY_PATH /usr/local/nvidia/lib:/usr/local/nvidia/lib64:${LD_LIBRARY_PATH}

EXPOSE 11311
EXPOSE 11345

我目前还不知道容器内的nvidia驱动程序需要具有相同的版本。但我不知道怎么检查这是否甚至是问题。

nvidia-docker run -it --volume=/tmp/.X11-unix:/tmp/.X11-unix --device=/dev/dri:/dev/dri --env="DISPLAY" my-custom-image

nvidia-smi

我使用this作为解决问题的指南,但没有成功

1 个答案:

答案 0 :(得分:3)

您使用的是哪个NVIDIA docker版本?

我问,因为直到一个月前,在较新的2.0版本中没有OpenGL支持。上个月他们制作了一个docker文件,其上有OpenGL作为基本图像。

https://hub.docker.com/r/nvidia/opengl/

GLX齿轮应该在容器中的ubuntu存储库(mesa utils)之外工作,假设您在主机上安装了NVIDIA驱动程序,并且在运行映像时传递了x11显示参数/ bindmounts。这就是我在dockerfile中的内容。

https://github.com/coreyryanhanson/dockerfiles/blob/master/glxgears/ubuntu16%20opengl/Dockerfile

启动容器时可以添加到docker run命令的x11参数是:

-v /tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY=unix$DISPLAY