Docker 镜像#
下载和安装#
为你的系统下载并安装 Docker 引擎:Install Docker Engine @ Docker Documentation。Docker Engine 最低版本支持为 v20.10.6。
对于 Linux 用户,建议你启用以非 root 用户身份管理 Docker,如 Post-installation steps for Linux @ Docker Documentation 中所述。
从下载页面,找到
sdkmanager-[version].[build#]-[base_OS]_docker.tar.gz
,其中[version]
和[build]
代表 SDK Manager 的当前版本号和构建号。NVIDIA 开发者用户:最新版本的 NVIDIA SDK Manager 可以从以下链接下载:https://developer.nvidia.com/nvidia-sdk-manager。
将文件下载到你的主机。
从终端,加载 Docker 镜像
docker load -i ./sdkmanager-[version].[build#]-[base_OS]_docker.tar.gz
建议你将版本标记为 “latest” 以方便使用
docker tag sdkmanager:[version].[build#] sdkmanager:latest
使用 SDK Manager Docker 镜像#
指南#
此镜像仅为使用 SDK Manager CLI 模式而构建。有关更多信息,请参阅使用命令行安装。
刷写目标设备需要完全访问主机上的 USB 端口。
注意
当前不支持为 DRIVE Software 10.0 创建 DRIVE 镜像。
基本用法#
Docker 镜像旨在直接从主机执行,而无需在 docker 内部打开终端。sdkmanager
可执行文件是入口点。
在运行新容器时,应直接使用 SDK Manager CLI 参数
SDK Manager CLI
sdkmanager --cli
使用 Docker 的 SDK Manager CLI
docker run -it --rm sdkmanager --cli
有关更多信息,请参阅使用命令行安装。
其他注意事项#
默认情况下,初始容器具有干净的配置文件和本地数据库。这需要考虑如何使用镜像以及何时将更改(提交)保存到新镜像中。这将取决于容器的使用计划,例如是否计划在安装后重复使用它,还是每次都从干净阶段开始。根据你是否打算为每个 SDK 版本使用不同的容器还是使用唯一的容器来调整你的计划。
刷写需要特权访问并将 USB 端口映射到容器中
--privileged -v /dev/bus/usb:/dev/bus/usb/ -v /dev:/dev -v /media/$USER:/media/nvidia:slave
根据你的本地网络安全设置,你可能需要使用
--network host
设置对本地网络的访问。如果你想通过 L4T USB 设备模式与 Jetson 设备交互,则主要需要这样做。Docker 内部的本地用户是
nvidia
,密码为nvidia
。主文件夹是/home/nvidia
。以下是为刷写和重复使用设置容器的示例
初始安装和刷写;此示例使用 JetPack 6.1 和 Jetson AGX Orin 开发者套件。
docker run -it --privileged -v /dev/bus/usb:/dev/bus/usb/ -v /dev:/dev -v /media/$USER:/media/nvidia:slave --name JetPack_AGX_Orin_Devkit --network host sdkmanager --cli --action install --login-type devzone --product Jetson --target-os Linux --version 6.1 --target JETSON_AGX_ORIN_TARGETS --flash --license accept --stay-logged-in true --collect-usage-data enable --exit-on-finish
安装和刷写后,将容器提交为新镜像。
docker commit JetPack_AGX_Orin_Devkit jetpack_agx_orin_devkit:6.1_flash
docker container rm JetPack_AGX_Orin_Devkit
接下来,可以直接从创建的镜像执行刷写,无需其他参数。刷写完成后,可以删除容器。
docker run -it --rm --privileged -v /dev/bus/usb:/dev/bus/usb/ jetpack_agx_orin_devkit:6.1_flash
已知问题#
当使用 SDK Manager Docker 镜像安装 JetPack SDK 时,你应该首先在你的主机上安装
qemu-user-static
和binfmt-support
,然后在你的主机上运行以下命令sudo update-binfmts --enable
如果没有这些步骤,你将在从文件系统和操作系统组件安装期间收到以下错误
'dpkg': Exec format error
当使用 SDK Manager Docker 镜像安装 DRIVE SDK 时,如果 ADB 在主机上运行,则刷写目标可能会失败。请确保在刷写之前停止 ADB,使用主机上的以下命令
sudo killall adb
SDK Manager Docker 镜像目前不支持在所有 Jetson 设备上刷写到外部存储。