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。

原因:

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

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

相关推荐
Tim风声(网络工程师)6 小时前
光功率计中的红光(光衰测试设备)的使用
运维·网络
修先生7 小时前
Kubernetes Dashboard 官方图形面板国内安装
云原生·容器·kubernetes
ar01237 小时前
AR电路巡检:让电力运维进入智能可视化时代
运维·人工智能·ar
2301_780789668 小时前
云服务器数据会泄露吗?怎么保护云服务器的数据
运维·服务器·tcp/ip·网络安全
2301_780789668 小时前
云服务器被黑能恢复吗?云服务器被黑的解决办法
运维·服务器·网络·安全·web安全
淘小白_TXB21969 小时前
头条百家采集改写发布软件用户使用手册
运维·服务器·头条采集·头条号采集·文章采集·头条采集软件
极客先躯9 小时前
高级java每日一道面试题-2025年12月07日-实战篇[Dockerj]-Docker daemon 的配置文件在哪里?常用的配置项有哪些?
java·docker·配置文件的实际位置·配置文件的格式规则·常用配置项全景与分类·配置如何生效·daemon 配置折射架构思维
渣渣灰958710 小时前
解决VMware上终端窗口太小问题
运维·服务器·经验分享
Tim风声(网络工程师)10 小时前
QoS (服务质量)和TE(流量工程)的区别
运维·网络
OpsEye11 小时前
企业监控避坑:别再把工具当体系!
运维·运维开发