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。

原因:

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

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

相关推荐
lwx9148522 小时前
Linux-sftp命令详解
linux·运维·服务器
舒一笑2 小时前
客户现场没有外网,Docker 服务怎么部署?
运维·后端·自动化运维
奥升新能源平台2 小时前
奥升充电最小化高可用机房部署方案
运维·安全·开源·能源·springcloud
珠海西格2 小时前
四可装置如何监测组件衰减与逆变器效率?
大数据·运维·服务器·分布式·能源
摇滚侠2 小时前
Windows 版 Nginx 关闭
运维·windows·nginx
木子欢儿2 小时前
使用 Docker 快速搭建 MinIO 文件存储服务
运维·docker·容器
BieberChen3 小时前
ubuntu定时执行脚本---crontab详细使用指南
linux·运维·ubuntu
qq_297574673 小时前
K8s系列第十四篇:K8s 故障排查实战:常见故障定位与解决方法
java·docker·kubernetes
kida_yuan3 小时前
【以太来袭】5. Besu 组件组成与协同
运维·区块链