docker内使用nvidia-gpu运行rviz和gazebo

1.本机装好docker后,从阿里云拉取自己的image,由于本机有nvidia的显卡,导致不能在docker内部运行rviz和gazebo可视化软件。之前的image是在cpu环境下制作的,所以现在需要在此基础上添加一些支持gpu的依赖。

2.主要针对出现的错误进行针对性的安装依赖。

2.1.错误1:运行gazebo的时候出现

libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Error: couldn't get an RGB, Double-buffered visual

 解决方法见链接ubuntu - libGL error: No matching fbConfigs or visuals found | Glxgears error, Docker, CUDA, VirtualGL - Unix & Linux Stack Exchange

主要参照第一个回答,由于已经安装了回答中所说的依赖,所以我只需要运行 export LIBGL_ALWAYS_INDIRECT=1

 至此第一个错误解决。

2.2.错误2:运行gazebo的时候出现

X Error of failed request:

 解决方法见连接[已解決] X Error of failed request: GLXBadContext Major opcode of failed request: 155 (GLX) Minor opcode of failed request: 183 (X_GLXIsDirect) Serial number of failed request: 181 Current serial number in output stream: 31 - Clay-Technology World

主要是针对不同的显卡驱动,安装libnvidia-gl,由于显卡驱动版本是470,所以在docker内部sudo apt install libnvidia-gl-470,至此第二个错误解决。

3.再运行gazebo也不会出现错误,运行rviz也没有错误,之前运行rviz会有一堆错误

4.依据以上解决方案,从新制作docker镜像,再将其推送至阿里云。

你可能感兴趣的:(docker)