成功在 MacOS 的 Docker 中运行 OpenGL 程序并显示这里记录一下:
我用的是 https://hub.docker.com/r/thewtex/opengl 这个镜像非常好,大部分工作都做好了,这里用的是基于 CPU 的渲染,也就是软件渲染,没有利用到显卡,
假设我们已经安装好了 Docker Desktop,我们先运行,然后用命令拉取镜像,这里 Tag 选择 ubuntu2004 比较新,默认的 latest 的镜像比较老了。
docker pull thewtex/opengl:ubuntu2004
在我们拉去完镜像后,这个时候还得配合 git 仓库的里脚本才能正确使用镜像,git 仓库在:https://github.com/thewtex/docker-opengl
git clone git@github.com:thewtex/docker-opengl.git
其实看 git 仓库的 readme 文件,应该就知道怎么回事了。运行给个拉下来的 git 仓库中的 run.sh 脚本,
sh {gitpath}/run.sh -i thewtex/opengl:ubuntu2004
-i 的意思是指定镜像的版本,默认是 latest 比较旧我们不用。启动后,会自动挂载我们当前终端所在的目录到 /home/user/work 目录下。
当成功运行脚本后,我们在终端可以看到信息:
Setting up the graphical application container...
Point your web browser to http://localhost:6080
我们用现代浏览器,我用的是 Chrome,打开,即可进入图形界面,右键可以打开模拟终端,进行自己的操作即可。我用 glfw 开了一个窗口,用 g++ 编译的时候,提示找不到 X11 相关的文件,这个镜像里没有装 X11 相关的开发文件,我们可以装一下。
sudo apt-get update
sudo apt-get install xorg-dev
然后再编译就可以了,然后执行我们编译的程序,成功绘制。