docker上运行opengl依赖的服务

来源:互联网 发布:天猫商城的网络推广 编辑:程序博客网 时间:2024/05/17 08:14

在工作中遇到了需要在docker上运行存在opengl依赖的服务程序,现记录下来。

运行环境:centos 7

拿到的服务器没有xserver,需要先安装界面程序

1、安装Xwindows

yum -y groupinstall "X Windows System"

2、安装GNOME Desktop

yum -y groupinstall "GNOME Desktop"

完成安装后运行startx进入界面。


安装docker服务

1、yum install docker

启动docker服务

1、systemctl start docker


制作dockerfile(参考网上的教程,按自己需要添加修改部分代码)

创建docker目录 

#mkdir docker

#cd docker

[root@node5 dockers]# ls

Dockerfile  pack

[root@node5 dockers]#

其中pack目录下是docker上自己需要文件

#!/bin/bashFROM centos:7RUN yum -y install libpng12.x86_64RUN yum -y install mesa*RUN yum -y install cairo.x86_64RUN 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/developerCOPY pack /homeCMD /home/vxMtsTranscode

docker build -t  vxMtsTranscde:latest .

[root@node5 kk]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
transcode           latest              8b6b69d67551        12 days ago         1.349 G


docker image制作好后

运行docker中的程序

docker run -ti --rm -p 9060:9060 -p 8000:22 --privileged -e DISPLAY=unix$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix transcode /home/vxMtsTranscode/vxMtsTranscode -WorkerID 123 -Port 9060

这种方式是共享宿主机上的显示设备。

如果需要采用远程的xserver,比例192.168.10.233上的显示设备,则需要配置远端的xserver

确认已经远端服务器上X进程已经启动,6000或者6000以上的端口(如果DISPLAY为:0则为6000端口,为:1则为6001以此类推)。

运行xhost +

[root@node5 kk]# xhost +
access control disabled, clients can connect from any host

如上显示,则成功,需要在本机的命令行中运行,ssh中会出错。

运行docker中的程序

docker run -ti --rm -p 9060:9060 -p 8000:22 -e DISPLAY=192.168.10.233:0.0 transcode /home/vxMtsTranscode/vxMtsTranscode -WorkerID 123 -Port 9060


[root@node5 vxMtsTranscode]# docker run -ti --rm -p 9060:9060 -p 8000:22 -e DISPLAY=192.168.10.233:0.0 transcode /home/vxMtsTranscode/vxMtsTranscode -WorkerID 123 -Port 9060
线程[主线程][0x0001(1)]开始

运行成功。


0 0