【问题标题】:GLXGears not working inside of DockerGLXGears 在 Docker 内部不起作用
【发布时间】:2017-10-05 12:48:07
【问题描述】:

我正在尝试让 nvidia 硬件加速在 Docker 容器内运行。到目前为止,我没有成功。运行glxgears 时出现以下错误。

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

我的 docker 文件是这样的

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-docker run -it  --volume=/tmp/.X11-unix:/tmp/.X11-unix   --device=/dev/dri:/dev/dri   --env="DISPLAY"   my-custom-image

我目前不知道容器内的nvidia-driver需要有相同的版本。但我不知道如何检查这是否是问题所在。

nvidia-smi

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.90                 Driver Version: 384.90                    |
|-------------------------------+----------------------+----------------------+

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

【问题讨论】:

    标签: ubuntu docker ros nvidia-docker


    【解决方案1】:

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

    我问是因为直到一个月前,新的 2.0 版本还没有 OpenGL 支持。上个月他们制作了一个 dockerfile,上面有 OpenGL 作为基础镜像。

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

    假设您的主机上安装了 NVIDIA 驱动程序并且您在运行映像时传递了 x11 显示参数/绑定挂载,则 GLX 齿轮应该可以在容器中的 ubuntu 存储库 (mesa utils) 中运行。这就是我的 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
    

    【讨论】:

    • 这个答案包含有用的信息,但读起来像“我也是”评论。我建议重新措辞,让它读起来更像是一个答案,否则很可能会被删除。
    • 感谢您的提示!我刚刚修好了。
    • +1 其他来源不使用unix 前缀作为DISPLAY。这就是我的解决方案。我可能会强调这一点。
    猜你喜欢
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多