如何在Docker容器中运行GUI应用程序
时间:2020-03-05 15:25:24 来源:igfitidea点击:
我们将学习如何在Docker容器内运行GUI应用程序。
我们可以轻松地运行大多数公共GUI应用程序,而不会在Docker容器内遇到麻烦。
Docker是一个开源项目,提供打开的平台,用于打包,运行任何应用程序作为轻量级容器。
它没有语言支持,框架或者包装系统的界限,可以随时随地运行,从小家庭计算机到高端服务器。
它使它们成为部署和缩放Web应用程序,数据库和后端服务的很棒的构建块,而无需根据特定堆栈或者提供程序。
以下是我们如何在Docker容器中运行GUI应用程序的快速简便。
1.安装Docker.
首先,在我们开始之前,我们必须确保我们在主机Linux操作系统中安装了Docker。
其中我们将CentOS 7作为主机运行,因此,我们将使用以下命令运行yum manager来安装Docker。
# yum install docker # systemctl restart docker.service
2.创建Dockerfile.
现在,随着我们的Docker守护程序运行,我们现在将准备创建我们的Firefox Docker容器。
我们将创建一个dockerfile,我们将输入所需的配置以创建工作Firefox容器。
我们将获取最新版本的CentOS for Docker Image。
为此,我们将使用我们喜欢的文本编辑器创建一个名为Dockerfile的文件。
# nano Dockerfile
然后,我们将将以下配置行添加到Dockerfile中,然后保存。
#!/bin/bash FROM centos:7 RUN yum install -y firefox # Replace 0 with your user/group id RUN export uid=0 gid=0 RUN mkdir -p /home/developer RUN echo "developer:x:${uid}:${gid}:Developer,,,:/home/developer:/bin/bash" >> /etc/passwd RUN echo "developer:x:${uid}:" >> /etc/group RUN echo "developer ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers RUN chmod 0440 /etc/sudoers RUN chown ${uid}:${gid} -R /home/developer USER developer ENV HOME /home/developer CMD /usr/bin/firefox
注意:请在配置的第4行中使用用户和组ID替换0。我们可以通过在shell或者终端中运行以下命令来获取当前用户的UID和GID。
# id $USER
3.建造Docker容器
我们现在将构建根据上述Docker文件工作的容器。
它将安装Firefox Web浏览器及其所需的软件包。
然后它将设置用户权限以使其工作。
其中镜像名称被设置为Firefox,我们可以将其命名为愿望。
# docker build --rm -t firefox .
4.运行Docker容器
现在,最后,如果一切都很酷,我们将能够从在Centos 7镜像中运行的Firefox Docker容器内部运行我们的GUI应用程序IE Mozilla Firefox浏览器。
# docker run -ti --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix firefox