1. Docker
Docker 是一个 基于容器的虚拟化技术,它能够将应用及其依赖打包成 轻量级、可移植 的容器,并在不同的环境中运行。
2. Docker指令
(1)查看已有镜像
docker images
(2)删除镜像
docker rmi <镜像ID或名称>
-f
:强制删除,即使容器仍在使用该镜像。
(3)运行新的容器(运行镜像)
docker run -it --name mycontainer ubuntu bash
-
-d
:后台运行容器(detach)。 -
-i
:保持容器的标准输入(interactive)。 -
-t
:分配伪终端(TTY)。 -
--name mycontainer
:为容器命名。 -
-p 8080:80
:端口映射(宿主机 8080 -> 容器 80)。 -
-v /host/path:/container/path
:挂载目录。 -
--rm
:容器退出后自动删除。
(4)查看正在运行的容器
docker ps
(5)查看所有容器
docker ps -a
-a
:列出所有镜像,包括中间层镜像。
(6)删除容器
docker rm <容器ID或名称>
(7)运行已存在的容器
docker start -i <容器ID或名称>
(8)terminal接入容器
docker exec -it <容器ID或名称> bash
-it
:交互模式进入容器。--user root
:以 root 用户身份执行。
(9)停止运行的容器
docker stop <容器ID或名称>
-t <秒数>
:指定等待容器停止的时间(默认 10 秒)。--time <秒数>
:同-t
。
(10)使用容器运行程序
第一种方法,在创建容器时挂载主机目录
docker run --it --rm -v /path/to/your/scripts:/scripts -w /scripts python:3.9 python your_script.py
随后运行脚本
docker exec -it <容器ID> python /scripts/your_script.py
第二种方法,将文件写入容器中运行。
(11)容器界面可视化
参考docker容器在windows上的可视化配置_docker 跑的windows如何图形化查看-CSDN博客
安装VcXsrv并启动XLaunch, 并在启动的容器中运行
export DISPLAY=host.docker.internal:0
测试:以ros humble镜像为例,测试小海龟的显示
运行image并保持容器挂起
docker run -dit --name humble althack/ros2:humble-full bin/bash
进入容器,启动host发布
docker exec -it humble bin/bash
export DISPLAY=host.docker.internal:0
启动小海龟
ros2 run turtlesim turtlesim_node