Docker auf Jetson

Zurück zu Modul 3 | Zurück zum Inhaltsverzeichnis

13. Docker installieren und grundlegende Verwendung

Einführung

Docker ist eine leichtgewichtige Container-Plattform, die eine Anwendung und alle ihre Abhängigkeiten in portable Container verpackt. Sie hilft Ihnen, dieselbe Umgebung in Entwicklung, Test und Produktion mit viel weniger Konfigurationsabweichungen auszuführen.

Docker verbessert die Konsistenz durch Prozessisolierung, schnellen Start und effiziente Ressourcennutzung. Es eignet sich gut für lokale Entwicklung, Server-Bereitstellung und Multi-Service-AI-Pipelines.

Docker auf Jetson installieren

1. Docker CE installieren

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

Docker GPG-Schlüssel und Repository hinzufügen (Beispiel unten verwendet Aliyun-Mirror):

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

Docker-Installation überprüfen:

bash
docker --version

Docker installiert

Benutzer zur Docker-Gruppe hinzufügen (Shell neu starten oder newgrp ausführen):

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

Danach können Sie Docker-Befehle ohne sudo ausführen.

2. NVIDIA Container Toolkit installieren

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

Toolkit installieren:

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

GPU-Laufzeit für Docker aktivieren:

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

GPU-Zugriff in einem Container überprüfen:

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

Wenn Netzwerkeinschränkungen in Ihrer Umgebung bestehen, verwenden Sie einen Mirror/Proxy beim Abrufen von Images oder Paketen.

3. Manuelle Installation (APT nicht verfügbar)

Wenn Docker CE nicht aus dem Ubuntu-Repository installiert werden kann, laden Sie die .deb-Pakete manuell von herunter:

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

Wählen Sie Ihre Ubuntu-Version:

Ubuntu-VersionCodeBeispielordner
Ubuntu 20.04 LTSfocaldists/focal/pool/stable/
Ubuntu 22.04 LTSjammydists/jammy/pool/stable/
Ubuntu 24.04 LTSnobledists/noble/pool/stable/

Wählen Sie dann Ihren Architekturordner:

  • amd64: x86_64 (Server / PC)
  • arm64: ARM 64-Bit, einschließlich Jetson
  • armhf: ARM 32-Bit
  • s390x: IBM z-Systeme

Laden Sie die fünf passenden Pakete herunter:

  • 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

Installieren Sie sie aus dem Ordner, in dem Sie die Dateien heruntergeladen haben:

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

Wenn Abhängigkeiten fehlen, führen Sie aus:

bash
sudo apt -f install

Docker-Dienststatus überprüfen:

bash
sudo systemctl status docker

Wenn Docker nicht läuft:

bash
sudo systemctl start docker

Docker-Grundlagen

Die Docker Engine stellt die Docker-CLI (docker) bereit, mit der Sie Images, Container, Netzwerke und Speicher über die Befehlszeile verwalten können.

Bevor Sie sich mit häufigen Befehlen vertraut machen, überprüfen Sie diese beiden Kernkonzepte:

  • Image: Eine schreibgeschützte Vorlage, die das Basis-BS, die Laufzeit, Bibliotheken und den App-Code enthält, die zum Ausführen eines Containers erforderlich sind.
  • Container: Eine aus einem Image erstellte laufende Instanz; sie hat ihren eigenen Prozess und ihre eigene Umgebung und kann unabhängig gestartet/gestoppt werden.

Kurz gesagt:

Ein Docker-Image ist wie ein Installationspaket, während ein Container eine laufende Programminstanz ist.

Häufige Befehle

1) Docker-Info anzeigen

bash
docker info

2) Docker-Version anzeigen

bash
docker --version

3) Image abrufen

bash
docker pull <image_name>

Wenn kein Tag angegeben ist, ruft Docker standardmäßig latest ab.

bash
docker pull <image_name>:<tag>

4) Image ausführen

bash
docker run <image_name>

Ein bestimmtes Image interaktiv ausführen:

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

Einen laufenden Container durch Eingabe von exit verlassen.

4.1) Laufende Container auflisten

bash
docker ps

4.2) Alle Container auflisten

bash
docker ps -a

5) Gestoppte Container entfernen

bash
docker container prune

6) Lokale Images auflisten

bash
docker images

7) Ein Image entfernen

Erst nach dem Stoppen und Löschen der zugehörigen Container entfernen.

bash
docker rmi <image_name>

8) Einen Container als neues Image speichern

bash
docker commit <container_id> <new_image_name>:<tag>

Wählen Sie einen Namen und Tag entsprechend der tatsächlichen Container-ID.

9) Einen Container stoppen

bash
docker stop <container_id_or_name>

Zurück zu Modul 3