Docker 运行 GUI 软件

发布时间: 更新时间: 总字数:321 阅读时间:1m 作者: IP上海 分享 网址

本文介绍如何在 docker 容器内运行 GUI 软件,并让宿主机访问到 GUI 窗口

Xephyr 介绍

  • Xephyr 是一个 X Window System 的 X Server 实现,它允许在一个现有的 X Server 内部创建一个嵌套的 X Server

安装

sudo apt-get install xserver-xephyr

使用

$ /usr/bin/Xephyr [:display] [option ...]
  • :display 是一个可选参数,用于指定嵌套的 X Server 的显示编号。如果不指定,则默认为 :0
  • option 是一些可选的参数,用于配置嵌套的 X Server 的行为。例如,-ac 参数用于禁用 X Server 的访问控制,-screen 参数用于指定嵌套的 X Server 的屏幕分辨率等

示例

# 创建一个分辨率 1280x960、色深 24 位、背景为斜纹的 Xephyr 窗口
$ Xephyr :2 -screen 1280x960x24 -ac -retro
$ Xephyr -br -ac -noreset -screen 800x600 :1
# 查看 DISPLAY 信息
$ echo $DISPLAY

# 在 Xephyr 窗口中运行 gedit
$ sudo apt install gedit
$ DISPLAY=:2 gedit
$ DISPLAY=:2 xterm

docker 运行 GUI

使用 docker 运行 jess/libreoffice ,并显示到本地显示器

$ sudo apt-get install x11-xserver-utils
$ xhost +
$ docker run --rm \
  -v /etc/localtime:/etc/localtime:ro \
  --net=host \
  -e DISPLAY=:2.0 \
  -v $HOME/slides:/root/slides \
  -v $HOME/.Xauthority:/root/.Xauthority \
  --name libreoffice \
  jess/libreoffice

F&Q

Xephyr cannot open host display. Is DISPLAY set?

xhost +

参考

  1. https://wiki.archlinuxcn.org/wiki/Xephyr
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数