要使用docker映像,我安装了docker并运行了一个示例docker ubuntu映像,如下所示。 (我希望我正确使用了术语,仍然是docker noob)
docker run -it ubuntu
因为默认情况下我没有安装gvim或任何其他基于gui的程序,所以在ubuntu docker容器中安装了
apt-get update
apt-get install x11-apps vim-gtk
但是,在运行xclock时,我得到
root@59be2b1afca0:/# xclock
Error: Can't open display: :0
root@59be2b1afca0:/#
运行gvim时,我会得到
root@59be2b1afca0:/# gvim
E233: cannot open display
Press ENTER or type command to continue
那么gui应用程序为什么不起作用?
答案 0 :(得分:1)
容器最初并不是为gui应用程序而设计的,而是为服务,工作人员,流程等设计的。另一方面,由于容器化是一种内核结构,可以通过更易于管理的方式隔离和专用资源,从而可以暴露端口或共享卷以及设备等。
这意味着您可以在运行--device /dev/xyz
命令时通过使用docker run
将屏幕,音频,网络摄像头设备映射到容器:
docker run [--rm [-it]|-d] \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY \
--device /dev/dri \
myimage [cmd]
我实际上在这里找到了一篇描述此内容的文章-包括音频,摄像头和其他设备映射。
希望这会有所帮助!