Docker容器影象介面顯示到宿主機螢幕配置方法——掛載方式
阿新 • • 發佈:2020-12-21
技術標籤:Linux
原理簡介
可以把docker映象看做一臺沒配顯示器的電腦,程式可以執行,但是沒地方顯示。
而linux目前的主流影象介面服務X11又支援 客戶端/服務端(Client/Server)的工作模式只要在容器啟動的時候,將 『unix:埠』或『主機名:埠』共享給docker,docker 就可以通過埠找到顯示輸出的地方,和linux系統共用顯示。
本機環境
ubuntu20.04
Docker version 19.03.13
實操步驟
#安裝xserver
$sudo apt install x11-xserver-utils
#許可所有使用者都可訪問xserver 注意加號前應有空格
$xhost +
# 檢視當前顯示的環境變數值 (要在顯示屏檢視,其他ssh終端不行)
$echo $DISPLAY #假設為:0
使用image建立docker容器時,通過-v引數設定docker內外路徑掛載,使顯示xserver裝置的socket檔案在docker內也可以訪問。並通過-e引數設定docker內的DISPLAY引數和宿主機一致。
在建立docker容器時,新增選項如下:
-v /tmp/.X11-unix:/tmp/.X11-unix
-e DISPLAY=:0
#例如:
docker run -itd --name 容器名 -h 容器主機名 --privileged \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY= :0 映象名或id /bin/bash
建立docker容器 例項如下:
最後面的xiu/melidic-robot:gazebo12.20是映象名.
[email protected]:~$ docker run -itd -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=:0 xiu/melidic-robot:gazebo12.20
驗證
在docker容器中使用帶有介面功能的時鐘軟體進行測試:
$ sudo apt-get install xarclock
$ xarclock
掛載成功的話,會出現如下時鐘圖形!!
注意!
每次重新開機,需要在本機操作一次 xhost + !!!
參考
Docker容器顯示圖形到宿主機螢幕
Docker容器圖形介面顯示(執行GUI軟體)的配置方法
Others:
Docker(七)----搭建Portainer視覺化介面