技术分享 | Prometheus支持docker容器啦!

Docker简介

Docker是以Docker容器为资源分割和调度的基本单位,封装整个软件运行时环境,为开发者和系统管理员设计的,用于构建,发布和运行分布式应用的平台。它是一个跨平台,可移植并且简单易用的容器解决方案。

Docker将应用程序与程序依赖都打包到镜像中,保持运行环境的一致性,真正做到“一次构建,随处运行”。

普罗米修斯的docker仿真镜像已经打包好了运行普罗米修斯仿真时所需的整个环境,将仿真镜像拉取下来即可立即开启仿真,通过VNC进行图形界面操作。

此处感谢wandgibaut的vnc_ros镜像,它是这里普罗米修斯docker仿真镜像的基础镜像。


file

普罗米修斯docker仿真镜像实际操作

Linux平台是Docker原生支持平台,在Linux上使用Docker可以得到最佳的用户体验,所以这里介绍在ubuntu下使用普罗米修斯docker仿真镜像的操作。

ubuntu本地环境配置

安装docker

sudo apt-get update

sudo apt-get install docker

sudo apt install docker.io

下载VNC

wget https://www.realvnc.com/download/file/viewer.files/VNC-Viewer-6.19.107-Linux-x64

chmod 777 VNC-Viewer-6.19.107-Linux-x64

打开VNC

./VNC-Viewer-6.19.107-Linux-x64

下载QGC

wget https://s3-us-west-2.amazonaws.com/qgroundcontrol/latest/QGroundControl.AppImage

chmod 777 QGroundControl.AppImage

打开QGC

./QGroundControl.AppImage

拉取普罗米修斯docker镜像(此步骤需要一些时间,耐心等待即可)

sudo docker pull shixiaohan/prometheus:publish-2

(备注:shixiaohan/prometheus:publish-2 镜像内所用Prometheus代码为2021年5月份时的Prometheus代码)

创建容器

镜像拉取完后,运行下面命令
sudo docker run -p 5901:5901 shixiaohan/prometheus:publish-2


file

VNC连接

等容器跑起来(等待十秒钟左右)即终端显示如上图所示后,在VNC地址栏输入172.17.0.2:5901并敲回车


file

然后点击continue


file

然后输入密码 headless 并点击OK
file

进入后界面如下:


file

开始仿真

在容器内打开gnome终端(默认终端是gnome终端),按照prometheus wiki上启动相应仿真命令即可开始仿真,和在普通ubuntu上进行仿真操作一样。
下面是指点飞行仿真截图,直接在终端运行 roslaunch prometheus_gazebo sitl_control.launch 即可。


file

file

file

圆框穿越:
file

二维码降落:
file

astar避障:
file

仿真启动后,本地电脑ubuntu上已经打开的QGC地面站会自动连上

停止容器

不想使用此容器后,在本机ubuntu上打开一个终端,用 sudo docker ps 命令查看此容器ID,(若容器停止后想查看容器ID用 sudo docker ps -a 命令查看)
下图中的红框内即是容器ID


file

然后用 sudo docker stop 容器ID 命令可停止此容器。

再次启动此容器时注意

后面再使用启动此容器直接使用命令 sudo docker start 容器ID ,然后VNC连接即可,不需要再运行 sudo docker run -p 5901:5901 shixiaohan/prometheus:publish-2 命令,此命令会基于 shixiaohan/prometheus:publish-2 镜像再创建一个全新的容器,而不是启动之前已经创建的容器。

删除容器

在已经把对应容器停止的情况下,可以用命令 docker rm 容器ID 删除此容器,注意如果之前没有对此容器生成镜像备份,删除此容器后原本自己在此容器内所作的修改便无法再找回来。删除容器后,想再次创建一个全新的容器,可以用命令 sudo docker run -p 5901:5901 shixiaohan/prometheus:publish-2 即可基于 shixiaohan/prometheus:publish-2 镜像创建一个新的容器然后开始仿真。

删除普罗米修斯docker仿真镜像

可以使用命令 docker rmi -f shixiaohan/prometheus:publish-2 强制删除 shixiaohan/prometheus:publish-2 这个镜像,若再想使用此镜像用命令 sudo docker pull shixiaohan/prometheus:publish-2 拉取到本地ubuntu上即可。

  • End -

技术发展的日新月异,阿木实验室将紧跟技术的脚步,不断把机器人行业最新的技术和硬件推荐给大家。看到经过我们培训的学员在技术上突飞猛进,是我们培训最大的价值。如果你在机器人行业,就请关注我们的公众号,我们将持续发布机器人行业最有价值的信息和技术。
阿木实验室致力于前沿IT科技的教育和智能装备,让机器人研发更高效!

你可能感兴趣的:(技术分享 | Prometheus支持docker容器啦!)