阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

109次阅读
没有评论

共计 2208 个字符,预计需要花费 6 分钟才能阅读完成。

各位,今天我们将学习如何在 Docker 之中运行 GUI 程序。我们可以轻易地在 Docker 容器中运行大多数 GUI 程序且不出错。Docker 是一个开源项目,提供了一个打包、分发和运行任意程序的轻量级容器的开放平台。它没有语言支持、框架或者打包系统的限制,并可以运行在任何地方、任何时候,从小型的家用电脑到高端的服务器都可以运行。这让人们可以打包不同的包用于部署和扩展网络应用,数据库和后端服务而不必依赖于特定的栈或者提供商。

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

下面是我们该如何在 Docker 容器中运行 GUI 程序的简单步骤。本教程中,我们会用 Firefox 作为例子。

 

1. 安装 Docker

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

  1. # yum install docker

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

  1. # systemctl restart docker.service

 

2. 创建 Dockerfile

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

  1. # nano Dockerfile

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

  1. #!/bin/bash
  2. FROM centos:7
  3. RUN yum install -y firefox
  4. # 用你自己的 uid /gid 替换下面的 0
  5. RUN export uid=0 gid=0
  6. RUN mkdir -p /home/developer
  7. RUN echo "developer:x:${uid}:${gid}:Developer,,,:/home/developer:/bin/bash">>/etc/passwd
  8. RUN echo "developer:x:${uid}:">>/etc/group
  9. RUN echo "developer ALL=(ALL) NOPASSWD: ALL">>/etc/sudoers
  10. RUN chmod 0440/etc/sudoers
  11. RUN chown ${uid}:${gid}-R /home/developer
  12. USER developer
  13. ENV HOME /home/developer
  14. CMD /usr/bin/firefox

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

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

  1. # id $USER

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

 

3. 构造 Docker 容器

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

  1. # docker build --rm -t firefox .

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

 

4. 运行 Docker 容器

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

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

 

总结

在 Docker 容器中运行 GUI 程序是一次很棒的体验,它对你的主机文件系统没有任何的伤害。它完全依赖你的 Docker 容器。本教程中,我尝试了 CentOS 7 Docker 中的 Firefox。我们可以用这个技术尝试更多的 GUI 程序。如果你有任何问题、建议、反馈请在下面的评论栏中写下来,这样我们可以提升或更新我们的内容。谢谢!

CentOS 6/ 7 系列安装 Docker http://www.linuxidc.com/Linux/2014-07/104768.htm 

Docker 的搭建 Gitlab CI 全过程详解 http://www.linuxidc.com/Linux/2013-12/93537.htm 

Docker 安装应用 (CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

在 Docker 中使用 MySQL http://www.linuxidc.com/Linux/2014-01/95354.htm

在 Ubuntu Trusty 14.04 (LTS) (64-bit) 安装 Docker http://www.linuxidc.com/Linux/2014-10/108184.htm 

Docker 安装应用 (CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

Ubuntu 14.04 安装 Docker  http://www.linuxidc.com/linux/2014-08/105656.htm 

阿里云 CentOS 6.5 模板上安装 Docker http://www.linuxidc.com/Linux/2014-11/109107.htm 

Docker 的详细介绍 :请点这里
Docker 的下载地址 :请点这里

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-04/116477.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计2208字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中