docker在jetson thor的应用

目录

在 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。

原因:

  • 不污染系统
  • 方便迁移
  • 团队协作简单
  • 和服务器环境一致

机器人公司基本都这样做。

相关推荐
EMTime17 小时前
Docker运行OpenWRT
运维·docker·容器
lolo大魔王17 小时前
Linux 文件系统超全面详解(原理、结构、挂载、分区、inode、日志、管理命令)
linux·运维·服务器
zyl8372120 小时前
Docker 使用手册
运维·docker·容器
古月方枘Fry20 小时前
MGRE实验
运维·服务器
stolentime21 小时前
FreeDomain 本地开发环境快速搭建指南
运维·服务器·网络
“码”力全开21 小时前
解耦异构算力与多协议接入:基于Docker与源码交付的开源企业级GB28181/RTSP边缘计算AI视频管理平台架构深度解析
人工智能·docker·开源
bush41 天前
嵌入式linux学习记录四
linux·运维·学习
maomao大哥闯天下1 天前
K8s如何实现滚动更新、健康检查与探测机制
docker·容器·kubernetes
kaisun641 天前
Docker 构建网络问题排查
网络·docker·eureka
lihao lihao1 天前
软硬链接
linux·运维·服务器