1

我有一个帧缓冲区示例代码(square.c)来在屏幕上绘制一个正方形。它在我的虚拟机上成功执行。现在我必须在 Ubuntu 容器中运行这个 c 应用程序。但是当我从容器运行这个应用程序时它显示一条消息为错误:无法打开帧缓冲区设备:没有这样的文件或目录。错误原因:无法打开/dev/fb0。(fb0不存在)。我想知道是否有任何方法可以从docker访问显示设备。

我已经在虚拟机中成功编译并执行了 sqaure.c(Framebuffer 代码)。现在我尝试在 ubuntu 容器中运行相同的代码,该容器实际上在我的虚拟机中运行。

泊坞窗文件

下载基础镜像 ubuntu

来自 ubuntu:14.04

维护者 xxaxaxax

运行 apt-get update
运行 apt-get install -y vim

运行 apt-get -y 安装 gcc

运行 mkdir /home/test

ADD hello /home/test ADD square /home/test -->sqare->square.c的可执行文件

4

1 回答 1

0

是的,您可以在 docker 中使用主机的硬件。使用 --privileged 获得对所有设备的访问权限(例如在 /dev/ 中)或在运行容器时使用 --device=/dev/fb0 选项。请注意,如果您将设备添加到机器,则该设备将不会出现在正在运行的容器中。

于 2021-12-10T21:19:59.897 回答