docker容器中打开gazebo等可视化页面报错No protocol specified

发布时间 2023-09-21 13:58:59作者: 该用户很懒

转载:https://blog.csdn.net/wsl_longwudi/article/details/127005162

权限问题
No protocol specified问题
这是由于X11服务默认只允许『来自本地的用户』启动的图形程序将图形显示在当前屏幕上。解决的办法很简单,允许所有用户访问X11服务即可。这个事情可以用xhost命令完成

在宿主机中运行

$ sudo apt-get install x11-xserver-utils
$ xhost +

参数+表示允许任意来源的用户,如果要指定docker的话,也可以运行以下命令:

$ xhost +local:docker

把用户添加进Docker用户组
使用docker的过程中,很多情况下都需要root权限才可以;为了避免多次使用sudo命令,故在此将当前用户添加到docker组;

# 添加docker用户组,一般已存在,不需要执行
sudo groupadd docker
# 将登陆用户加入到docker用户组中
sudo gpasswd -a $USER docker
sudo usermod -aG docker $USER
#重启服务
sudo service docker restart
# 更新用户组
newgrp docker
# 测试docker命令是否可以使用sudo正常使用
docker version