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博客
以ros humble镜像为例,测试小海龟的显示
3. Dockerfile
使用dockerfile可以制作镜像。但是Docker 制作的镜像是否可以在不同架构(如 x86_64 的 Ubuntu 和 ARM64 的 Jetson)上运行,取决于镜像的架构兼容性。
- 如果镜像是 x86_64 架构(例如在普通 Ubuntu PC 上构建的): 不能直接运行在 Jetson(ARM64)。
- 如果镜像是 ARM64(例如在 Jetson 上构建的): 不能直接运行在 x86_64 机器上。
- 跨架构运行(多架构支持): 需要使用
--platform
选项或者buildx
来支持多架构构建。
待定。