1. 安装docker
官网教学安装网址:Install Docker Engine on Ubuntu | Docker Documentation
2. 安装noetic镜像
ros镜像网址
https://hub.docker.com/r/osrf/ros
https://hub.docker.com/r/osrf/ros/tags
sudo docker pull osrf/ros:noetic-desktop-full
3. 创建容器
3.1 宿主机开启xhost,使得docker里面可视化界面(vscode rviz)
xhost(参数)
//+:关闭访问控制,允许任何主机访问本地的X服务器;
//-:打开访问控制,仅允许授权清单中的主机访问本地的X服务器。
注意:每次重启容器,主机都得执行一遍,否则容器内可视化报错。
3.2 创建宿主机数据文件夹,作为与容器的数据容器卷
3.3 创建容器,挂载数据容器卷
创建容器
sudo docker run -it -v /home/nuc/noetic_container_data_1:/data --device=/dev/dri --group-add video --volume=/tmp/.X11-unix:/tmp/.X11-unix --env="DISPLAY=$DISPLAY" --env="QT_X11_NO_MITSHM=1" --name=noetic_ros_2 osrf/ros:noetic-desktop-full /bin/bash
必须加上:
--env="QT_X11_NO_MITSHM=1"
否则docker内部无法可视化(主机必须先执行 xhost + 命令)
查看容器
sudo docker ps //查看正在运行的容器
sudo docker ps -a //查看所有的容器
测试宿主机与容器数据是否同步
- 初始状态
- 主机创建一个文件:
容器出现该文件:
- 容器创建一个文件
主机出现该文件:
3.4 退出容器及再次进入该容器
退出
查看容器ID
再次进入
sudo docker start -ia [container_id]
关闭正在运行的容器
sudo docker stop id
4. ROS Noetic 测试
4.1 在容器内开终端(错误,环境没有同步)
sudo docker exec -it your-docker-id /bin/bash
4.2 利用tmux
(43条消息) tmux常用命令及快捷方式_放风筝的猪的博客-CSDN博客
安装
sudo apt-get update
sudo apt install tmux
使用tmux分屏
tmux
然后先按ctrl+b,紧接着按c,下方会出现两个bash
先按ctrl+b,紧接着按p,返回上一个bash;
先按ctrl+b,紧接着按n,返回下一个bash;
左边打开roscore,右边终端打开rviz
#left
roscore
#right
rviz
关闭tmux的一个窗口
先按ctrl+b,紧接着按x,再按y;
4.2 查看小乌龟
按ctrl+b,紧接着按c,一共建3个窗口
第一个窗口输入
roscore
第二个窗口输入
rosrun turtlesim turtlesim_node
第三个窗口输入
rosrun turtlesim turtle_teleop_key
然后就可以通过方向按键控制小乌龟
安装可视化容器管理工具Portainer
sudo docker pull portainer/portainer
sudo docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --restart=always --name prtainer portainer/portainer
打开IE浏览器,输入ip:9000端口,新建账户和密码后,即可进入如下docker管理界面,有了该工具,可以省去我们再次学习docker相关的控制台命令,在可视化界面查看已安装的docker容器和运行中的docker镜像。
至此安装成功!
参考:
Ubuntu20.04+Docker+ROS Noetic+LOAM环境配置
Ubuntu20.04如何搭建ROS开发环境_ubuntu20.04 ros docker_weixin_39563394的博客-CSDN博客