Eintrag

Deep-Learning-Entwicklungsumgebung mit NVIDIA Container Toolkit und Docker/Podman aufbauen (1) – Installation von NVIDIA Container Toolkit & Container-Engine

Diese Serie zeigt, wie man lokal mit NVIDIA Container Toolkit eine containerbasierte Deep-Learning-Umgebung aufsetzt und sie mit SSH sowie JupyterLab als Remote-Server nutzbar macht. Teil 1 behandelt die Installation des NVIDIA Container Toolkits und der Container-Engine.

Deep-Learning-Entwicklungsumgebung mit NVIDIA Container Toolkit und Docker/Podman aufbauen (1) – Installation von NVIDIA Container Toolkit & Container-Engine

Übersicht

In dieser Serie behandeln wir die Installation von NVIDIA Container Toolkit und Docker oder Podman sowie den Prozess, eine Deep-Learning-Entwicklungsumgebung aufzubauen, indem wir auf Basis der von Docker Hub im nvidia/cuda-Repository bereitgestellten CUDA- und cuDNN-Images ein Dockerfile erstellen. Damit Interessierte das Ergebnis frei übernehmen können, teile ich das durch diesen Prozess fertiggestellte Dockerfile und Image über GitHub und Docker Hub und stelle zusätzlich eine Anleitung zur Einrichtung von SSH und JupyterLab für die Nutzung als Remote-Server bereit.
Die Serie wird aus 3 Beiträgen bestehen; der Beitrag, den Sie gerade lesen, ist der erste Teil.

Wir gehen von einem x86_64-Linux-System mit einer CUDA-fähigen NVIDIA-Grafikkarte aus. Auf Distributionen außer Ubuntu oder Fedora habe ich es nicht direkt getestet; daher können einige Details leicht abweichen.
(Überarbeitet am 12026.1.6.)

Zusammensetzung der Entwicklungsumgebung

Vergleichstabelle mit einer früheren ML-Entwicklungsumgebungs-Anleitung

Es gibt bereits einen früheren Leitfaden zum Aufbau einer Machine-Learning-Entwicklungsumgebung, der auf diesem Blog veröffentlicht wurde. Da es jedoch mehrere Änderungen gibt, habe ich diesen Beitrag neu verfasst. Die Unterschiede sind in der folgenden Tabelle zusammengefasst.

UnterschiedAlter Beitrag (Version 12021)Dieser Beitrag (geschrieben 12024, überarbeitete Version 12026)
Linux-DistributionFokus auf UbuntuNeben Ubuntu auch anwendbar auf Fedora/RHEL/Centos,
Debian, openSUSE/SLES usw.
Vorgehen beim AufbauDirekte Installation auf dem Host
Python-Virtualenv mit venv
Containerbasierte Umgebung mit NVIDIA Container Toolkit
Python-Virtualenv & Paketverwaltung mit uv
Installation des NVIDIA-GrafiktreibersOO
Direkte Installation von
CUDA und cuDNN auf dem Host
O (Apt-Paketmanager)X (da vorinstallierte Images von NVIDIA auf dem
Docker Hub verwendet werden, ist keine manuelle Installation nötig)
PortabilitätBeim Umzug auf ein anderes System muss die
Umgebung neu aufgebaut werden
Docker-basiert: Mit dem vorbereiteten Dockerfile kann man
bei Bedarf neue Images bauen oder bestehende Images
(abgesehen von zusätzlichen Volumes/Netzwerkeinstellungen)
leicht übertragen
Nutzung zusätzlicher
GPU-beschleunigter Libraries (außer cuDNN)
XEinführung von CuPy, RAPIDS, DALI
Jupyter-Notebook-InterfaceJupyter Notebook (classic)JupyterLab (Next-Generation)
SSH-Server-KonfigurationNicht behandeltEnthält eine grundlegende SSH-Server-Konfiguration

