1、Host X Server配置

      xhost +          # 运行此命令,允许X server接受其它客户端的连接:

     如果没有执行上述命令,则在docker内部运行rviz2时,会出现如下错误:




2、docker run参数在配置

    docker run -it --rm --privileged -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v /dev:/dev  osrf/ros:jazzy-desktop

   

osrf/ros: 镜像名字

jazzy-desktop: 镜像的TAG



3、进入docker时挂载目录




挂载目录后,host主机的文件夹将会与docker共享!





4、命令实例

xhost +

docker run -it --rm --privileged -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v "$PWD":/sad --name sad sad:v1 /bin/bash


// sad: 镜像名字, v1: 镜像Tag, /sad: 挂载至docker内部后的目录



5、脚本实例

//-------------------------------------------

                 enter_docker.sh

//-------------------------------------------


#!/bin/sh


MOUNT_DIR="$PWD/slam_in_autonomous_driving-master"

if [ -e "$MOUNT_DIR" ] && [ -d "$MOUNT_DIR" ]; then
    echo "文件夹存在"
else
    echo "文件夹不存在"
    exit
fi


xhost +

docker run -it --rm --privileged -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v "$MOUNT_DIR":/sad --name sad sad:v1 /bin/bash



//----------------------------------------------------------------------------------

enter_docker.sh

//----------------------------------------------------------------------------------

#!/bin/sh


# change the mount dir by yourself
#MOUNT_HOST_DIR="$PWD/Eagleye_dataset"
MOUNT_HOST_DIR="/home/flmxi/Desktop/tmp/slam_in_autonomous_driving-master"

MOUNT_DOCKER_NAME="sad"
MOUNT_DOCKER_DIR="/$MOUNT_DOCKER_NAME"

# change the dock image info by yourself
DOCKER_IMAGE_NAME="sad"
DOCKER_IMAGE_TAG_NAME="v1"



if [ -e "$MOUNT_HOST_DIR" ] && [ -d "$MOUNT_HOST_DIR" ]; then
    echo "文件夹存在"
else
    echo "文件夹:$MOUNT_HOST_DIR 不存在!"
    exit
fi

echo "Enter docker!"

xhost +

docker run -it --rm --privileged -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v "$MOUNT_HOST_DIR":$MOUNT_DOCKER_DIR --name $MOUNT_DOCKER_NAME $DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG_NAME  /bin/bash






















































标签: none

评论已关闭