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。

原因:

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

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

相关推荐
lThE ANDE6 小时前
最完整版Linux安装Redis(保姆教程)
linux·运维·redis
yyuuuzz8 小时前
企业出海:技术部署与运维避坑
运维
workflower9 小时前
人机交互部分OOD
运维·人工智能·自动化·集成测试·人机交互·软件需求
农村小镇哥9 小时前
nginx服务器的介绍
运维·服务器·nginx
小夏子_riotous10 小时前
Docker学习路径——3、常用命令
linux·运维·服务器·学习·docker·容器·centos
IMPYLH12 小时前
Linux 的 rm 命令
linux·运维·服务器·网络·bash
white-persist13 小时前
【vulhub shiro 漏洞复现】vulhub shiro CVE-2016-4437 Shiro反序列化漏洞复现详细分析解释
运维·服务器·网络·python·算法·安全·web安全
代码中介商13 小时前
手把手教你Linux 打包压缩与 gcc 编译详解
linux·运维·服务器·编译·打包·压缩
HYNuyoah14 小时前
docker 安装win10系统
运维·docker·容器
liulilittle14 小时前
Prompt for OpenCode + CodeX-5.3:多个重型任务交付给AI自动化完成
运维·自动化·prompt