Getting Started with Docker and ZED SDK

Introduction

Docker lets you run code in a container, a virtualized world where all of the code dependencies are in place. Within a container the code is isolated from the rest of the host machine.

For the ZED SDK, with its specific OS and NVIDIA CUDA requirements, Docker means you can use the SDK on an unsupported operating system and without installing its target CUDA version – saving time and keeping your system “clean” from version conflicts. The isolation from your host machine also means that what you build is much more portable since it can be docked to other devices the same way.

Examples of when this is useful:

  • You’re working on a Linux distribution like Debian or CentOS which is not supported by the SDK. Switching to Ubuntu may not be an option and would be time-consuming. Docker lets you run the ZED SDK inside its own Ubuntu environment on your non-Ubuntu device with little effort.
  • You’re testing different versions of the ZED SDK at the same time, perhaps to check how the latest version improves performance over the one you’re been building your app with. Docker lets you quickly switch between them without reinstalling the SDK, CUDA, and possibly the OS.
  • You need to build, test and deploy an app using the ZED SDK in an isolated environment to be sure they don’t depend on a factor of the host machine other than the stated dependencies. This is useful for CI/CD (Continuous Integration/Continuous Delivery). We do this at Stereolabs to build our ROS wrapper among other things.

All this comes with virtually no performance cost. The only cost you do pay is the initial setup and configuration that is explained in the following documentations. We also provide ready-to-go containers and Dockerfiles.