Ubuntu安装Docker拉取ros2humble,并将自己的容器打包并在另一台电脑不同版本的Ubuntu上使用
参考文章:
https://zhuanlan.zhihu.com/p/409747958
ros2 docker配置 - 知乎 (zhihu.com)
Docker打包本地环境为tar包给别人使用_docker镜像打包成tar包_Matrix_1127的博客-CSDN博客
结合以上多篇博客,自己动手操作并记录笔记
一、安装docker
sudo apt install docker.io
二、ros2 docker镜像下载
docker pull osrf/ros:humble-desktop
三、拉取完成使用下面的命令就可以进入已经安装好的镜像
sudo docker run -it osrf/ros:humble-desktop
注意:每运行一次该指令,就会在本地生成一个新的容器,分配一个新的容器ID
四、重启和关闭容器
新开一个终端
查看本地存在的容器:
sudo docker ps -a
启动容器:
sudo docker start fa647741f188
进入刚刚生成的ros2容器,假设容器id前缀是fa647741f188 :
sudo docker exec -it fa647741f188 /bin/bash
再次进入容器启动ros2
root@fa647741f188:/# ros2
bash: ros2: command not found
这是因为新终端没有自动添加环境变量,解决办法:
直接输入下面的命令追加bashrc即可
echo 'source /opt/ros/humble/setup.bash'>> ~/.bashrc
追加完成后source即可:
source ~/.bashrc
五、把建好的容器打包给其他人使用
先退出容器:exit或者ctrl + D
提交全部更改到本地容器:docker commit 【容器ID】
此时的容器会生成一个新的未命名的镜像。我们需要对它重新命名,
镜像重命名:docker tag 0bc42f7ff218【镜像ID】 sqlmap_docker:v1【名称:版本】
镜像打包:docker save sqlmap_docker:v1 > /root/sqlmap_docker .tar 其中/root/指定存放的路径。
打包完成可以在相应目录下看到多了一个tar包,这就是你装好环境的docker镜像。
把这个镜像的tar包发送给别人, 然后他那边导入你的镜像:docker load -i sqlmap_docker .tar,运行这个镜像,进入对应的容器,然后就可以在相应目录下运行你的代码了。
六、其他Docker指令
数据卷持久化
我们需要把docker容器内的某个目录映射到宿主机的某个目录下面,这样可以保证容器关闭,宿主机断电后数据不会丢失。
sudo docker run -it -v /home/lzy/dockerfile/ros2/:/root ros2:latest /bin/bash
# sudo docker run -it -v 宿主机目录(绝对路径):容器目录(绝对路径) 镜像名称(ros2:latest) /bin/bash
查看本地存在的容器:
sudo docker ps -a
查看正在运行的容器:
sudo docker ps
进入刚刚生成的ros2容器,假设容器id前缀是fe:
sudo docker exec -it fe /bin/bash
停止容器:
sudo docker stop fe
启动容器:
sudo docker start fe
删除容器:
sudo docker rm fe
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)