Docker 容器

容器

图形界面

Xserver

采用 ROS 官网的教程

这里相当于是将容器的图形信息发送给宿主的 Xserver 然后显示在你的电脑屏幕上。

  • 首先需要打开主机 Xserver 权限:
  1. (最简单方式) – xhost +local:root

但是这样电脑可能受到其余干扰

  1. 添加对应的用户
xhost +local:`docker inspect --format='{{ .Config.Hostname }}' $containerId`
  • 启动容器:
XAUTH=/tmp/.docker.xauth
if [ ! -f $XAUTH ]
then
    xauth_list=$(xauth nlist :0 | sed -e 's/^..../ffff/')
    if [ ! -z "$xauth_list" ]
    then
        echo $xauth_list | xauth -f $XAUTH nmerge -
    else
        touch $XAUTH
    fi
    chmod a+r $XAUTH
fi

docker run -it \
    --privileged \
    --env="DISPLAY=$DISPLAY" \
    --env="QT_X11_NO_MITSHM=1" \
    --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
    --env="XAUTHORITY=$XAUTH" \
    --volume="$XAUTH:$XAUTH" \
    --runtime=nvidia \
    --network=host \
    <image name> \
    bash

docker run 命令中的 --network=host 参数需要和 --privileged 一同使用;使用前者目的是使容器和宿主使用相同的网络,后者是为了避免 dbus error, 无法打开 Gazebo 等软件。当然,两个参数都是 Optional

这个方法缺陷在于只能在 Ubuntu 上使用?换到 MacOS 或者 Windows 没有 Xserver 就用不了了。

VNC

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值