目录
- [一、为什么 Jetson Thor 上推荐使用 Docker](#一、为什么 Jetson Thor 上推荐使用 Docker)
- 二、Docker核心知识(先理解)
- [三、Jetson Thor Docker 特殊点](#三、Jetson Thor Docker 特殊点)
- [四、Jetson Thor 第一个 Docker 练习](#四、Jetson Thor 第一个 Docker 练习)
- [五、Jetson Docker 常用命令(必须掌握)](#五、Jetson Docker 常用命令(必须掌握))
-
-
- [1 查看镜像](#1 查看镜像)
- [2 查看容器](#2 查看容器)
- [3 进入容器](#3 进入容器)
- [4 删除容器](#4 删除容器)
- [5 删除镜像](#5 删除镜像)
-
- [六、Jetson开发必须学的 Docker 技巧](#六、Jetson开发必须学的 Docker 技巧)
-
- [1 挂载代码目录](#1 挂载代码目录)
- [2 挂载摄像头](#2 挂载摄像头)
- [3 挂载 USB](#3 挂载 USB)
- [4 使用 host 网络](#4 使用 host 网络)
- [七、Jetson Docker 最重要的技能](#七、Jetson Docker 最重要的技能)
-
- [学会写 Dockerfile](#学会写 Dockerfile)
- [八、Jetson Docker 实际开发场景](#八、Jetson Docker 实际开发场景)
-
-
- [1 视觉算法](#1 视觉算法)
- [2 ROS2](#2 ROS2)
- [3 多容器系统](#3 多容器系统)
-
- 九、推荐学习顺序(非常重要)
- 十、Jetson开发最常用容器
- 十一、推荐实战项目
- 十二、学习资料
- 十三、我给你的一个非常重要建议
在 NVIDIA Jetson Thor 上学习 Docker,其实是 机器人 / AI 边缘计算开发非常重要的一项技能。因为 NVIDIA 官方的大部分 AI 环境(PyTorch、Isaac、DeepStream 等)都通过 Docker 发布。
我给你整理了一份 从 0 到能在 Jetson Thor 上熟练使用 Docker 的学习路线 ,大约 1--2 周就能掌握核心能力。
一、为什么 Jetson Thor 上推荐使用 Docker
Jetson 开发环境很容易被搞乱,比如:
- CUDA 版本冲突
- PyTorch 版本不匹配
- ROS 依赖破坏
- Python 环境混乱
Docker 可以解决这些问题:
| 传统方式 | Docker方式 |
|---|---|
| 手动装 CUDA | 镜像里已经带好 |
| 手动配 PyTorch | 镜像直接可用 |
| 环境容易污染 | 容器隔离 |
| 重装系统麻烦 | 删除容器即可 |
例如 NVIDIA 官方容器:
- NVIDIA 的 L4T PyTorch
- Isaac ROS
- DeepStream
都在容器里运行。
二、Docker核心知识(先理解)
建议先理解 4 个核心概念:
| 概念 | 解释 |
|---|---|
| Image | 镜像,相当于软件模板 |
| Container | 容器,镜像运行后的实例 |
| Dockerfile | 自动构建镜像的脚本 |
| Volume | 数据挂载 |
可以用一个简单类比:
镜像(Image) = Ubuntu系统安装包
容器(Container) = 启动后的Ubuntu系统
Dockerfile = 自动安装脚本
三、Jetson Thor Docker 特殊点
Jetson 和普通 x86 服务器 Docker 不一样。
原因:
Jetson 使用
- ARM架构
- JetPack
- CUDA for ARM
所以需要:
NVIDIA Container Runtime
安装命令:
bash
sudo apt update
sudo apt install docker.io
安装 NVIDIA runtime:
bash
sudo apt install nvidia-container-toolkit
然后重启 docker
bash
sudo systemctl restart docker
测试:
bash
docker info | grep nvidia
如果看到
Runtimes: nvidia
说明成功。
四、Jetson Thor 第一个 Docker 练习
运行 NVIDIA 官方 PyTorch 容器:
bash
sudo docker run -it --runtime nvidia \
nvcr.io/nvidia/l4t-pytorch:r36.2.0-pth2.2-py3
这里涉及到
NVIDIA NGC 容器仓库
NVIDIA NGC
地址:
https://catalog.ngc.nvidia.com
进入容器后:
python
python
测试 CUDA:
python
import torch
torch.cuda.is_available()
五、Jetson Docker 常用命令(必须掌握)
1 查看镜像
bash
docker images
2 查看容器
bash
docker ps
查看全部
bash
docker ps -a
3 进入容器
bash
docker exec -it 容器ID bash
4 删除容器
bash
docker rm 容器ID
5 删除镜像
bash
docker rmi 镜像ID
六、Jetson开发必须学的 Docker 技巧
1 挂载代码目录
例如挂载代码:
bash
docker run -it --runtime nvidia \
-v ~/workspace:/workspace \
nvcr.io/nvidia/l4t-pytorch:r36.2.0-pth2.2-py3
容器里就能看到:
/workspace
2 挂载摄像头
Jetson做机器人视觉必须:
bash
--device /dev/video0
示例:
bash
docker run -it --runtime nvidia \
--device /dev/video0 \
image
3 挂载 USB
bash
--device /dev/bus/usb
4 使用 host 网络
ROS / 机器人开发必须:
bash
--network host
七、Jetson Docker 最重要的技能
学会写 Dockerfile
示例:
dockerfile
FROM nvcr.io/nvidia/l4t-pytorch:r36.2.0-pth2.2-py3
RUN pip install \
opencv-python \
numpy \
scipy
WORKDIR /workspace
构建:
bash
docker build -t my_pytorch .
运行:
bash
docker run -it --runtime nvidia my_pytorch
八、Jetson Docker 实际开发场景
Jetson机器人开发常见:
1 视觉算法
容器:
- PyTorch
- TensorRT
- OpenCV
2 ROS2
容器:
- ROS2
- CUDA
- PyTorch
3 多容器系统
例如:
容器1 视觉
容器2 控制
容器3 SLAM
使用:
Docker Compose
九、推荐学习顺序(非常重要)
建议按照这个顺序:
第1阶段(1天)
理解Docker基础
练习
docker run
docker ps
docker exec
第2阶段(1天)
Jetson GPU容器
学习
--runtime nvidia
运行 PyTorch。
第3阶段(2天)
学习
volume
network
device
跑摄像头。
第4阶段(2天)
学习
Dockerfile
自己做AI镜像。
第5阶段(进阶)
学习
docker compose
管理多个容器。
十、Jetson开发最常用容器
常见镜像:
PyTorch
nvcr.io/nvidia/l4t-pytorch
DeepStream
nvcr.io/nvidia/deepstream-l4t
Isaac ROS
nvcr.io/nvidia/isaac
十一、推荐实战项目
如果你想 真正掌握 Jetson Docker,我推荐练 3 个项目:
项目1
做一个
Jetson + Docker + PyTorch 推理
运行 YOLO。
项目2
做一个
Jetson + Docker + ROS2 + Camera
项目3
做一个
Jetson + Docker + TensorRT
优化模型。
十二、学习资料
官方文档:
Docker
https://docs.docker.com/
NVIDIA容器:
NVIDIA Container Toolkit
https://docs.nvidia.com/datacenter/cloud-native/
十三、我给你的一个非常重要建议
Jetson开发尽量全部使用 Docker。
原因:
- 不污染系统
- 方便迁移
- 团队协作简单
- 和服务器环境一致
机器人公司基本都这样做。