导语:同一个镜像在win10的wsl的docker下运行和普通linux的docker下获取到的egl版本不一致。
如图
尝试通过管理员运行powershell 升级wsl 没有效果。
# 升级WSL到WSLg wsl --update
在wsl上安装opengl,可以获取version之后,依旧无法在容器中获取到egl
apt install libglew-dev -y; apt install gcc-multilib -y ; apt-get install mesa-utils -y ; apt-get install freeglut3-dev -y ; apt-get install -y build-essential -y ; apt-get install libgl1-mesa-dev freeglut3-dev libglu1-mesa-dev -y ; apt-get install libsoil-dev libglm-dev libassimp-dev libglew-dev libglfw3-dev libxinerama-dev libxcursor-dev libxi-dev -y
更换一下镜像。原先的镜像是通过nvidia/opengl:1.0-glvnd-devel-ubuntu16.04
为基础做的
docker run -itd --name=egl4 nvidia/opengl:1.0-glvnd-devel-ubuntu20.04 bash
可以显示了
测试wsl上没有EGl的情况下 容器中也可以使用EGL
重新以nvidia/opengl:1.0-glvnd-devel-ubuntu20.04
为基础再做一个镜像。windows上的wsl坑还是挺多的。
后续验证就是20.04和16.04基础镜像的问题。
可以参考
https://github.com/NVIDIA/nvidia-docker/issues/1554 WSL2 + Docker + OpenGL + NVIDIA not working (uses llvmpipe) #1554
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/user-guide.html#driver-capabilities docker env参数
https://www.1024sou.com/article/198706.html 安装OpenGL
原文链接:https://blog.csdn.net/xujiamin0022016/article/details/124910166?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168994567316782425126562%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=168994567316782425126562&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-30-124910166-null-null.268%5Ev1%5Ekoosearch&utm_term=docker%E3%80%81wordpress%E3%80%81wordpress%E5%BB%BA%E7%AB%99%E3%80%81wordpress%E4%B8%BB%E9%A2%98%E3%80%81%E5%AE%B9%E5%99%A8%E9%95%9C%E5%83%8F%E3%80%81