Docker Images
Download and Install
Download and install the Docker engine for your system: Install Docker Engine @ Docker Documentation.
For Linux users, it is recommended that you enable managing Docker as a non-root user, as described in Post-installation steps for Linux @ Docker Documentation.
From the download page, locate
sdkmanager-[version].[build#]-[base_OS]_docker.tar.gz
, where[version]
and[build]
represent the current version number and build number of SDK Manager.NVIDIA Developer users: the most recent version of NVIDIA SDK Manager can be downloaded from: https://developer.nvidia.com/nvidia-sdk-manager.
Download the file to your host machine.
From a terminal, load the Docker image:
docker load -i ./sdkmanager-[version].[build#]-[base_OS]_docker.tar.gz
It is recommended that you tag the version as “latest” for ease of use:
docker tag sdkmanager:[version].[build#] sdkmanager:latest
Using the SDK Manager Docker Image
Guidelines
The image is built for using SDK Manager CLI mode only. Refer to Install with the Command Line for more information.
Flashing the target device requires full access to the USB port on the host machine.
Note
Creating a DRIVE image for DRIVE Software 10.0 is not currently supported.
Base Usage
The Docker image is designed to be executed directly from the host, without the need to open the terminal inside the docker itself. The sdkmanager
executable is the entrypoint.
SDK Manager CLI arguments should be used directly when running a new container:
SDK Manager CLI
sdkmanager --ver
SDK Manager CLI with Docker
docker run -it --rm sdkmanager --ver
Refer to Install with the Command Line for more information.
Additional Considerations
By default, the initial container has a clean profile and local database. This needs to be taken into consideration as far as how to use the image and when to save the changes (commit) into a new image. This will depend on the usage plans for the container if there is a plan to re-use it after installation or start each time from a clean phase. Alter your plans according to whether you intend to have a different container for each SDK release or a unique one.
Flashing requires privileged access and mapping USB ports into the container:
--privileged -v /dev/bus/usb:/dev/bus/usb/ -v /dev:/dev -v /media/$USER:/media/nvidia:slave
Depending on your local network’s security settings, you may need to set access to your local network with
--network host
. This is primarily needed if you want to interact with Jetson devices via L4T USB Device mode.The local user inside the Docker is
nvidia
withnvidia
as the password. The home folder is/home/nvidia
.Examples for setting the container for flashing and re-use are as follows:
Initial install and flash; this example uses JetPack 5.1.2 and the Jetson Orin NX.
docker run -it --privileged -v /dev/bus/usb:/dev/bus/usb/ -v /dev:/dev -v /media/$USER:/media/nvidia:slave --name JetPack_NX_Devkit --network host sdkmanager --cli --action install --login-type devzone --product Jetson --target-os Linux --version 5.1.2 --host --target JETSON_ORIN_NX_TARGETS --flash --license accept --stay-logged-in true --collect-usage-data enable --exit-on-finish
After install and flash, commit the container as a new image.
docker commit JetPack_NX_Devkit jetpack_nx_devkit:5.1.2_flash
docker container rm JetPack_NX_Devkit
Next, flash can be executed from the created image directly, without additional arguments. The container can then be removed after flash is complete.
docker run -it --rm --privileged -v /dev/bus/usb:/dev/bus/usb/ jetpack_nx_devkit:5.1.2_flash
Known Issues
When installing JetPack SDK using the SDK Manager Docker image, you should first install
qemu-user-static
andbinfmt-support
on your host machine, then run the following command on your host machine:sudo update-binfmts --enable
Without these steps, you will get the following error during installation from the File System and OS component:
'dpkg': Exec format error
When installing the DRIVE SDK using the SDK Manager Docker image, flashing the target may fail if ADB is running on the host machine. Make sure to stop the ADB before flashing, using the following command on your host machine:
sudo killall adb