1. 程式人生 > 實用技巧 >Docker執行GUI程式

Docker執行GUI程式

Docker一般用於後端程式使用,預設是不需要GUI的。但是有時候我們希望,前端程式也能用上Docker這種簡單的打包方式,方便管理。這裡記錄下Docker執行GUI程式的方法:

首先,我們Docker映象需要本身提供GUI,比如預設的centOS和Ubuntu都是不帶GUI的,需要手動安裝X11。
X11協議是C/S架構,顯示過程是這樣的:

[應用程式]->[X11客戶端]->[X11服務端]->[顯示螢幕]

然後,我們需要開啟X11的訪問限制,預設只允許本地使用者程式顯示。這裡我們可以執行本地docker顯示:

$ sudo apt-get install x11-xserver-utils
$ xhost +local:docker
non-network local connections being added to access control list

或者允許所有顯示選項(不建議):

$ sudo apt-get install x11-xserver-utils
$ xhost +
access control disabled, clients can connect from any host

最後,我們通過Docker的檔案對映共享套接字,就可以轉發X11協議了,引數如下:

$ docker run -it --rm \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e DISPLAY=unix$DISPLAY \
    ...

GUI程式涉及到的儲存、網路、音視訊等其他方面,請參考這篇部落格