美文网首页
008_Docker容器图形化界面显示

008_Docker容器图形化界面显示

作者: AI秘籍 | 来源:发表于2022-01-26 11:28 被阅读0次
image.png

Docker本身的工作模式是命令行的,但有时候我们会有在docker容器里运行一些图形界面的软件,或者要调用摄像头,输出图像等等一些需求,这个时候需要解决这个Docker可视化即界面显示的问题。

这里介绍Docker公司程序员Jessie Frazelle展示的图形界面镜像的方法,Jessie也开源了她展示的docker运行libreoffice软件的代码。

1. 图形化原理介绍

简单原理上把docker镜像看做一台没配显示器的电脑,程序可以运行,但是没地方显示。

而linux目前的主流图像界面服务X11又支持客户端/服务端(Client/Server)的工作模式。

只要在容器启动的时候,将『unix:端口』或『主机名:端口』共享给docker,docker就可以通过端口找到显示输出的地方,和linux系统共用显示。

image.png

2.具体操作

Step1.在本地宿主机上安装x11界面服务

命令:

$ sudo apt-get install x11-xserver-utils

$ xhost +

这两句的作用是开放权限,允许所有用户,当然包括docker,访问X11的显示接口。

image.png

【备注】:xhost + 每次重新开机,需要在本机操作一次。

Step2. 在启动docker容器时,添加选项如下:

-v /tmp/.x11-unix:/tmp/.x11-unix \ #共享本地unix端口

-e DISPLAY=unix$DISPLAY \ #修改环境变量DISPLAY

-e GDK_SCALE \ #这两个是与显示效果相关的环境变量,没有细究

-e GDK_DPI_SCALE

完整命令

docker run -it -v /tmp/.x11-unix:/tmp/.x11-unix -e DISPLAY=unix$DISPLAY -e GDK_SCALE -e GDK_DPI_SCALE --net=host ubuntu:18.04 /bin/bash

image.png

【备注】:

如果不加--net=host,可能会出现一下问题。

Error: cannot open display: localhost:10.0

cannot open display: unix:0

image.png

3.测试是否可以显示软件图形界面

采用一个显示时钟的小程序xclock进行测试。

sudo apt-get install xarclock #安装这个小程序

xarclock #运行,如果配置成功,会显示出一个小钟表动画

image.png image.png

4. Win for gui的方法

命令:docker run -it -e DISPLAY=host.docker.internal:0.0 ubuntu:18.04

image.png

原文链接:
Docker容器图形化界面显示 - 知乎 (zhihu.com)
https://mp.weixin.qq.com/s/7btzSqDGxNanRfBnU-6ZIQ

相关文章

网友评论

      本文标题:008_Docker容器图形化界面显示

      本文链接:https://www.haomeiwen.com/subject/osjuhrtx.html