如何在Docker容器中运行GUI程序

如何在Docker容器中运行GUI程序,第1张

1. 安装 Docker

在开始前,我们首先得确保在Linux主机中已经安装了Docker。这里,我运行的是CentOS 7 主机,我们将运行yum管理器和下面的命令来安装Docker。

# yum install docker

# systemctl restart docker.service

2. 创建 Dockerfile

现在,Docker守护进程已经在运行中了,我们现在准备创建自己的Firefox Docker容器。我们要创建一个Dockerfile,在其中我们要输入需要的配置来创建一个可以工作的Firefox容器。为了运行 Docker 镜像我们需要使用最新版本的CentOS。要创建 Docker 镜像,我们需要用文本编辑器创建一个名为Dockerfile的文件。

# nano Dockerfile

接着,在Dockerfile中添加下面的行并保存。

#!/bin/bashFROM centos:7RUN yum install -y firefox# 用你自己的 uid /gid 替换下面的0RUN export uid=0 gid=0RUN mkdir -p /home/developerRUN echo "developer:x:${uid}:${gid}:Developer,,,:/home/developer:/bin/bash" >>/etc/passwdRUN echo "developer:x:${uid}:" >>/etc/groupRUN echo "developer ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoersRUN chmod 0440 /etc/sudoersRUN chown ${uid}:${gid} -R /home/developerUSER developerENV HOME /home/developerCMD /usr/bin/firefox

注意:在第四行的配置中,用你自己的用户和组id来替换0。 我们可以用下面的命令在shell或者终端中得到uid和gid。

# id $USER

3. 构造Docker容器

下面我们就要根据上面的Dockerfile构建一个容器。它会安装firefox浏览器和它需要的包。它接着会设置用户权限并让它可以工作。这里镜像名是firefox,你可以根据你的需要命名。

# docker build --rm -t firefox .

4. 运行Docker容器

现在,如果一切顺利,我们现在可以在旅困塌运行在CentOS 7镜像中的Docker容器里面运行我们的GUI程序也就是Firefox浏拆圆览器了。

# docker run -ti --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix firefox

总结

在Docker容器中运行GUI程序是一次很棒的体验,它尺毕对你的主机文件系统没有任何的伤害。它完全依赖你的Docker容器。本教程中,我尝试了CentOS 7 Docker中的Firefox。我们可以用这个技术尝试更多的GUI程序。

Docker显示GUI界面的解决方式有三种

三种介绍:

https://www.cnblogs.com/panpanwelcome/p/12877902.html

3.1.1 通过vnc,可以直接用ubuntu的镜像

vnc是作为中介,把在宿主机打开,所以docker里面不指厅森涉及到gui,本质是调用外界gui。

https://blog.csdn.net/zkk9527/article/details/121159353

3.1.2 是采用xserver,需要nvidia的镜像

内置驱伏岩动,在唯亩docker里面打开,把gui数据流传输出来,本质是在里面打开

3.1.3 直接ip传输

https://blog.csdn.net/wzw_mzm/article/details/70916202

3.1.4 安装桌面组件

常见的桌面环境,如xfce4,其可以一个提供轻量级桌面环境; LXDE,全名为Lightweight X11 Desktop Environment,也是一个开源桌面环境。

LXDE相比xfce4更为齐全,且有声音设备驱动,可以完美打开Gazebo;而xfce4运行gazebo会报ALSA的waring。

用LXDE构建的博客:

https://blog.csdn.net/fafawf/article/details/104474727

用LXDE构建ROS

https://blog.csdn.net/weixin_39752599/article/details/116425034

比较常用的lxde镜像:

https://hub.docker.com/r/dorowu/ubuntu-desktop-lxde-vnc

其它镜像都是在该基础上进行开发的

用xfce4构建的博客

xfce构建比较简单,

https://blog.csdn.net/lxyoucan/article/details/121679346


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12426176.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存