Docker sur Jetson

Retour au Module 3 | Retour à la Table des Matières

13. Installer Docker et Utilisation de Base

Introduction

Docker est une plateforme de conteneurs légère qui emballe une application et toutes ses dépendances dans des conteneurs portables. Elle vous aide à exécuter le même environnement en développement, test et production avec beaucoup moins de dérive de configuration.

Docker améliore la cohérence grâce à l'isolation des processus, le démarrage rapide et l'utilisation efficace des ressources. Il est bien adapté au développement local, au déploiement sur serveur et aux pipelines d'IA multi-services.

Installer Docker sur Jetson

1. Installer Docker CE

bash
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

Ajouter la clé GPG Docker et le dépôt (l'exemple ci-dessous utilise le miroir Aliyun):

bash
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg \
  | sudo gpg --dearmor -o /usr/share/keyrings/docker-ce.gpg

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] \
https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

Vérifier l'installation de Docker:

bash
docker --version

Docker installé

Ajouter votre utilisateur au groupe docker (redémarrer le shell ou exécuter newgrp):

bash
sudo usermod -aG docker "$USER"
newgrp docker

Après cela, vous pouvez exécuter des commandes Docker sans sudo.

2. Installer NVIDIA Container Toolkit

bash
distribution=$(. /etc/os-release; echo "$ID$VERSION_ID")

curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey \
  | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg

curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
  | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
  | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

NVIDIA Container Toolkit

Installer le toolkit:

bash
sudo apt update
sudo apt install -y nvidia-container-toolkit

Activer le runtime GPU pour Docker:

bash
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

Vérifier l'accès GPU dans un conteneur:

bash
sudo docker run --rm --runtime=nvidia --gpus all --network host ubuntu nvidia-smi

Si des restrictions réseau existent dans votre environnement, utilisez un miroir/proxy lors du téléchargement des images ou des paquets.

3. Installation manuelle (APT non disponible)

Si Docker CE ne peut pas être installé depuis le dépôt Ubuntu, téléchargez les paquets .deb manuellement depuis:

https://download.docker.com/linux/ubuntu/dists/

Choisissez votre version d'Ubuntu:

Version UbuntuCodeDossier exemple
Ubuntu 20.04 LTSfocaldists/focal/pool/stable/
Ubuntu 22.04 LTSjammydists/jammy/pool/stable/
Ubuntu 24.04 LTSnobledists/noble/pool/stable/

Sélectionnez ensuite le dossier de votre architecture:

  • amd64: x86_64 (Serveur / PC)
  • arm64: ARM 64-bit, y compris Jetson
  • armhf: ARM 32-bit
  • s390x: Systèmes IBM z

Téléchargez les cinq paquets correspondants:

  • containerd.io_<version>_<arch>.deb
  • docker-ce_<version>_<arch>.deb
  • docker-ce-cli_<version>_<arch>.deb
  • docker-buildx-plugin_<version>_<arch>.deb
  • docker-compose-plugin_<version>_<arch>.deb

Installez-les depuis le dossier où vous avez téléchargé les fichiers:

bash
sudo dpkg -i ./containerd.io_<version>_<arch>.deb \
  ./docker-ce_<version>_<arch>.deb \
  ./docker-ce-cli_<version>_<arch>.deb \
  ./docker-buildx-plugin_<version>_<arch>.deb \
  ./docker-compose-plugin_<version>_<arch>.deb

Si des dépendances sont manquantes, exécutez:

bash
sudo apt -f install

Vérifier le statut du service Docker:

bash
sudo systemctl status docker

Si Docker ne fonctionne pas:

bash
sudo systemctl start docker

Bases de Docker

Docker Engine fournit la CLI Docker (docker), qui vous permet de gérer les images, conteneurs, réseaux et le stockage depuis la ligne de commande.

Avant d'apprendre les commandes courantes, révisez ces deux concepts fondamentaux:

  • Image: Un modèle en lecture seule qui contient le système d'exploitation de base, le runtime, les bibliothèques et le code d'application nécessaires pour exécuter un conteneur.
  • Conteneur: Une instance en cours d'exécution créée à partir d'une image; il a son propre processus et environnement, et peut être démarré/arrêté indépendamment.

En résumé:

Une image Docker est comme un paquete d'installation, tandis qu'un conteneur est une instance de programme en cours d'exécution.

Commandes Courantes

1) Afficher les infos Docker

bash
docker info

2) Afficher la version Docker

bash
docker --version

3) Télécharger une image

bash
docker pull <nom_image>

Si aucune étiquette n'est spécifiée, Docker télécharge latest par défaut.

bash
docker pull <nom_image>:<étiquette>

4) Exécuter une image

bash
docker run <nom_image>

Exécuter une image spécifique de manière interactive:

bash
docker run -it ubuntu:18.04 /bin/bash

Quitter un conteneur en cours d'exécution en tapant exit.

4.1) Lister les conteneurs en cours d'exécution

bash
docker ps

4.2) Lister tous les conteneurs

bash
docker ps -a

5) Supprimer les conteneurs arrêtés

bash
docker container prune

6) Lister les images locales

bash
docker images

7) Supprimer une image

Supprimer uniquement après avoir arrêté et supprimé les conteneurs associés.

bash
docker rmi <nom_image>

8) Sauvegarder un conteneur comme nouvelle image

bash
docker commit <id_conteneur> <nouveau_nom_image>:<étiquette>

Choisissez un nom et une étiquette en fonction de l'ID réel du conteneur.

9) Arrêter un conteneur

bash
docker stop <id_ou_nom_conteneur>

Retour au Module 3