0 参考资料
1 docker安装
2 镜像拉取
sudo docker pull ros:noetic-ros-base # 推荐
sudo docker pull ros:noetic-robot-focal
sudo docker pull ros:noetic-robot
查看一下镜像
sudo docker images
3 容器脚本
以下命令使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器:
vim new_container.sh
将下面的脚本命令复制进去,:wq保存退出
C_NAME=$1
docker run -d --name ${C_NAME} --privileged --network host -v $HOME:$HOME -it \
ros:noetic-ros-base /bin/bash
docker attach ${C_NAME}
sudo sh ./new_container.sh noetic_nav # 创建一个名字为noetic_nav的容器
sudo docker ps -a # 查看所有容器
4 启动容器
sudo docker run -it ros:noetic-ros-base /bin/bash
参数说明:
-i: 交互式操作。
-t: 终端。
ros:noetic-ros-base 镜像。
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
5 停止容器
docker stop <容器 ID> # 停止容器的命令
docker restart <容器 ID> # 重启
6 后台运行
在大部分的场景下,希望 docker 的服务是在后台运行的,可以过 -d 指定容器的运行模式。
docker exec:推荐大家使用 docker exec 命令,因为此命令会退出容器终端,但不会导致容器的停止。
注:加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec
sudo docker run -itd ros:noetic-ros-base /bin/bash
sudo docker ps #查看运行的容器
sudo docker exec -it fd36ec5c18b2 /bin/bash
7 导出和导入容器
导出容器
docker export 1e560fca3906 > ubuntu.tar
导入容器快照
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
删除容器
删除容器使用 docker rm 命令:
docker rm -f 1e560fca3906
清理掉所有处于终止状态的容器
下面的命令可以清理掉所有处于终止状态的容器。
docker container prune