Vybudování vývojového prostředí pro hluboké učení pomocí NVIDIA Container Toolkit a Dockeru/Podmanu (1) – Instalace NVIDIA Container Toolkit a kontejnerového enginu
Tato série popisuje, jak na lokálním stroji vytvořit kontejnerové vývojové prostředí pro deep learning pomocí NVIDIA Container Toolkit a jak jej připravit pro vzdálené použití přes SSH a JupyterLab. Tento první díl se zaměřuje na instalaci NVIDIA Container Toolkit a kontejnerového enginu.
Přehled
V této sérii nainstalujeme NVIDIA Container Toolkit a Docker nebo Podman a na základě obrazů CUDA a cuDNN poskytovaných v repozitáři nvidia/cuda na Docker Hubu napíšeme Dockerfile, abychom vybudovali vývojové prostředí pro hluboké učení. Aby si to kdokoli mohl snadno převzít a použít, sdílím výsledný Dockerfile a obrazy přes GitHub a Docker Hub a navíc poskytuji průvodce nastavením SSH a JupyterLabu pro využití jako vzdálený server.
Série bude mít 3 články a tento, který právě čtete, je první díl.
- díl: NVIDIA Container Toolkit & instalace kontejnerového enginu (tento článek)
- 2. díl: Nastavení kontejnerového runtime pro využití GPU, psaní Dockerfile a build kontejnerového obrazu
- díl (bude nahráno)
Postup předpokládá systém s NVIDIA GPU podporující CUDA v prostředí x86_64 Linux. Na distribucích jiných než Ubuntu nebo Fedora jsem to netestoval, takže některé detaily se mohou mírně lišit.
(revize 12026.1.6.)
Složení vývojového prostředí
- Hostitelský OS a architektura: x86_64, Linux (Ubuntu 22.04/24.04 LTS, RHEL/Centos, Fedora, openSUSE/SLES 15.x apod.)
- Budovaný technologický stack (jazyky a knihovny)
- Python 3
- NVIDIA Container Toolkit
- Docker Engine / Podman
- CUDA 12.4 / 12.8 / 13.0
- cuDNN 9
- OpenSSH
- tmux
- JupyterLab
- NumPy & SciPy
- CuPy (optional, NumPy/SciPy-compatible Array Library for GPU-accelerated Computing with Python)
- pandas
- cuDF (optional, to accelerate pandas with zero code changes with the GPU accelerator)
- Matplotlib & Seaborn
- cuxfilter (optional, to quickly visualize and filter through large datasets, with a few lines of code, using best in class charting libraries)
- DALI (optional, a high-performance alternative to built-in data loaders and data iterators using GPU)
- scikit-image
- cuCIM (optional, an accelerated n-dimensional image processing and image I/O alternative to scikit-image)
- scikit-learn
- XGBoost
- cuML (optional, to execute machine learning algorithms on GPUs with an API that closely follows the scikit-learn API)
- cuVS (optional, optimized algorithms for approximate nearest neighbors and clustering, along with many other essential tools for accelerated vector search)
- RAFT (optional, CUDA accelerated primitives which is used by other RAPIDS libraries)
- PyTorch
- cuGraph (optional, a GPU-accelerated graph analytics library which includes a zero-code-change accelerator for NetworkX)
- tqdm
Podle situace a vlastních preferencí lze zvážit použití knihovny DataFrame Polars místo pandas. Je napsaná v Rustu a při zpracování velkých dat sice zaostává za kombinací cuDF + pandas, ale oproti „čistému“ balíčku pandas má velmi výrazně lepší výkon a nabízí syntaxi více zaměřenou na dotazy. Podle oficiálního blogu Polars a dokumentace cuDF tým Polars ve spolupráci s NVIDIA RAPIDS poskytuje GPU akcelerační engine na bázi cuDF v otevřené betě a rychle na něm pracuje.
Pokud váháte, zda použít Docker CE nebo Podman, může pomoci srovnávací tabulka níže.
Srovnání s dříve napsaným průvodcem pro vytvoření ML prostředí
V tomto blogu už existuje původní průvodce vytvořením vývojového prostředí pro machine learning, ale protože došlo k řadě změn, napsal jsem tento nový článek. Rozdíly shrnuje tabulka níže.
| Rozdíl | Původní článek (verze 12021) | Tento článek (napsáno 12024, revize 12026) |
|---|---|---|
| Linux distribuce | Primárně Ubuntu | Kromě Ubuntu i Fedora/RHEL/Centos, Debian, openSUSE/SLES apod. |
| Způsob sestavení prostředí | Přímá instalace na hostiteli Python virtuální prostředí přes venv | Kontejnerové prostředí na bázi Dockeru pomocí NVIDIA Container Toolkit Virtuální prostředí a správa balíčků přes uv |
| Instalace NVIDIA grafického ovladače | O | O |
| Přímá instalace CUDA a cuDNN na hostitele | O (přes Apt) | X (používají se předinstalované obrazy od NVIDIA na Docker Hubu, není potřeba nic ručně instalovat) |
| Přenositelnost | Při přesunu na jiný systém je nutné znovu vybudovat celé prostředí | Protože jde o Docker, lze kdykoli znovu buildit nový obraz z Dockerfile nebo snadno přenést dříve používaný obraz (kromě dodatečných volume či nastavení sítě) |
| Využití dalších GPU akceleračních knihoven mimo cuDNN | X | Zavedení CuPy, RAPIDS, DALI |
| Rozhraní Jupyter Notebooku | Jupyter Notebook (classic) | JupyterLab (Next-Generation) |
| Nastavení SSH serveru | Není samostatně pokryto | Zahrnuje základní konfiguraci SSH serveru |
0. Předběžná kontrola
- NVIDIA Container Toolkit lze používat na Linux distribucích podporujících balíčkové manažery Apt, Yum nebo Dnf, Zypper. Na odkazované stránce lze ověřit seznam podporovaných distribucí. Ve oficiální tabulce není Fedora explicitně uvedena, ale protože je (stejně jako RHEL) postavená na Red Hat Linux základu, funguje bez problémů. Pokud nejste v Linuxu zběhlí a nejste si jistí, jakou distribuci zvolit, Ubuntu LTS je obvykle nejbezpečnější volba. Snadno se používá i pro začátečníky, protože se automaticky instalují i proprietární ovladače, a protože má velkou uživatelskou základnu, většina technické dokumentace je psána právě pro Ubuntu.
- Architekturu systému a verzi Linux distribuce zjistíte v terminálu příkazem
uname -m && cat /etc/*release.
- Architekturu systému a verzi Linux distribuce zjistíte v terminálu příkazem
- Nejdříve je potřeba ověřit, že GPU v systému podporuje verze CUDA a cuDNN, které chcete používat.
- Model GPU nainstalované v počítači zjistíte v terminálu příkazem
lspci | grep -i nvidia. - Na stránce https://docs.nvidia.com/deeplearning/cudnn/latest/reference/support-matrix.html ověřte pro danou verzi cuDNN podporovanou verzi NVIDIA ovladače a požadovanou CUDA Compute Capability a také seznam podporovaného NVIDIA hardwaru.
- Na https://developer.nvidia.com/cuda-gpus najděte svůj model GPU a ověřte hodnotu Compute Capability. Ta musí splňovat požadavek CUDA Compute Capability uvedený výše, aby CUDA i cuDNN fungovaly bez potíží.
- Model GPU nainstalované v počítači zjistíte v terminálu příkazem
Pokud plánujete koupit novou GPU na deep learning, kritéria výběru jsou dobře shrnuta v následujícím článku (autor jej nepravidelně aktualizuje).
Pokud potřebujete i obecnější doporučení pro sestavu hardwaru, velmi užitečný je také článek A Full Hardware Guide to Deep Learning od stejného autora.
Pokud splňujete všechny výše uvedené podmínky, můžeme začít sestavovat pracovní prostředí.
1. Instalace NVIDIA grafického ovladače
Nejprve je potřeba nainstalovat NVIDIA grafický ovladač na hostitelský systém. Můžete si stáhnout .run instalátor z NVIDIA stránky pro stahování ovladačů, ale z hlediska správy verzí a údržby je lepší použít balíčkový manažer dané distribuce. S odkazem na oficiální dokumentaci https://docs.nvidia.com/cuda/cuda-installation-guide-linux/#driver-installation nainstalujte ovladač odpovídající vašemu prostředí.
Proprietary modul vs Open-source modul
NVIDIA linuxový ovladač se skládá z několika kernelových modulů a od ovladače verze 515 (a novějších) NVIDIA poskytuje dva typy kernelových modulů ovladače:
- Proprietary: proprietární ovladač, který NVIDIA poskytovala tradičně.
- Open-source: open-source ovladač pod duální licencí MIT/GPLv2. Zdrojové kódy jsou zveřejněny na https://github.com/NVIDIA/open-gpu-kernel-modules.
Proprietary ovladač je poskytován pro GPU navržené na architekturách od Maxwell po období před Blackwell; od architektury Blackwell se jeho podpora plánuje ukončit.
Naopak open-source ovladač je podporován pro architektury Turing a novější.
NVIDIA doporučuje používat open-source kernelové moduly, pokud je to možné.
Zda je vaše GPU kompatibilní s open-source ovladačem, ověříte na tomto odkazu.
V tomto článku budu předpokládat instalaci open-source ovladače.
Debian & Ubuntu
V případě Ubuntu nebo Debianu nainstalujte v terminálu následujícími příkazy:
1
2
sudo apt update
sudo apt install nvidia-open
Fedora
Pro Fedoru 40 ukážu instalaci předbuildovaných balíčků poskytovaných přes RPM Fusion.
1-Fedora-1. Nastavení RPM Fusion repozitářů
Postupujte podle oficiálního průvodce RPM Fusion.
V terminálu spusťte:
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
Ve starších verzích DNF (Fedora 40 a dříve) měl druhý řádek pro povolení repozitáře knihoven openh264 podobu:
1 sudo dnf config-manager --enable fedora-cisco-openh264Od DNF 5 (Fedora 41+) je však nutné místo toho použít:
1 sudo dnf config-manager setopt fedora-cisco-openh264.enabled=1a proto jsem text článku aktualizoval.
1-Fedora-2. Instalace balíčku akmod-nvidia
Dle instalačního návodu pro NVIDIA ovladač od RPM Fusion nainstalujte balíček akmod-nvidia.
1
2
3
sudo dnf update # pokud zde dojde k aktualizaci kernelu, nejprve rebootněte do nejnovějšího kernelu a pak pokračujte
sudo dnf install akmod-nvidia
sudo dnf mark user akmod-nvidia
Podobně ve starších verzích DNF (Fedora 40 a dříve) měl třetí řádek, který bránil odstranění ovladače při autoremove, podobu:
1 sudo dnf mark install akmod-nvidiaOd DNF 5 (Fedora 41+) je nutné místo toho použít:
1sudo dnf mark user akmod-nvidiacož jsem v článku zohlednil.
RPM Fusion v minulosti zastávalo vůči NVIDIA open-source kernelovým modulům spíše negativní postoj a pokud jste nic neuvedli, poskytovalo ve výchozím nastavení proprietární ovladač. Podle nedávno (prosinec 12025) změněných pokynů RPM Fusion nyní pro hardware s duplicitní podporou (architektury od Turing po období před Blackwell) automaticky zvolí a poskytne lepší variantu, takže už není potřeba ručně vybírat. Pro starší architektury před Turingem a pro nejnovější architektury Blackwell a novější stejně vždy existovala jen jedna možnost, takže zde se nic nemění. Na základě toho jsem ověřil, že informace o volbě open-source modulů přes
/etc/rpm/macros.nvidia-kmodbyly odstraněny.Dále se uvádí, že balíček
akmod-nvidia-opense nemá používat, pokud nepotřebujete přímo aplikovat downstream změny do kernel-space ovladače.Tyto body jsem také promítl do aktualizace textu.
1-Fedora-3. Registrace klíče pro správné načtení ovladače při Secure Boot
Po provedení níže popsaných doplňkových kroků lze Secure Boot běžně používat spolu s NVIDIA ovladačem. Vypnutí Secure Bootu výrazně oslabuje bezpečnost systému, proto jej nedoporučuji vypínat. Minimálně od začátku 12020s obvykle neexistuje dobrý důvod Secure Boot vypínat.
Nejprve nainstalujte následující nástroje:
1
sudo dnf install kmodtool akmods mokutil openssl
Poté vytvořte klíč:
1
sudo kmodgenca -a
Nyní je potřeba zaregistrovat vytvořený klíč do MOK v UEFI firmwaru.
1
sudo mokutil --import /etc/pki/akmods/certs/public_key.der
Po spuštění příkazu budete vyzváni k zadání hesla pro registraci klíče. Za chvíli budete rebootovat a toto jednorázové heslo budete potřebovat v průběhu registrace, takže zadejte něco, co si krátce zapamatujete.
Poté restartujte systém:
1
systemctl reboot
Během bootu se automaticky zobrazí okno správy MOK. Zvolte „Enroll MOK“, poté postupně „Continue“ a „Yes“; následně budete vyzváni k zadání hesla, které jste nastavili. Po zadání hesla bude registrace hotová. Poté zvolte reboot a po dalším startu by se měl NVIDIA ovladač načíst správně.
Ověření instalace NVIDIA ovladače
V terminálu můžete ověřit aktuálně načtený NVIDIA kernelový modul:
1
cat /proc/driver/nvidia/version
Pokud se zobrazí zpráva podobná této, instalace je v pořádku:
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)
Dále je potřeba, aby po instalaci NVIDIA ovladače byl vypnut open-source grafický ovladač nouveau (kernelový modul), který bývá v Linuxu často výchozí. Pokud by zůstal aktivní, může způsobovat problémy. Po instalaci ovladače a rebootu by následující příkaz neměl vypsat nic:
1
lsmod |grep nouveau
2. Instalace NVIDIA Container Toolkit
Nyní je potřeba nainstalovat NVIDIA Container Toolkit. Postupujte podle oficiálního instalačního průvodce NVIDIA Container Toolkit, ale v případě Fedory existují během instalace důležité poznámky — proto si nejdříve dočtěte tuto sekci až do konce a pak pokračujte.
Pokud používáte Apt (Ubuntu, Debian apod.)
2-Apt-1. Nastavení repozitáře pro stahování balíčků
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. Aktualizace seznamu balíčků
1
sudo apt update
2-Apt-3. Instalace balíčku
1
sudo apt install nvidia-container-toolkit
Pokud používáte Yum nebo Dnf (Fedora, RHEL, Centos apod.)
Při testování na Fedoře 40 jsem zjistil, že na rozdíl od Ubuntu nejsou příkaz
nvidia-smiani balíčeknvidia-persistencedsoučástí základní instalace NVIDIA ovladače, takže bylo nutné doinstalovat balíčekxorg-x11-drv-nvidia-cuda. RHEL ani Centos jsem přímo netestoval, ale protože mají se Fedorou velmi podobnou skladbu systému, pokud byste při postupu podle tohoto návodu narazili na problém, může pomoci zkusit stejný postup.
Na Fedoře 40 mi po instalaci
xorg-x11-drv-nvidia-cudaa otestování na ukázkovém workloadu vše fungovalo. Pokud by přesto vznikaly potíže (např. kvůli SELinux), může pomoci Fedora-specifický balíček a návod pro nvidia-container-toolkit od Fedora AI-ML skupiny.
2-Dnf-1. Nastavení repozitáře pro stahování balíčků
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. Instalace balíčku
1
sudo dnf install nvidia-container-toolkit
nebo
1
sudo yum install nvidia-container-toolkit
Pokud používáte Zypper (openSUSE, SLES)
2-Zypper-1. Nastavení repozitáře pro stahování balíčků
1
sudo zypper ar https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo
2-Zypper-2. Instalace balíčku
1
sudo zypper --gpg-auto-import-keys install nvidia-container-toolkit
3. Instalace kontejnerového enginu
Dále nainstalujte jako kontejnerový engine buď Docker CE, nebo Podman. Vyberte si podle svého prostředí a preferencí; postupujte podle oficiální dokumentace Dockeru a oficiální dokumentace Podmanu.
Následující tabulka shrnuje hlavní rozdíly, výhody a nevýhody Dockeru a Podmanu.
| Kritérium | Docker | Podman |
|---|---|---|
| Architektura | Klient–server model, na bázi démona (daemon) | „Daemonless“ architektura |
| Bezpečnost | Spoléhá na démona běžícího ve výchozím stavu s root právy, což představuje potenciální bezpečnostní riziko (od verze 20.10 vydané v 12020 podporuje rootless mód, ale vyžaduje dodatečné nastavení) | Bez závislosti na démonu; pokud nic neurčíte, běží ve výchozím stavu rootless a je chráněn SELinuxem |
| Spotřeba prostředků | Kvůli démonové architektuře běží v pozadí proces trvale, typicky tedy spotřebovává více prostředků | Obvykle menší režie (overhead) |
| Čas startu kontejneru | Relativně pomalejší | Díky zjednodušené architektuře až o ~50 % rychlejší spuštění |
| Ekosystém a dokumentace | Velmi rozsáhlý ekosystém a komunitní podpora, bohatá dokumentace | Relativně menší ekosystém a méně dokumentace |
| Síťování | Docker Bridge Network | CNI (Container Network Interface) pluginy |
| Nativní podpora Kubernetes YAML | X (vyžaduje převod) | O |
Zdroje:
- https://www.redhat.com/en/topics/containers/what-is-podman
- https://www.datacamp.com/blog/docker-vs-podman
- https://apidog.com/blog/docker-vs-podman/
- https://www.privacyguides.org/articles/2022/04/22/linux-application-sandboxing/#securing-linux-containers
Docker má delší historii a dlouho byl de facto průmyslovým standardem; největší výhodou je proto široký ekosystém a množství související dokumentace.
Podman byl vyvinut relativně nedávno firmou Red Hat a díky své koncepci „daemonless“ a „rootless“ přináší výhody v oblasti bezpečnosti, spotřeby systémových prostředků i doby startu kontejnerů. Silnou stránkou Podmanu je i to, že na rozdíl od Dockeru (kde pád démona může shodit všechny kontejnery) jsou kontejnery plně nezávislé, takže pád jednoho kontejneru neovlivní ostatní.
Nejdůležitější je vybrat nástroj podle vlastních podmínek a potřeb, ale pro úplné začátečníky se jako dobrá volba jeví začít s Podmanem. I když je jeho ekosystém oproti Dockeru menší, díky výše uvedeným výhodám rychle roste a rozdíl se zmenšuje. Zároveň je v mnoha ohledech kompatibilní s Dockerem (Dockerfile syntaxe, Docker obrazy, CLI). Pokud už nemáte vybudovaný velký systém postavený na Dockeru, kde by přechod na Podman znamenal významné náklady, dává smysl zvolit Podman rovnou od začátku.
Podman
Podman je v systémových repozitářích většiny hlavních Linux distribucí, takže jej lze nainstalovat jednoduše.
Ubuntu
1
sudo apt install podman
Fedora
1
sudo dnf install podman
openSUSE
1
sudo zypper install podman
Ověření, že je vše nastaveno správně
V terminálu spusťte:
1
podman run --rm hello-world
Pokud se vypíše následující zpráva, je to v pořádku:
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]
Při testování v čase 12025-12-18T00:43:00+09:00 (podman 5.7.1, passt
20251215.gb40f5cd-1.fc43.x86_64, Fedora 43) se při spuštění hello-world i při běhu kontejnerů nebo buildu obrazů objevila chyba:
1 2 Error: pasta failed with exit code 1: Couldn't set IPv6 route(s) in guest: Operation not supportedPřestože IPv6 nepoužívám a jsem v IPv4 síti, při nastavování sítě kontejneru se zdá, že pasta (součást passt knihovny) zkouší nastavit IPv6 routování. Ověřil jsem, že při explicitním použití IPv4 přes volbu
--net=pasta:-4problém nenastává — jak při spuštění kontejneru, tak i ve fázi buildu obrazu popsané později.
1 podman run --net=pasta:-4 --rm hello-worldPři hledání jsem našel dříve nahlášený issue se stejnými příznaky. V issue se píše, že to bylo opraveno v 2024_06_24.1ee2eca, ale vzhledem k tomu, že pozorované chování je stejné a také šlo o problém při použití Proton VPN, mám podezření, že se podobný issue znovu objevil.
Docker CE
Ubuntu
3-Ubuntu-1. Odstranění starších nebo neoficiálních balíčků kvůli kolizím
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. Nastavení repozitáře
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. Instalace balíčků
1
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
3-Ubuntu-4. Vytvoření skupiny Docker a přidání uživatele
Aby mohl Docker spravovat i non-root uživatel bez sudo, stačí vytvořit skupinu Docker a přidat do ní uživatele:
1
2
sudo groupadd docker
sudo usermod -aG docker $USER
Poté se odhlaste a znovu přihlaste, aby se změny projevily. Na Ubuntu nebo Debianu se služba Docker obvykle spouští automaticky při bootu i bez dalších kroků.
Fedora
3-Fedora-1. Odstranění starších nebo neoficiálních balíčků kvůli kolizím
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. Nastavení repozitáře
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. Instalace balíčků
1
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Během instalace budete vyzváni k potvrzení GPG klíče. Pokud klíč odpovídá 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35, potvrďte zadáním y.
Pokud se GPG klíč neshoduje, může jít o podvržený balíček stažený v rámci supply-chain útoku, a instalaci je nutné okamžitě přerušit.
3-Fedora-4. Spuštění Docker démona
Docker je nyní nainstalovaný, ale neběží. Spusťte jej:
1
sudo systemctl start docker
Chcete-li, aby se Docker spouštěl automaticky při bootu:
1
2
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
3-Fedora-5. Přidání uživatele do skupiny Docker
Aby mohl Docker spravovat i non-root uživatel, přidejte uživatele do skupiny Docker. Na Fedoře se skupina Docker vytvoří automaticky během instalace, takže stačí jen přidání uživatele:
1
sudo usermod -aG docker $USER
Poté se odhlaste a znovu přihlaste, aby se změny projevily.
Ověření, že je vše nastaveno správně
V terminálu spusťte:
1
docker run hello-world
Pokud se zobrazí zpráva jako níže, je to v pořádku:
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/
Další čtení
Pokračování v dílu 2
