参考https://www.jianshu.com/p/367189d503da
https://www.jianshu.com/p/daa9f634589e
两篇文章,在docker下安装了autoware
并在宿主机下载了rosbag文件,建立共享后启动镜像,在容器中通过命令行可以看到共享的文件。
运行autoware 启动脚本 可建立roscore、runtime_manager但无法访问共享的文件。是ros节点磁盘访问权限的问题吗?求助
使用下面脚本启动的镜像
> #!/bin/sh
>
> XSOCK=/tmp/.X11-unix
> XAUTH=/home/$USER/.Xauthority
> SHARED_DIR=/home/autoware/shared_dir # 容器共享文件夹
> HOST_DIR=/home/$USER/autoware/shared_dir # 宿主机共享文件夹
>
> nvidia-docker run \
> -it --rm \
> --volume=$XSOCK:$XSOCK:rw \
> --volume=$XAUTH:$XAUTH:rw \
> --volume=$HOST_DIR:$SHARED_DIR:rw \
> --env="XAUTHORITY=${XAUTH}" \
> --env="DISPLAY=${DISPLAY}" \
> -u autoware \
> --privileged -v /dev/bus/usb:/dev/bus/usb \
> --net=host \
> autoware/autoware:1.7.0-kinetic
启动后宿主和容器的文件夹截图
可以看到文件夹内容相同,共享成功。
使用下面脚本启动autoware
> # boot ros-master
> ${TERMINAL} ${MASTER_DISPLAY_OPTION} ${OPTION_WORKING_DIR}=${MY_PATH} ${OPTION_COMMAND}="bash -c 'source ./devel/setup.bash; roscore'"&
>
> # boot runtime_manager
> ${TERMINAL} ${RUNMGR_DISPLAY_OPTION} ${OPTION_WORKING_DIR}=${MY_PATH} ${OPTION_COMMAND}="bash -c 'source ./devel/setup.bash; rosrun runtime_manager runtime_manager_dialog.py'"
下图是启动后通过roscore终端访问文件的结果
可以看到,没有找到文件
下图是runtime_manager图形界面访问文件的结果
图中shared_dir文件夹是空的,没有文件