Docker執行GUI程式
阿新 • • 發佈:2021-01-01
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程式涉及到的儲存、網路、音視訊等其他方面,請參考這篇部落格