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ý.