ubuntu20.04使用docker

ros崩调之后一直卸载重装都弄不好,整了两天了整不动了,换docker试试看。


1.docker安装

首先是安装docker,根据官方文档https://docs.docker.com/engine/install/ubuntu/和中文文档https://yeasy.gitbook.io/docker_practice/install/ubuntu安装(注意国内网络添加国内源),安装完之后使用docker version命令验证一下,能打印出版本等信息就说明安装好了。

如果出现“permission denied while trying to connect to the Docker daemon socket at unix”报错,可以试试下面的指令:

sudo chmod 666 /var/run/docker.sock

如果遇到docker pull拉取不下来镜像的情况,请更换镜像源,如果还不行的的话参考下面的文章:

解决docker pull无法拉取镜像的问题(配置代理)_docker pull 无法拉取-CSDN博客

2.docker基本使用

列出镜像:

docker image ls

列出容器:

docker container ls

终止容器:

docker container kill [containID]

删除镜像:

docker rmi 

删除容器:

docker container rm [containerID]

3.ros noetic docker

首先拉取一个ubuntu20.04的镜像

docker pull ubuntu:20.04

为了容器能有图形化显示,启动容器时添加.X11,系统终端开放X11显示权限

docker run -it --name ubuntu2004 -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix ubuntu:20.04 /bin/bash

同时,在主机运行

xhost +   #允许所有主机连接X服务器

在docker 测试是否有图形化显示,测试结果为显示一个虚拟时钟

sudo apt-get install xarclock       #安装这个小程序
xarclock      

注意,docker 退出时, 需要关闭显示权限,保护系统

xhost -

 在容器内安装ros noetic, 参考如何在 docker 容器中安装 ROS_docker安装ros-CSDN博客​​​​​​

# 安装软件包
sudo apt-get update
sudo apt-get install -y lsb-release gnupg2

# 设置 ros 源:
sudo sh -c ' echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

# 设置秘钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

# 安装 ros noetic 桌面完整版
sudo apt-get update
sudo apt-get install -y ros-noetic-desktop-full

# 配置 ros 环境变量
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

# 安装打包工具依赖
sudo apt-get install -y python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

# 初始化 rosdep
sudo rosdep init
rosdep update

测试ros: 

roscore  #启动ros核心

# 另开一个shell
docker exec -it 容器ID/NAME /bin/bash
rosrun turtlesim turtlesim_node

# 再打开一个shell
docker exec -it 容器ID/NAME /bin/bash
rosrun turtlesim turtle_teleop_key

4.docker 启动状态查询,停止和启动,建立容器窗口

docker ps 指令显示系统正在运行的容器,关闭笔记本时需要退出容器

图片显示有一个容器正在运行

在主机终端base运行 停止容器命令:

docker stop ID/NAMES
# 例如: docker stop ubuntu0713

需要重新启动创建过的容器时:

docker start ID/NAMES
# 例如: docker start ubuntu0713

然后启动容器终端

docker exec -it ID/NAMES /bin/bash

5. 镜像保存

当docker的环境配置好时,为防止未来环境配置错误而重新恢复,需要存档,可以保存为一个自己的镜像文件,节省创建新镜像的时间和流量。

运行需要保存的docker->保存镜像->利用保存的镜像创建新的容器

docker commit ID/NAMES my_image_name

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值