Docker CE na Alma Linux 9: Sprievodca rýchlou a jednoduchou inštaláciou
Na tejto stránke
- Predpoklady
- Pridanie úložiska Docker CE
- Inštalácia Docker CE
- Umožnenie spustenia kontajnera Docker používateľovi bez oprávnenia root
Základné použitie Dockeru
- Práca s obrázkami
- Práca s kontajnerom
- Logovanie kontajnerov
- Správa kontajnera
- Práca s Volume
- Prístup ku kontajneru z hostiteľa
Docker je softvér OpenSource, ktorý poskytuje virtualizáciu na úrovni operačného systému pre vývoj, odosielanie a spúšťanie aplikácií. V Dockeri sú aplikácie dodávané ako balíky štandardizovaných jednotiek nazývaných kontajnery. Každý kontajner je od seba izolovaný, vrátane knižníc a konfiguračných súborov, ale každý z nich môže komunikovať cez dobre definované sieťové kanály.
Docker sa zatiaľ stal štandardom pre vývoj softvéru a DevOps. Používajú ho milióny vývojárov na vytváranie, zdieľanie a spúšťanie akýchkoľvek aplikácií každý deň v práci. Používa sa v životnom cykle vývoja aplikácií, od samotného vývoja, testovania a výroby. S Dockerom sa aplikácia stáva flexibilnejšou a prenosnejšou. Aplikácie môžu byť spustené kdekoľvek v rôznych operačných systémoch jednoduchým spôsobom, ale samotná aplikácia zostáva rovnaká od knižníc až po konfiguračné súbory.
V tejto príručke sa dozviete, ako nainštalovať Docker CE (Community Edition) na Alma Linux 9. Táto príručka tiež popisuje základné použitie Docker na správu obrázkov, kontajnerov a zväzkov, prácu s protokolmi kontajnerov a prístup ku kontajnerom prostredníctvom hostiteľa Docker .
Predpoklady
Táto príručka vyžadovala nasledovné:
- Server Linux so systémom Alma Linux 9 – Tento príklad používa server Alma Linux s názvom hostiteľa 'alma-linux' a adresou IP '192.168.5.'
- Používateľ bez oprávnenia root s oprávneniami správcu sudo/root.
Pridanie úložiska Docker CE
Docker je nástroj na orchestráciu na vývoj, odosielanie a spúšťanie aplikácií prostredníctvom kontajnera. Vďaka tomu je proces vývoja rýchlejší, pretože Docker vám umožňuje vytvárať obrazy aplikácií bez spoliehania sa na hostiteľský počítač. Vďaka tomu je distribúcia aplikácií vývojárom rýchlejšia a jednoduchšia.
Docker je multiplatformová kontajnerová orchestrácia, možno ju nainštalovať na pracovnú plochu a server. Ak používate pracovnú plochu, môžete si nainštalovať Docker Desktop, ale ak používate server, môžete si nainštalovať Docker Engine prostredníctvom oficiálneho úložiska Docker.
V prvej časti nastavíte úložisko Docker CE na serveri Alma Linux.
Spustite nasledujúci príkaz a nainštalujte balík 'dnf-utils'.
sudo dnf install dnf-utils
Po zobrazení výzvy zadajte y a potom pokračujte stlačením klávesu ENTER.
Teraz pridajte úložisko Docker CE pomocou nasledujúceho príkazu dnf.
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Po pridaní úložiska Docker CE overte pomocou príkazu nižšie. Zobrazí sa vám zoznam dostupných úložísk vo vašom systéme Alma Linux.
sudo dnf repolist
Keď budete úspešní, mali by ste dostať takýto výstup:
Prejdite na ďalšiu časť o inštalácii Docker CE.
Inštalácia Docker CE
V tejto časti nainštalujete Docker CE na server Alma Linux. Na konci tejto časti budete mať Docker vo svojom systéme spustený.
Nainštalujte Docker CE pomocou nasledujúceho príkazu dnf. Vďaka tomu nainštalujete Docker s dodatočným balíkom 'docker-buildx-plugin' je doplnok Docker Build, ktorý zrýchľuje vytváranie obrázkov, a 'docker-compose-plugin<' je doplnok Docker Compose pre jednoduchší vývoj aplikácií.
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Po zobrazení výzvy zadajte y na potvrdenie a potom pokračujte stlačením ENTER.
Budete tiež požiadaní o potvrdenie kľúča GPG pre úložisko Docker. Zadanie potvrďte a potom stlačte ENTER.
Po nainštalovaní Dockera spustite a povoľte službu „docker“ nasledujúcim príkazom systemctl.
sudo systemctl start docker
sudo systemctl enable docker
Po vykonaní príkazu bude Docker spustený a bude tiež povolený, čo znamená, že Docker sa spustí automaticky pri štarte systému.
Spustite príkaz uvedený nižšie na overenie stavu služby Docker a uistite sa, že je spustený Docker.
sudo systemctl status docker
Keď je spustený Docker, mali by ste očakávať výstup, ako je tento:
Umožnenie spustenia kontajnera Docker používateľovi bez oprávnenia root
V predvolenom nastavení iba používateľ root, ktorý povolil spustiť kontajner cez Docker. Táto časť vám ukáže, ako povoliť používateľom, ktorí nie sú root, spúšťať kontajnery Docker pridaním používateľa do existujúcej skupiny s názvom 'docker'.
Spustite nasledujúci príkaz a pridajte svojho používateľa do skupiny 'docker'. Tento príklad používa používateľa s názvom 'testuser'.
sudo usermod -aG docker testuser
Teraz sa prihláste ako používateľ pomocou nasledujúceho príkazu. Potom vykonajte nižšie uvedený príkaz „docker run“, čím spustíte kontajner „hello-world“.
su - testuser
docker run hello-world
Keď budete úspešní, mali by ste dostať výstup, ako je tento:
Potom spustite nasledujúci príkaz docker na kontrolu spusteného kontajnera vo vašom systéme.
docker ps
docker ps -a
Prvý príkaz „docker ps“ nebude mať žiadny výstup, pretože vám ukáže iba spustený kontajner a kontajner „hello-world“ sa ukončí/zastaví po „ Vytlačí sa správa Ahoj od Docker. Ale pre druhý príkaz s 'docker ps -a' vám poskytne výstup pre spustené aj opúšťajúce kontajnery.
Základné použitie Dockeru
Úspešne ste sa dostali do fázy, kedy je Docker spustený a zároveň ste umožnili používateľovi bez oprávnenia root spustiť kontajner Docker. Nie, prejdite na základné používanie Dockera.
Nasledujúce kroky vám ukážu niektoré scenáre používania Dockera. Dozviete sa, ako spravovať obrázky Docker, pracovať s kontajnerom a zväzkom a tiež sa naučíte, ako pristupovať ku kontajneru z hostiteľského počítača.
Keď je všetko na svojom mieste, začnime.
Práca s obrázkami
V prvom kroku budete pracovať s obrázkom Docker. Stiahnete si obrázok a overíte zoznam dostupných obrázkov na vašom lokálnom počítači.
Ak chcete stiahnuť obrázok, navštívte DockerHub a zadajte názov obrázka Docker, ktorý chcete stiahnuť. V tomto príklade si stiahnete obrázok 'nginx' so značkami 'alpine'. Ak kliknete na kartu TAGS, mali by ste vidieť zoznam dostupných verzií obrázka Nginx.
Teraz spustite príkaz 'docker pull' nižšie a stiahnite si obrázky Docker. V tomto príklade si stiahnete obrázok 'nginx:alpine', ktorý bude odkazovať na najnovšiu verziu obrázku Nginx Alpine.
docker pull nginx:alpine
Po stiahnutí spustite nasledujúci príkaz a zobrazí sa zoznam dostupných obrázkov na vašom hostiteľovi. Ak budete postupovať podľa týchto krokov od začiatku, mali by ste vidieť dva obrázky Docker, „hello-world“ so značkou „latest“ a „nginx' so značkou 'alpské'.
docker images
Práca s kontajnerom
So stiahnutým obrázkom Docker teraz môžete spustiť kontajner. Táto časť vám ukáže, ako vytvoriť a spustiť kontajner cez Docker.
Ak chcete spustiť kontajner, spustite nasledujúci príkaz „docker run“ nižšie.
docker run -it -d -p 8080:80 --name web nginx:alpine
Tento príkaz vytvorí nový kontajner s názvom 'web', ktorý je založený na obrázku Docker 'nginx:alpine'. Nový kontajner „web“ zobrazí port „8080“ na hostiteľovi Docker, ktorý sa rovná portu 80 na kontajneri. Ďalší parameter '-it' sa používa na spustenie kontajnera v interaktívnom režime a parameter '-d' spustí kontajner na pozadí.
Po vykonaní príkazu by ste mali vidieť náhodné číslo a reťazec, ktorým je 'CONTAINER ID'.
Teraz spustite príkaz uvedený nižšie a skontrolujte zoznam spustených kontajnerov.
docker ps
Mali by ste očakávať takýto výstup – kontajner „web“ so stavom „Up“ a odhalený port 8080 na hostiteľovi Docker.
Potom spustite príkaz curl nižšie, aby ste získali prístup ku kontajneru „web“, ktorý je vystavený na porte 8080. Keď bude úspešný, mali by ste vidieť predvolený zdrojový kód HTML indexu kontajnera „web“.
curl http://192.168.5.43:8080/
Nakoniec, ak chcete pristupovať k svojmu kontajneru z vonkajšej siete, musíte na svojom serveri Alma Linux otvoriť port 8080 pomocou príkazu 'firewall-cmd' nižšie.
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
Teraz otvorte webový prehliadač a váš lokálny počítač a navštívte IP adresu servera, za ktorou nasleduje port 8080 (t.j.: http://192.168.5.43:8080/). Mali by ste očakávať výstup stránky index.html pre kontajner 'web'.
Logovanie kontajnerov
Protokolovanie je v Dockeri dôležité, najmä ak vyvíjate obrázky pre svoje aplikácie. Protokolovanie vám pomáha ladiť vývoj vašej aplikácie.
Spustite nasledujúci príkaz, aby ste získali úplné protokoly kontajnera 'web'.
docker logs web
Nižšie je podobný výstup, ktorý získate z kontajnera 'web'.
Výstup protokolov môžete obmedziť aj pomocou parametra „tail“, ako je uvedené nižšie. Tento príkaz vám zobrazí posledných 5 riadkov denníkov kontajnera 'web'.
docker logs --tail 5 web
Správa kontajnera
V tejto časti sa dozviete, ako spravovať kontajner. Naučíte sa, ako spustiť, zastaviť a odstrániť nádobu.
Ak chcete zastaviť kontajner „web“, spustite príkaz „docker stop“ nižšie.
docker stop web
Teraz overte kontajner pomocou nasledujúceho príkazu. Mali by ste dostať výstup kontajnera „web“ so stavom „Exited“.
docker ps
docker ps -a
Ak chcete znova spustiť kontajner 'web', spustite príkaz 'docker start' nižšie. Potom skontrolujte zoznam spustených kontajnerov pomocou príkazu 'docker ps'.
docker start web
docker ps
Mali by ste dostať výstup, že kontajner „web“ je spustený so stavom „Hore“.
Nakoniec spustite nasledujúci príkaz na odstránenie kontajnera 'web'. Pred odstránením kontajnera musíte kontajner najskôr zastaviť.
docker stop web
docker rm web
Ak skontrolujete zoznam kontajnerov pomocou príkazu 'docker ps', mali by ste očakávať výstup, že kontajner 'web' bude odstránený.
docker ps -a
Práca s Volume
Zväzok je miesto, kde ste pripojili svoj lokálny zväzok/adresár ku kontajneru. Môžete predpokladať, že zväzok je ako „zdieľaný priečinok“ vo virtuálnom počítači. V tejto časti vytvoríte nový kontajner s vlastným zväzkom, ktorý vám umožní pripojiť ku kontajneru lokálny adresár.
Najprv vytvorte nový adresár projektu '~/project/data' a presuňte doň svoj pracovný adresár.
mkdir -p ~/project/data; cd ~/project
Teraz spustite nasledujúci príkaz na vytvorenie nového súboru 'data/index.html'. Tento súbor nahradí predvolenú stránku index.html nového kontajnera „web“.
cat > data/index.html << EOF
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Welcome to Docker Nginx</title>
</head>
<body>
<h2>Hello from Nginx container</h2>
</body>
</html>
EOF
Teraz spustite nasledujúci príkaz na vytvorenie a spustenie nového kontajnera „web“ s vlastným objemom pomocou parametra „-v“. V tomto príklade pripojíte lokálny adresár '~/project/data' do kontajnera 'web' s cieľovým adresárom '/usr/share/nginx/html '. Dodatočná možnosť ':ro' vytvorí adresár '/usr/share/nginx/html' v kontajneri len na čítanie, zatiaľ čo na hostiteľskom počítači je stále povolené čítanie a zápis.
docker run -it -d -p 8080:80 --name web -v ~/project/data:/usr/share/nginx/html:ro nginx:alpine
Potom spustite nasledujúci príkaz, aby ste sa uistili, že je spustený nový kontajner 'web'.
docker ps
Keď budete úspešní, mali by ste očakávať výstup, ako je tento: Kontajner 'web' je spustený a na hostiteľskom počítači je odhalený port 8080.
Teraz spustite príkaz curl nižšie, aby ste získali prístup ku kontajneru „web“. Keď všetko pôjde hladko, mali by ste vidieť zdrojový kód vlastnej stránky index.html, ktorú ste vytvorili.
curl http://192.168.5.43:8080/
Nižšie je uvedená stránka vlastného index.html pri prístupe z webového prehliadača (t. j. http://192.168.5.43:8080/).
Prístup ku kontajneru z hostiteľa
Na prístup a prihlásenie do kontajnera môžete použiť príkaz 'docker exec', ktorý vám umožní vykonať príkaz, ktorý je dostupný v kontajneri.
Spustite nasledujúci príkaz a prihláste sa do kontajnera 'web'. Týmto sa vykoná príkaz '/bin/sh' v kontajneri 'web' a parameter '-it' vás presmeruje priamo na nádobe.
docker exec -it web /bin/sh
Po prihlásení do kontajnera spustite nasledujúci príkaz a skontrolujte podrobný názov hostiteľa vášho kontajnera. Názov hostiteľa kontajnera by mal byť rovnaký ako „CONTAINER ID“.
id
hostname
Potom spustite nasledujúci príkaz a skontrolujte IP adresu a predvolenú bránu kontajnera.
ip a
route -n
Mali by ste očakávať výstup ako je nasledujúci:
Pretože na „webe“ kontajnera je spustený proces Nginx, môžete pristupovať k svojmu kontajneru prostredníctvom lokálnej adresy IP pomocou príkazu curl nižšie. V tomto príklade je adresa IP kontajnera „172.17.0.2“. Mali by ste dostať rovnakú stránku index.html.
curl 172.17.0.2
Záver
Teraz, keď ste dokončili túto príručku, mali by ste vedieť, ako nainštalovať Docker na Alma Linux 9. Dokončili ste aj scenár pre základné používanie Dockeru na správu obrázkov a kontajnerov, protokolovanie kontajnerov na účely ladenia, prácu s objemom dockera a základné použitie „docker exec“ na prihlásenie do kontajnera.