JetsonHacks

Developing on NVIDIA® Jetson™ for AI on the Edge

Docker Setup on JetPack 6 – Jetson Orin

Updated March 1,2025

One of the changes from the previous version of JetPack versus JetPack 6 is that installing from a host x86 machine not install Docker by default. The SD card install for a Jetson Orin Nano incudes Docker, but host installs do not. Looky here:

Background

When you install Jetson Linux from an x86 host machine, the process flashes the operating system onto the Jetson device. If you’re using the NVIDIA SDK Manager, it goes a step further and installs JetPack—NVIDIA’s suite of tools and libraries—onto the Jetson as well. However, even though the flash process includes the nv-containers library for supporting containerized workloads, Docker itself isn’t installed by default anymore with JetPack 6. This is a shift from previous versions, where Docker came pre-installed on host-based setups. (The SD card install for a Jetson Orin Nano, on the other hand, still includes Docker out of the box.)

This change matters because Docker is a cornerstone for many in the Jetson community, especially those working on machine learning, AI, and robotics projects. It simplifies deploying and managing complex applications, making it foundational to much of the community’s efforts. So, when Docker isn’t included—or worse, breaks after an update—it can throw a wrench into your workflow.

These scripts install Docker on the rootfs, and are meant for systems that run from a SSD. On a Jetson Orin Nano Developer Kit, if you want to use your SSD strictly as a separate data store and boot from the SD card, do not use these scripts. Instead see: Tips – SSD + Docker on the Jetson AI Lab website.

Install and Configure Docker

To install Docker, first clone the repository and switch to its directory:

$ git clone https://github.com/jetsonhacks/install-docker.git

$ cd install-docker

Then, to install Docker (which will also downgrade to version 27.5.1):

$ bash ./install_nvidia_docker.sh

Configuring Docker

To use Docker more efficiently on the Jetson, we can add ourselves to the docker group. This will allow us to work with Docker without having to prefix our commands with sudo. In order to take advantage of the Jetson hardware and GPU, we set the Docker runtime to ‘nvidia’:

$ bash ./configure_nvidia_docker.sh

Unhold and Upgrade Docker

If you installed Docker using these scripts, the Docker packages may have been downgraded and marked as ‘hold’ so that they would not be upgraded with apt upgrade. This is because Docker release 28.0.0 was not compatible with the default Jetson configuration. A subsequent Docker release addressed this issue, but still has problems on the Jetson. This script does a ‘mark unhold’ on the affected packages and upgrades, which will be handy when the issue is fixed.

$ base ./unhold_and_upgrade_docker.sh

Downgrade Docker

An issue with Docker 28.0.0 (released 2/20/2025) requires changes to the kernel which are not implemented in the current Jetson 6.2 release. If you have Docker installed, and after an apt upgrade the Docker daemon will not run, you can downgrade to Docker 27.5.1 using the downgrade_docker.sh script:

$ bash ./downgrade_docker.sh

Docker is downgraded to 27.5.1 and the packages are marked hold so that apt upgrade will not upgrade them automatically.

Important Note: The packages are marked as ‘hold’ which means that Docker will not be upgraded the next time you perform an ‘apt upgrade’. In the future you may want to change this, for example, when the official NVIDIA Jetson kernel is upgraded.

Conclusion

The actual process of installing Docker is not difficult. However, when you encounter an error when the program is upgraded and doesn’t work anymore, it can be quite frustrating. Hopefully there’s enough information here to tell you what’s going on, and help you through this rough patch.

With JetPack 6 skipping Docker by default, these scripts keep your AI and robotics projects on track.

Facebook
Twitter
LinkedIn
Reddit
Email
Print

Leave a Reply

Your email address will not be published. Required fields are marked *

Disclaimer

Some links here are affiliate links. If you purchase through these links I will receive a small commission at no additional cost to you. As an Amazon Associate, I earn from qualifying purchases.

Books, Ideas & Other Curiosities