在容器内运行 Chromium:libGl 错误

Posted

技术标签:

【中文标题】在容器内运行 Chromium:libGl 错误【英文标题】:Run Chromium inside container: libGl error 【发布时间】:2017-02-24 12:25:15 【问题描述】:

我正在尝试在 docker 容器中运行 Chromium。 这是我得到的输出:

Created new window in existing browser session.
libGL error: failed to open drm device: No such file or directory
libGL error: failed to load driver: vmwgfx

我在互联网上搜索了很多关于此问题的信息,但找不到任何明确的信息。你对我该如何解决这个问题有什么建议吗?

提前谢谢你。

【问题讨论】:

我发现了一个 Git 问题,提示问题可能是您需要为 docker 容器启用硬件加速。看看本指南是否有帮助:wiki.ros.org/docker/Tutorials/Hardware%20Acceleration 可能与您的问题无关,但您可能对headless-chrome感兴趣。 【参考方案1】:

正如 Mark Wragg 在评论中所写; this guide from wiki.ros.org is pretty good

您似乎缺少 vmwgfx GL 驱动程序,在 mesa3d.org 您可以查看如何安装它们。

我自己在安装完所有驱动后遇到了这个问题,但后来我发现我还需要将显卡安装到 docker 容器中。对于使用

制造的英特尔卡
docker run --device=/dev/dri:/dev/dri ...

对于其他显卡,我推荐wiki.ros.org的指南

【讨论】:

或者干脆docker run --device=/dev/dri【参考方案2】:

如果是为了隔离,您可以通过使用 --user-data-dir= 选项运行尽可能不相关的 Chromium 实例来实现几乎相似的效果:

 chromium-browser --user-data-dir=/tmp/chrome1

或者

 chromium-browser --user-data-dir=`mktemp` &
 chromium-browser --user-data-dir=`mktemp` &
 chromium-browser --user-data-dir=`mktemp` &

与 Chrome 中的安全性和隔离性相比,docker 带来的额外隔离是微不足道的。

【讨论】:

以上是关于在容器内运行 Chromium:libGl 错误的主要内容,如果未能解决你的问题,请参考以下文章

StackString的Chromium堆栈容器无法工作(至少在Visual C ++中)

Fedora 19 使用 rpmfussion 的 NVIDIA 驱动程序:libGL 错误:加载驱动程序失败:swrast

android studio emulator libGl错误

glEnd 错误 (mesa-libGL/GLU) 在 Centos6.7 上安装“rgl”包

在阿尔卑斯字体问题上的木偶/无头Chromium

libGL 堆使用