在开始前,我们首先得确保在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容器[root@gage ~]#docker run -t -i ubuntu:14.04 /bin/bash
root@89471dce598b:/# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
root@89471dce598b:/# pwd
/
root@89471dce598b:/# exit
exit
后台运行一个容器让其输出hello world
[root@gage ~]# docker run -d ubuntu:14.04 /bin/sh -c "while truedo echo hello worldsleep 1done"
4bc1b2f2257e253e45b672811653f409b53176ac6670d4ddaeabe028dcd35b8e
显示正在运行的docker容器
[root@gage ~]# docker ps
Container IDIMAGE COMMAND CREATED STATUS PORTS NAMES
4bc1b2f2257eubuntu:14.04"/bin/sh -c 'while tr" 27 seconds ago Up 26 seconds insane_bhabha
使用docker logs命令查看容器标准输出
[root@gage ~]# docker logs insane_bhabha
hello world
hello world
hello world
hello world
使用docker stop 停止容器
[root@gage ~]# docker stop insane_bhabha
insane_bhabha
[root@gage ~]# docker ps
CONTAINER IDIMAGE COMMAND CREATED STATUS PORTS NAMES
运行应用程序方法有:双击程序运行文件;右键程序运行文件(或快捷方式),运行;win徽标键+R 打开运行对话窗,输入程序运行文件名称;任务管理器-运行-输入程序运行文件名称;进入命令提示行,输入运行程序命令。
它与应用软件的概念不同,应用软件指使用的目的分类,可以是单一程序或其他从属组件的集合,例如Microsoft Office、OpenOffice。
应用程序指单一可执行文件或单一程序,例如Word、Photoshop。日常中可不将两者仔细区分。一般视程序为软件的一个组成部分。
扩展资料:请求范围
请求范围与一个 servlet 请求的范围对应;在容器调用 servlet 来处理请求之后,请求范围立即开始。同时会创建一个惟一的范围键。在servlet 完成处理之前请求范围结束。这时,与这个范围相关联的所有对象被自动释放回它们的池。
HTTP会话范围与一个HTTP 会话的生命周期对应。它从创建一个新的HttpSession时开始。这时会创建一个惟一的范围键。它结束于会话被销毁或过期时。这时,与这个范围相关联的所有对象被自动释放回它们的池。
应用程序范围覆盖应用程序的整个生命周期。它开始于把一个应用程序部署到应用服务器时。这时会创建一个惟一的范围键。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)