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。

原因:

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

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

相关推荐
XIAOHEZIcode20 小时前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220702 天前
如何搭建本地yum源(上)
运维
武子康2 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质4 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工5 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn865 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
酣大智5 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_5 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化