note: the L4T R32.5.0 containers can be run on both JetPack 4.5 (L4T R32.5.0) and JetPack 4.5.1 (L4T R32.5.1)
To download and run one of these images, you can use the included run script from the repo:
# L4T version in the container tag should match your L4T version
$ scripts/docker_run.sh -c nvcr.io/nvidia/l4t-pytorch:r32.5.0-pth1.7-py3
For other configurations, below are the instructions to build and test the containers using the included Dockerfiles.
Docker Default Runtime
To enable access to the CUDA compiler (nvcc) during docker build operations, add "default-runtime": "nvidia" to your /etc/docker/daemon.json configuration file before attempting to build the containers:
You will then want to restart the Docker service or reboot your system before proceeding.
Building the Containers
To rebuild the containers from a Jetson device running JetPack 4.4 or newer, first clone this repo:
$ git clone https://github.com/dusty-nv/jetson-containers
$ cd jetson-containers
Before proceeding, make sure you have set your Docker Default Runtime to nvidia as shown above.
ML Containers
To build the ML containers (l4t-pytorch, l4t-tensorflow, l4t-ml), use scripts/docker_build_ml.sh - along with an optional argument of which container(s) to build:
$ ./scripts/docker_build_ml.sh all # build all: l4t-pytorch, l4t-tensorflow, and l4t-ml
$ ./scripts/docker_build_ml.sh pytorch # build only l4t-pytorch
$ ./scripts/docker_build_ml.sh tensorflow # build only l4t-tensorflow
You have to build l4t-pytorch and l4t-tensorflow to build l4t-ml, because it uses those base containers in the multi-stage build.
Note that the TensorFlow and PyTorch pip wheel installers for aarch64 are automatically downloaded in the Dockerfiles from the Jetson Zoo.
ROS Containers
To build the ROS containers, use scripts/docker_build_ros.sh with the --distro option to specify the name of the ROS distro to build:
$ ./scripts/docker_build_ros.sh --distro all # build all of the below (default)
$ ./scripts/docker_build_ros.sh --distro melodic # build only melodic
$ ./scripts/docker_build_ros.sh --distro noetic # build only noetic
$ ./scripts/docker_build_ros.sh --distro eloquent # build only eloquent
$ ./scripts/docker_build_ros.sh --distro foxy # build only foxy
$ ./scripts/docker_build_ros.sh --distro galactic # build only galactic
You can also specify --with-pytorch and --with-slam to build variants with support for PyTorch and GPU-accelerated SLAM nodes (including ORBSLAM2 and RTABMAP). Note that Noetic, Foxy, and Galactic are built from source for Ubuntu 18.04, while Melodic and Eloquent are installed from Debian packages into the containers.
Testing the Containers
To run a series of automated tests on the packages installed in the containers, run the following from your jetson-containers directory:
$ ./scripts/docker_test_ml.sh all # test all: l4t-pytorch, l4t-tensorflow, and l4t-ml
$ ./scripts/docker_test_ml.sh pytorch # test only l4t-pytorch
$ ./scripts/docker_test_ml.sh tensorflow # test only l4t-tensorflow
To test ROS:
$ ./scripts/docker_test_ros.sh all # test if the build of ROS all was successful: 'melodic', 'noetic', 'eloquent', 'foxy'
$ ./scripts/docker_test_ros.sh melodic # test if the build of 'ROS melodic' was successful
$ ./scripts/docker_test_ros.sh noetic # test if the build of 'ROS noetic' was successful
$ ./scripts/docker_test_ros.sh eloquent # test if the build of 'ROS eloquent' was successful
$ ./scripts/docker_test_ros.sh foxy # test if the build of 'ROS foxy' was successful
请发表评论