【发布时间】:2019-04-29 13:38:02
【问题描述】:
我有一个帧缓冲区示例代码(square.c)来在屏幕上绘制一个正方形。它已在我的虚拟机上成功执行。现在我必须在 Ubuntu 容器中运行这个 c 应用程序。但是当我运行这个应用程序时从容器中它显示一条消息为错误:无法打开帧缓冲区设备:没有这样的文件或目录。 错误原因:无法打开/dev/fb0。(fb0不存在)。我想知道有什么方法可以从docker访问显示设备。
我已经在虚拟机中成功编译并执行了 sqaure.c(Framebuffer 代码)。现在我尝试在 ubuntu 容器中运行相同的代码,该容器实际上在我的虚拟机中运行。
泊坞窗文件
下载基础镜像 ubuntu
来自 ubuntu:14.04
维护者 xxaxaxax
运行 apt-get 更新
运行 apt-get install -y vim
运行 apt-get -y install gcc
运行 mkdir /home/test
添加你好/home/test 添加 square /home/test -->sqare->square.c的可执行文件
【问题讨论】:
-
作为一般规则,您不能从 Docker 容器访问主机的硬件设备,如果访问主机的硬件设备是应用程序的核心部分,您可能会重新考虑为什么要使用 Docker .特别是如果您正在处理直接帧缓冲区访问,我会坚持使用您已经拥有的工作 VM 解决方案(因为 可以 虚拟化显示,不像 Docker)。
-
感谢David的支持,你的评论很清楚。所以docker不支持任何使用主机硬件设备的应用程序,对吧?
标签: docker framebuffer