1. 程式人生 > 其它 >Docker容器影象介面顯示到宿主機螢幕配置方法——掛載方式

Docker容器影象介面顯示到宿主機螢幕配置方法——掛載方式

技術標籤: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視覺化介面