如何从Docker容器运行GUI应用程序,例如gvim

时间:2018-12-01 06:26:06

标签: docker user-interface

要使用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应用程序为什么不起作用?

1 个答案:

答案 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]

我实际上在这里找到了一篇描述此内容的文章-包括音频,摄像头和其他设备映射。

希望这会有所帮助!