Docker op Jetson

Terug naar Module 3 | Terug naar Inhoudsopgave

13. Docker installeren en Basisgebruik

Introductie

Docker is een lichtgewicht containerplatform dat een applicatie en al zijn afhankelijkheden inpakt in draagbare containers. Het helpt u om dezelfde omgeving te draaien in ontwikkeling, testen en productie met veel minder configuratiedrift.

Docker verbetert consistentie door procesisolatie, snelle opstart en efficiënt resourcegebruik. Het is zeer geschikt voor lokale ontwikkeling, serverimplementatie en multi-service AI-pipelines.

Docker op Jetson installeren

1. Docker CE installeren

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

Docker GPG-sleutel en repository toevoegen (onderstaand voorbeeld gebruikt 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-installatie verifiëren:

bash
docker --version

Docker geïnstalleerd

Uw gebruiker toevoegen aan de docker-groep (shell opnieuw starten of newgrp uitvoeren):

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

Hierna kunt u Docker-opdrachten uitvoeren zonder sudo.

2. NVIDIA Container Toolkit installeren

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 installeren:

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

GPU-runtime voor Docker inschakelen:

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

GPU-toegang binnen een container verifiëren:

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

Als er netwerkbeperkingen zijn in uw omgeving, gebruik dan een mirror/proxy bij het ophalen van images of pakketten.

3. Handmatige installatie (APT niet beschikbaar)

Als Docker CE niet kan worden geïnstalleerd vanuit de Ubuntu-repository, download dan de .deb-pakketten handmatig van:

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

Kies uw Ubuntu-versie:

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

Selecteer vervolgens uw architectuurmap:

  • amd64: x86_64 (Server / PC)
  • arm64: ARM 64-bit, inclusief Jetson
  • armhf: ARM 32-bit
  • s390x: IBM z-systemen

Download de vijf bijpassende pakketten:

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

Installeer ze vanuit de map waar u de bestanden hebt gedownload:

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

Als afhankelijkheden ontbreken, voer dan uit:

bash
sudo apt -f install

Docker-servicestatus controleren:

bash
sudo systemctl status docker

Als Docker niet draait:

bash
sudo systemctl start docker

Docker-basisprincipes

De Docker Engine biedt de Docker CLI (docker), waarmee u images, containers, netwerken en opslag vanaf de opdrachtregel kunt beheren.

Voordat u veelgebruikte opdrachten leert, bekijk dan deze twee kernconcepten:

  • Image: Een alleen-lezen sjabloon die het basis-OS, runtime, bibliotheken en app-code bevat die nodig zijn om een container te draaien.
  • Container: Een draaiende instantie gemaakt van een image; het heeft zijn eigen proces en omgeving, en kan onafhankelijk worden gestart/gestopt.

Kort samengevat:

Een Docker-image is als een installatiepakket, terwijl een container een draaiende programma-instantie is.

Veelgebruikte opdrachten

1) Docker-info tonen

bash
docker info

2) Docker-versie tonen

bash
docker --version

3) Image ophalen

bash
docker pull <image_naam>

Als er geen tag is opgegeven, haalt Docker standaard latest op.

bash
docker pull <image_naam>:<tag>

4) Image draaien

bash
docker run <image_naam>

Een specifieke image interactief draaien:

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

Een draaiende container verlaten door exit te typen.

4.1) Draaiende containers tonen

bash
docker ps

4.2) Alle containers tonen

bash
docker ps -a

5) Gestopte containers verwijderen

bash
docker container prune

6) Lokale images tonen

bash
docker images

7) Een image verwijderen

Verwijder pas nadat u de gerelateerde containers hebt gestopt en verwijderd.

bash
docker rmi <image_naam>

8) Een container opslaan als nieuwe image

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

Kies een naam en tag op basis van de werkelijke container-ID.

9) Een container stoppen

bash
docker stop <container_id_of_naam>

Terug naar Module 3