Docker je populárny softvér na kontajnerizáciu. Kontajnery sú štandardnou softvérovou jednotkou, ktorá zabalí kód a všetky jeho závislosti tak, aby bolo možné aplikáciu rýchlo a spoľahlivo spustiť v rôznych operačných systémoch a počítačových prostrediach.
Z technického hľadiska je kontajner bežiaci proces, ktorý je izolovaný od ostatných procesov a má prístup k počítačovým zdrojom. Ďalej sa pozrieme na inštaláciu nástroja Docker v systéme Debian 11 a spustenie prvej aplikácie.
Existujú dva spôsoby inštalácie, pomocou štandardných repozitárov Debianu alebo oficiálneho repozitára Docker. Repozitáre Debianu neobsahujú najnovšiu verziu, preto zvážime inštaláciu z oficiálneho repozitára Docker.
Pred pridaním úložiska je potrebné aktualizovať zoznam balíkov spustením príkazu:
$ sudo apt update

Nainštalujte aj ďalšie balíky, ktoré sú potrebné na prácu so vzdialenými repozitármi. Ak chcete tieto balíky nainštalovať, spustite príkaz:
$ sudo apt -y install ca-certificates curl gnupg lsb-release

Ďalej stiahnite a pridajte kľúč PGP z úložiska. Ak to chcete urobiť, spustite príkaz:
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Na pridanie úložiska je potrebné spustiť príkaz:
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Ak chcete balík nainštalovať, musíte najprv aktualizovať zoznamy balíkov, aby sa v systéme objavil nový repozitár. Ak to chcete urobiť, stačí spustiť príkaz::
$ sudo apt update
Nakoniec môžete nainštalovať ďalšie balíky. Inštalácia sa vykoná pomocou príkazu:
$ sudo apt -y install docker-ce docker-ce-cli containerd.io

Slovo ce v názve balíka docker-ce znamená komunita, čo znamená, že bude nainštalovaná bezplatná verzia (alias komunitná verzia). Teraz už viete, ako nainštalovať docker debian.
Po inštalácii sa štandardne vypne. Ak chcete program spustiť, musíte spustiť príkaz:
$ sudo systemctl start docker

Aby sa spustil spolu s operačným systémom, musí byť pridaný do autoloadera pomocou príkazu:
$ sudo systemctl enable docker

V predvolenom nastavení môže jeho príkazy používať a vykonávať v termináli iba používateľ root. Ak vykonáte akýkoľvek príkaz z bežného používateľa, terminál zobrazí nasledujúcu chybu:
Pri pokuse o pripojenie k soketu démona Docker na adrese unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied

Ak chcete spustiť príkaz ako bežný používateľ a bez použitia príkazu sudo, musíte pridať používateľa do skupiny docker. Skupina docker sa vytvorí automaticky počas inštalácie. Ak sa však z nejakého dôvodu nevytvorí automaticky, je potrebné ju vytvoriť ručne vykonaním nasledujúceho príkazu:
$ sudo groupadd docker
Ďalej, ak chcete pridať aktuálneho používateľa do skupiny docker, spustite:
$ sudo usermod -aG docker $USER

Premenná $USER znamená, že do skupiny docker bude pridaný aktuálny používateľ, v mene ktorého sa relácia spúšťa. Táto premenná je prítomná vo všetkých moderných distribúciách Linuxu. Stojí tiež za zmienku, že skupina docker poskytuje oprávnenia rovnocenné s oprávneniami používateľa root.
Po pridaní používateľa je potrebné sa znovu prihlásiť do systému a až potom môžete spustiť ľubovoľný príkaz Docker na testovanie. Ako príklad bol spustený príkaz docker ps, ktorý zobrazí zoznam spustených kontajnerov:
$ docker ps

Ako môžete vidieť na obrázku vyššie, bol vykonaný bez chýb a v mene bežného používateľa.
Ak chcete naplno otestovať Docker, môžete si na overenie stiahnuť testovací obraz z hello-world. Na tento účel je potrebné spustiť:
$ docker run hello-world

Príkaz docker run stiahne obraz softvéru z online úložiska docker hub, oficiálneho registra pre ukladanie obrazov softvéru od spoločnosti Docker, ktorý sa štandardne používa, a automaticky ho spustí. Príklad vypíše vetu Hello from Docker! (Dobrý deň, Docker!), čo znamená, že obraz bol úspešne stiahnutý a spustený.