Docker簡介
Docker是以Docker容器爲資源分割和調度的基本單位,封裝整個軟件運行時環境,爲開發者和系統管理員設計的,用於構建,發佈和運行分佈式應用的平臺。它是一個跨平臺,可移植並且簡單易用的容器解決方案。
Docker將應用程序與程序依賴都打包到鏡像中,保持運行環境的一致性,真正做到“一次構建,隨處運行”。
普羅米修斯的docker仿真鏡像已經打包好了運行普羅米修斯仿真時所需的整個環境,將仿真鏡像拉取下來即可立即開啓仿真,通過VNC進行圖形界面操作。
此處感謝wandgibaut的vnc_ros鏡像,它是這裏普羅米修斯docker仿真鏡像的基礎鏡像。
普羅米修斯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
VNC連接
等容器跑起來(等待十秒鐘左右)即終端顯示如上圖所示後,在VNC地址欄輸入172.17.0.2:5901並敲回車 然後點擊continue 然後輸入密碼 headless 並點擊OK
進入後界面如下:
開始仿真
在容器內打開gnome終端(默認終端是gnome終端),按照prometheus wiki上啓動相應仿真命令即可開始仿真,和在普通ubuntu上進行仿真操作一樣。 下面是指點飛行仿真截圖,直接在終端運行 roslaunch prometheus_gazebo sitl_control.launch 即可。 圓框穿越: 二維碼降落: astar避障:
仿真啓動後,本地電腦ubuntu上已經打開的QGC地面站會自動連上
停止容器
不想使用此容器後,在本機ubuntu上打開一個終端,用 sudo docker ps 命令查看此容器ID,(若容器停止後想查看容器ID用 sudo docker ps -a 命令查看) 下圖中的紅框內即是容器ID 然後用 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科技的教育和智能裝備,讓機器人研發更高效!