0. Vorab-Checks

  • NVIDIA Container Toolkit kann auf Linux-Distributionen verwendet werden, die die Paketmanager Apt, Yum oder Dnf sowie Zypper unterstützen. Auf der verlinkten Seite können Sie die Liste der unterstützten Distributionen prüfen. Fedora ist zwar in der offiziellen Support-Tabelle nicht gesondert aufgeführt, basiert jedoch wie RHEL auf Red Hat Linux und ist daher problemlos nutzbar. Wenn Sie mit Linux nicht vertraut sind und unsicher sind, welche Distribution Sie wählen sollen, ist Ubuntu LTS in der Regel die sicherste Wahl: Auch proprietäre Treiber lassen sich automatisch installieren, was für Einsteiger relativ bequem ist, und wegen der großen Nutzerbasis sind die meisten technischen Dokumentationen auf Ubuntu ausgerichtet.
    • Die Architektur und die Version Ihrer Linux-Distribution können Sie im Terminal mit uname -m && cat /etc/*release prüfen.
  • Prüfen Sie zunächst, ob die im System verbaute Grafikkarte die CUDA- und cuDNN-Versionen unterstützt, die Sie verwenden möchten.

Wenn Sie eine neue Grafikkarte speziell für Deep-Learning-Workloads kaufen möchten, sind die Kriterien zur GPU-Auswahl im folgenden Beitrag sehr gut zusammengefasst. Der Autor aktualisiert den Artikel unregelmäßig.

Wenn Sie nicht nur eine GPU-, sondern eine umfassende Hardware-Konfigurations-Anleitung benötigen, ist auch der Beitrag A Full Hardware Guide to Deep Learning desselben Autors sehr hilfreich.

Wenn alle oben genannten Punkte erfüllt sind, beginnen wir mit der Einrichtung der Arbeitsumgebung.

1. Installation des NVIDIA-Grafiktreibers

Zuerst muss der NVIDIA-Grafiktreiber auf dem Host-System installiert werden. Man kann den .run-Installer von der NVIDIA-Treiber-Downloadseite herunterladen und verwenden; empfehlenswerter ist jedoch, den Treiber über den Paketmanager des Systems zu installieren, da das in Bezug auf Versionsmanagement und Wartbarkeit vorteilhaft ist. Installieren Sie den passenden Treiber für Ihre Umgebung anhand der offiziellen Dokumentation: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/#driver-installation.

Proprietäres Modul vs. Open-Source-Modul

Der NVIDIA-Linux-Treiber besteht aus mehreren Kernel-Modulen. Seit dem Treiber 515 und späteren Releases stellt NVIDIA zwei Typen von Treiber-Kernel-Modulen bereit.

Der Proprietary-Treiber wird für GPUs bereitgestellt, die auf Architekturen von Maxwell bis vor Blackwell basieren; ab der Blackwell-Architektur soll die Unterstützung eingestellt werden.
Der Open-Source-Treiber hingegen wird für Turing und spätere Architekturen unterstützt.

NVIDIA empfiehlt, wenn möglich, die Open-Source-Kernel-Module zu verwenden.
Ob Ihre GPU mit dem Open-Source-Treiber kompatibel ist, können Sie über diesen Link prüfen.

In diesem Beitrag wird davon ausgegangen, dass der Open-Source-Treiber installiert wird.

Debian & Ubuntu

Unter Ubuntu oder Debian installieren Sie ihn, indem Sie im Terminal die folgenden Befehle ausführen.

1
2
sudo apt update
sudo apt install nvidia-open

Fedora

Ausgehend von Fedora 40 stelle ich die Methode vor, vorgebaute Pakete aus RPM Fusion herunterzuladen und zu installieren.

1-Fedora-1. RPM-Fusion-Repository einrichten

Gehen Sie nach der offiziellen RPM-Fusion-Anleitung vor.
Führen Sie im Terminal folgende Befehle aus.

1
2
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
sudo dnf config-manager setopt fedora-cisco-openh264.enabled=1

In älteren DNF-Versionen (Fedora 40 und früher) sah die Kommandozeile zur Aktivierung des openh264-Repositorys in der zweiten Zeile wie folgt aus:

1
sudo dnf config-manager --enable fedora-cisco-openh264

Seit DNF 5 (Fedora 41+) muss man stattdessen

1
sudo dnf config-manager setopt fedora-cisco-openh264.enabled=1

verwenden; entsprechend wurde der Beitrag aktualisiert.

1-Fedora-2. Paket akmod-nvidia installieren

Orientieren Sie sich an der NVIDIA-Treiber-Installationsanleitung von RPM Fusion und installieren Sie akmod-nvidia.

1
2
3
sudo dnf update  # Falls es in diesem Schritt ein Kernel-Update gab: in den neuesten Kernel rebooten und dann fortfahren
sudo dnf install akmod-nvidia
sudo dnf mark user akmod-nvidia

Ebenso war in älteren DNF-Versionen (Fedora 40 und früher) die Kommandozeile in der dritten Zeile zum Verhindern der NVIDIA-Treiber-Entfernung bei autoremove wie folgt:

1
sudo dnf mark install akmod-nvidia

Seit DNF 5 (Fedora 41+) muss man stattdessen

1
sudo dnf mark user akmod-nvidia

verwenden; entsprechend wurde der Beitrag aktualisiert.

RPM Fusion hatte in der Vergangenheit eine kritische Haltung gegenüber den NVIDIA Open-Source-Kernel-Modulen und lieferte standardmäßig den Proprietary-Treiber aus, sofern man nichts explizit angab. Laut den kürzlich (Dezember 12025) geänderten Richtlinien von RPM Fusion wird bei Hardware mit doppelter Unterstützung (Architekturen von Turing bis vor Blackwell) nun automatisch die bessere Variante ausgewählt; man müsse daher nicht mehr selbst entscheiden. Für ältere Architekturen vor Turing sowie für Blackwell und neuere Architekturen gab es ohnehin jeweils nur eine Option, sodass es dort keine Änderungen gibt. Entsprechend wurde bestätigt, dass Inhalte zur Festlegung der Open-Source-Kernel-Module über /etc/rpm/macros.nvidia-kmod entfernt wurden.

Außerdem heißt es, man solle das Paket akmod-nvidia-open nur dann verwenden, wenn man Downstream-Änderungen am Kernel-Space-Treiber direkt anwenden muss.

Diese Punkte wurden ebenfalls neu in den Beitrag aufgenommen.

1-Fedora-3. Secure Boot: Schlüssel registrieren, damit der Treiber korrekt lädt

Mit den unten beschriebenen zusätzlichen Schritten kann man Secure Boot weiterhin nutzen und zugleich den NVIDIA-Grafiktreiber verwenden. Da das Deaktivieren von Secure Boot die Systemsicherheit deutlich schwächen kann, wird empfohlen, es nicht auszuschalten. Spätestens seit den 12020ern gibt es in den meisten Fällen kaum noch Gründe, Secure Boot zu deaktivieren.

Installieren Sie zunächst die folgenden Tools.

1
sudo dnf install kmodtool akmods mokutil openssl

Erzeugen Sie anschließend mit dem folgenden Befehl einen Schlüssel.

1
sudo kmodgenca -a

Nun müssen Sie den erzeugten Schlüssel im MOK der UEFI-Firmware registrieren.

1
sudo mokutil --import /etc/pki/akmods/certs/public_key.der

Nach Ausführung dieses Befehls werden Sie zur Eingabe eines Passworts für die Schlüsselregistrierung aufgefordert. In Kürze werden Sie neu booten müssen, um den Vorgang abzuschließen; das Passwort ist ein Einmalpasswort für diesen Schritt – geben Sie also etwas ein, das Sie kurz behalten können.

Starten Sie jetzt das System mit dem folgenden Befehl neu.

1
systemctl reboot

Beim Booten erscheint automatisch das MOK-Management-Fenster. Wählen Sie „Enroll MOK“, dann nacheinander „Continue“ und „Yes“. Danach wird ein Fenster angezeigt, das das zuvor gesetzte Passwort verlangt. Nach Eingabe ist die Schlüsselregistrierung abgeschlossen. Geben Sie nun „reboot“ ein, um erneut zu booten; danach sollte der NVIDIA-Treiber korrekt geladen werden.

Überprüfen der NVIDIA-Treiberinstallation

Mit folgendem Befehl können Sie im Terminal prüfen, welches NVIDIA-Kernel-Modul aktuell geladen ist.

1
cat /proc/driver/nvidia/version

Wenn eine Ausgabe ähnlich der folgenden erscheint, ist die Installation erfolgreich.

1
2
NVRM version: NVIDIA UNIX Open Kernel Module for x86_64  555.58.02  Release Build  (dvs-builder@U16-I3-B03-4-3)  Tue Jun 25 01:26:03 UTC 2024
GCC version:  gcc version 14.2.1 20240801 (Red Hat 14.2.1-1) (GCC) 

Außerdem sollte unter Linux der oft standardmäßig verwendete Open-Source-Grafiktreiber bzw. das Kernel-Modul nouveau nach der Installation des NVIDIA-Treibers deaktiviert sein; andernfalls kann es Probleme verursachen. Nach Installation und Reboot sollte der folgende Befehl keine Ausgabe liefern.

1
lsmod |grep nouveau

2. Installation von NVIDIA Container Toolkit

Als Nächstes installieren Sie das NVIDIA Container Toolkit. Folgen Sie dabei der offiziellen Installationsanleitung. Für Fedora gibt es während der Installation Hinweise zu beachten – lesen Sie daher diesen Abschnitt vollständig, bevor Sie fortfahren.

Bei Verwendung von Apt (Ubuntu, Debian usw.)

2-Apt-1. Repository für den Paketdownload einrichten

1
2
3
4
curl -fsSL 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

2-Apt-2. Paketliste aktualisieren

1
sudo apt update

2-Apt-3. Paket installieren

1
sudo apt install nvidia-container-toolkit

Bei Verwendung von Yum oder Dnf (Fedora, RHEL, Centos usw.)

Als ich es unter Fedora 40 getestet habe, waren – anders als unter Ubuntu – der Befehl nvidia-smi sowie das Paket nvidia-persistenced nicht standardmäßig im NVIDIA-Grafiktreiber enthalten, sodass zusätzlich das Paket xorg-x11-drv-nvidia-cuda installiert werden musste. RHEL und Centos habe ich nicht direkt getestet; da die Systemkonfiguration aber Fedora sehr ähnlich ist, kann es hilfreich sein, dieselbe Vorgehensweise zu probieren, falls mit der folgenden Anleitung Probleme auftreten.

Unter Fedora 40 hat es bei mir nach Installation von xorg-x11-drv-nvidia-cuda und Test mit einem Sample-Workload korrekt funktioniert. Falls dennoch Probleme auftreten (z.B. wegen SELinux), kann das Fedora-spezifische Paket und die Anleitung der Fedora AI-ML Group hilfreich sein.

2-Dnf-1. Repository für den Paketdownload einrichten

1
2
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | \
sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo

2-Dnf-2. Paket installieren

1
sudo dnf install nvidia-container-toolkit

oder

1
sudo yum install nvidia-container-toolkit

Bei Verwendung von Zypper (openSUSE, SLES)

2-Zypper-1. Repository für den Paketdownload einrichten

1
sudo zypper ar https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo

2-Zypper-2. Paket installieren

1
sudo zypper --gpg-auto-import-keys install nvidia-container-toolkit

3. Installation der Container-Engine

Als Nächstes installieren Sie als Container-Engine Docker CE oder Podman. Wählen Sie je nach Umgebung und Präferenz eine der beiden Optionen und orientieren Sie sich an der Docker-Dokumentation bzw. der Podman-Dokumentation.

Die folgende Tabelle fasst die wichtigsten Unterschiede sowie Vor- und Nachteile von Docker und Podman zusammen.

VergleichspunktDockerPodman
ArchitekturClient-Server-Modell, daemon-basiertDaemonlos (daemonless)
SicherheitAbhängig von einem Daemon, der standardmäßig mit
Root-Rechten läuft → potenzielles Sicherheitsrisiko
(Rootless-Modus seit Version 20.10, angekündigt in 12020,
aber zusätzliche Konfiguration nötig)
Kein Daemon; sofern nicht anders konfiguriert,
standardmäßig rootless und durch SELinux geschützt
RessourcenverbrauchDurch den daemon-basierten Aufbau läuft ein Background-Prozess
ständig, daher i.d.R. höherer Ressourcenverbrauch
In der Regel geringerer Overhead
Container-StartzeitRelativ langsamDurch vereinfachte Architektur bis zu ca. 50%
schnellere Ausführung
Ökosystem & DokumentationSehr großes Ökosystem und Community-Support,
umfangreiche Dokumentation
Vergleichsweise kleineres Ökosystem und weniger Dokumentation
NetworkingDocker Bridge NetworkCNI (Container Network Interface)-Plugins
Native Unterstützung von
Kubernetes-YAML
X (Konvertierung nötig)O

Referenzen:

Docker hat eine längere Historie und gilt in der Industrie lange Zeit de facto als Standard, weshalb ein breites Ökosystem und sehr viel Dokumentation der größte Vorteil sind.
Podman hingegen wurde сравнително kürzlich von Red Hat entwickelt und verfolgt von Grund auf einen daemonlosen und rootlosen Ansatz. Dadurch hat es Vorteile in Bezug auf Sicherheit, Systemressourcenverbrauch und Container-Startzeit. Ein weiterer Pluspunkt: Während bei Docker bei Problemen mit dem Daemon alle Container gemeinsam ausfallen können, sind Podman-Container vollständig unabhängig, sodass ein Ausfall eines Containers andere nicht beeinflusst.

Am wichtigsten ist es, je nach den eigenen Rahmenbedingungen das passende Tool zu wählen. Für Einsteiger scheint Podman jedoch eine gute Wahl zu sein. Zwar ist das Ökosystem im Vergleich zu Docker kleiner, doch dank der genannten Vorteile wächst es schnell und schließt die Lücke. Zudem ist es in vielen Bereichen mit Docker kompatibel, etwa bei Dockerfile-Syntax, Docker-Images und der CLI (Command Line Interface). Wenn es keinen zwingenden Grund gibt (z.B. weil bereits ein großes Docker-basiertes System existiert und ein Wechsel hohe Umstellungskosten verursacht), ist es sinnvoll, von Anfang an Podman zu wählen.

Podman

Da es in den System-Repositories der meisten großen Linux-Distributionen verfügbar ist, lässt es sich einfach installieren.

Ubuntu

1
sudo apt install podman

Fedora

1
sudo dnf install podman

openSUSE

1
sudo zypper install podman

Prüfen, ob alles korrekt eingerichtet ist

Führen Sie im Terminal den folgenden Befehl aus.

1
podman run --rm hello-world

Wenn eine Ausgabe wie die folgende erscheint, ist es erfolgreich.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
!... Hello Podman World ...!

         .--"--.           
       / -     - \         
      / (O)   (O) \        
   ~~~| -=(,Y,)=- |         
    .---. /`  \   |~~      
 ~/  o  o \~~~~.----. ~~   
  | =(X)= |~  / (O (O) \   
   ~~~~~~~  ~| =(Y_)=-  |   
  ~~~~    ~~~|   U      |~~ 

Project:   https://github.com/containers/podman
Website:   https://podman.io
Desktop:   https://podman-desktop.io
Documents: https://docs.podman.io
YouTube:   https://youtube.com/@Podman
X/Twitter: @Podman_io
Mastodon:  @[email protected]

Als ich am 12025-12-18T00:43:00+09:00 mit Podman 5.7.1, passt 20251215.gb40f5cd-1.fc43.x86_64 und Fedora 43 getestet habe, trat beim Ausführen von Containern oder beim Image-Build (einschließlich des obigen hello-world) der folgende Fehler auf:

1
2
Error: pasta failed with exit code 1:
Couldn't set IPv6 route(s) in guest: Operation not supported

Obwohl ich IPv6 nicht nutze und mich in einer IPv4-Netzwerkumgebung befinde, scheint dies dadurch ausgelöst zu werden, dass pasta (enthalten in der passt-Library) in der Container-Netzwerkkonfiguration IPv6-Routing versucht. Beim Container-Start bzw. in dem später beschriebenen Image-Build-Schritt konnte ich das Problem beheben, indem ich explizit --net=pasta:-4 setze, um IPv4 zu erzwingen:

1
podman run --net=pasta:-4 --rm hello-world

Bei der Recherche bin ich auf ein bereits früher gemeldetes Issue mit denselben Symptomen gestoßen. Dort heißt es, es sei in 2024_06_24.1ee2eca behoben worden. Da die beobachteten Symptome identisch sind und es u.a. ebenfalls in Verbindung mit Proton VPN auftrat, vermute ich, dass ein ähnliches Problem erneut aufgetreten sein könnte.

Docker CE

Ubuntu

3-Ubuntu-1. Alte oder inoffizielle Pakete entfernen (Konfliktvermeidung)
1
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt remove $pkg; done
3-Ubuntu-2. Repository einrichten
1
2
3
4
5
6
7
8
9
10
11
12
# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
3-Ubuntu-3. Pakete installieren
1
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
3-Ubuntu-4. Gruppe Docker erstellen und Benutzer hinzufügen

Damit auch ein non-root Benutzer Docker ohne sudo verwalten kann, erstellen Sie die Gruppe Docker und fügen den gewünschten Benutzer hinzu. Führen Sie im Terminal Folgendes aus.

1
2
sudo groupadd docker
sudo usermod -aG docker $USER

Melden Sie sich anschließend ab und wieder an, damit die Änderungen wirksam werden. Unter Ubuntu oder Debian startet der Docker-Service in der Regel automatisch bei jedem Systemstart, ohne dass weitere Schritte nötig sind.

Fedora

3-Fedora-1. Alte oder inoffizielle Pakete entfernen (Konfliktvermeidung)
1
2
3
4
5
6
7
8
9
10
sudo dnf remove docker \
                docker-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-selinux \
                docker-engine-selinux \
                docker-engine
3-Fedora-2. Repository einrichten
1
2
sudo dnf install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
3-Fedora-3. Pakete installieren
1
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Während der Installation werden Sie gefragt, ob Sie den GPG-Key akzeptieren möchten. Wenn der Key mit 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35 übereinstimmt, geben Sie y ein, um zu bestätigen.

Falls der GPG-Key nicht übereinstimmt, könnten die Pakete durch einen Supply-Chain-Angriff manipuliert worden sein; in diesem Fall sollte die Installation abgebrochen werden.

3-Fedora-4. Docker-Daemon starten

Docker ist jetzt installiert, aber noch nicht gestartet. Mit folgendem Befehl starten Sie Docker.

1
sudo systemctl start docker

Damit der Docker-Service bei jedem Systemstart automatisch läuft:

1
2
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
3-Fedora-5. Benutzer zur Gruppe Docker hinzufügen

Damit auch ein non-root Benutzer Docker verwalten kann, fügen Sie ihn zur Gruppe Docker hinzu. Unter Fedora wird die Gruppe Docker im Installationsprozess automatisch erstellt, daher müssen Sie nur den Benutzer registrieren.

1
sudo usermod -aG docker $USER

Melden Sie sich anschließend ab und wieder an, damit die Änderungen wirksam werden.

Prüfen, ob alles korrekt eingerichtet ist

Führen Sie im Terminal den folgenden Befehl aus.

1
docker run hello-world

Wenn eine Ausgabe wie die folgende erscheint, ist es erfolgreich.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Weiterführendes

Fortsetzung in Teil 2

Dieser Eintrag ist vom Autor unter CC BY-NC 4.0 lizensiert.