Späť na blog

Ako nainštalovať a nakonfigurovať Docker Compose na Ubuntu 20.04

Ako nainštalovať a nakonfigurovať Docker Compose na Ubuntu 20.04

Úvod

Kontajnerizácia získala v posledných rokoch v softvérovom technologickom priestore veľkú dynamiku. To možno pripísať Docker , čo je kontajnerová platforma, ktorá zjednodušuje správu procesov vo vnútri kontajnerov.

Kontajnery sú ľahké, virtualizované, prenosné, softvérovo definované štandardizované prostredia, ktoré umožňujú softvéru bežať v izolácii od iného softvéru bežiaceho na fyzickom hostiteľskom stroji. Táto vlastnosť prenosnosti umožňuje vývojárom modularizovať ich aplikácie do izolovaných služieb. Okrem toho môžu byť poskytované nezávisle, čo poskytuje priestor na škálovanie.

Hoci rozdelenie aplikácie na viacero služieb je určite skvelé, prináša so sebou réžiu spojenú so správou niekoľkých kontajnerov. Musíte zabezpečiť, aby komunikovali, spúšťali sa a vypínali v rovnakom čase. Vďaka nástroju s názvom Docker Compose sa to stáva jednoduchou úlohou. Docker Compose umožňuje vývojárom spúšťať multikontajnerové aplikácie Docker pomocou pravidiel definovaných v YAML súbore. Súbor YAML obsahuje definície služieb aplikácie a spôsob, akým môžu zdieľať dátové zväzky a siete. Po definovaní služieb ich môžete všetky spustiť jediným príkazom. V tomto návode, vám ukážeme, ako nainštalovať, nakonfigurovať a začať s Docker Compose na Ubuntu 20.04.

Požiadavky

Krok 1: Inštalácia Docker Compose

Najnovšiu stabilnú verziu Docker Compose stiahneme z jeho oficiálneho repozitára GitHub. Najnovšiu verziu nájdete na stránke vydaní, v čase písania tohto návodu je najnovšia verzia 1.28.5.

Najprv sa prihláste na svoj server Ubuntu ako používateľ bez oprávnení root s právami sudo a zadajte nasledujúci príkaz. Stiahne najnovšie vydanie (1.28.5) a uloží spustiteľný súbor do /usr/local/bin/docker-compose adresára. Vďaka tomu bude globálne prístupný ako docker-compose:

Po stiahnutí zadajte nasledujúci príkaz na nastavenie príslušných oprávnení, aby bol príkaz docker-compose spustiteľný:

Teraz overte, či bola inštalácia úspešná a či je možné príkaz vyvolať spustením nasledujúceho príkazu:

Mali by ste dostať výstup podobný tomuto:

docker compose version

To potvrdzuje, že Docker Compose bol úspešne nainštalovaný vo vašom systéme.

Krok 2: Vytvorenie súboru docker-compose.yml

Aby sme vám pomohli pochopiť, ako pracovať s docker-compose.yml, nakonfigurujeme prostredie webového servera pomocou oficiálneho obrazu Nginx z Docker Hub. Po nasadení by sme mali byť schopní poskytovať základnú HTML stránku z kontajnera.

Náš pracovný adresár vytvoríme v domovskom priečinku, z ktorého budeme pracovať. Na vytvorenie adresára zadajte nasledujúci príkaz:

Ďalej sa presuňte do adresára:

Po vstupe do adresára vytvorte priečinok aplikácie, ktorý bude koreňovým adresárom dokumentov pre prostredie Nginx. Tento priečinok môžeme nazvať app:

  • Vytvorenie HTML stránky

Použime textový editor nano na vytvorenie súboru index.html v priečinku app:

Ďalej do súboru pridajte nasledujúci HTML kód:

Pre uloženie súboru stlačte CTRL + O, ENTER. Potom ho zatvorte pomocou CTRL + X. Ďalej vytvoríme docker-compose.yml súbor v koreňovom adresári nášho projektu.

  • Hostovanie HTML stránky pomocou docker-compose

Ďalej zadajte nasledujúci príkaz na otvorenie súboru pomocou nano editora:

Potom do súboru pridajte nasledujúci úryvok kódu:

Súbor docker-compose.yml súbor začína číslom verzie, ktoré hovorí nástroju Docker Compose, ktorú verziu konfigurácie používame. Kliknutím na tento odkaz sa dozviete viac o verziách Docker Compose.

Po čísle verzie nasleduje blok služieb (services), ktorý obsahuje služby tvoriace prostredie. V tomto návode sme špecifikovali iba jedinú službu s názvom webserver. Služba webserver bude používať obraz nginx:alpine. Definovali sme tiež presmerovanie portov 8000:80. To znamená, že všetky požiadavky z portu 8000 na hostiteľskom stroji budú presmerované do kontajnera webserver na porte 80, kde beží Nginx.

Direktíva volumes vám umožňuje vytvoriť zdieľaný zväzok medzi hostiteľským strojom a kontajnerom, ktorý môžeme použiť na uchovanie údajov. V našom yml fragmente kódu zdieľame lokálny priečinok app s kontajnerom. Vo vnútri kontajnera bude umiestnený v umiestnení /usr/share/nginx/html. Týmto sa prepisuje predvolený koreňový adresár dokumentov pre Nginx. Súbor teraz môžete uložiť a zatvoriť.

Do tohto momentu ste vytvorili svoju vzorovú HTML webovú stránku a súbor docker-compose.yml s inštrukciami na zostavenie kontajnerizovaného prostredia webového servera. Pozrime sa v ďalšom kroku, ako môžeme toto nastavenie spustiť.

Krok 3: Spustenie príkazu Docker Compose

V tomto kroku spustíme príkaz na spustenie nášho kontajnerizovaného prostredia. Nižšie je uvedený jediný príkaz, ktorý inicializuje proces sťahovania obrazov Docker, vytvorí kontajner pre službu webserver a spustí kontajnerizované prostredie na pozadí:

Docker je navrhnutý tak, aby bol rýchly a efektívny, takže keď spustíte vyššie uvedený príkaz, najprv skontroluje váš lokálny systém, či obsahuje definovaný obraz. Ak chýba, stiahne ho z repozitára Docker Hub. Mal by sa zobraziť výstup podobný tomuto:

 compose up

Po dokončení vykonávania príkazu sa spustí prostredie kontajnera bežiace na pozadí. To, že beží, môžete overiť pomocou príkazu:

Mali by ste dostať podobný výstup:

 compose ps

Ak prejdete na IP adresu alebo doménové meno vášho servera a pridáte port 8000, t. j. server_domain_or_IP:8000 mali by ste vidieť vzorovú HTML stránku, ktorú sme vytvorili:

docker compose webpage

Ak si pamätáte, nastavili sme zdieľaný zväzok medzi kontajnerom a hostiteľským systémom. To udržiava súbory v kontajneri synchronizované so súbormi v hostiteľskom systéme. Preto, ak vykonáte zmenu v súbore index.html, automaticky sa zosynchronizuje s kontajnerom a prejaví sa pri opätovnom načítaní stránky v prehliadači. Môžete to vyskúšať pomocou editora nano. V ďalšom kroku sa naučíme niekoľko ďalších príkazov.

Krok 4: Ďalšie príkazy Docker Compose na správu kontajnerových prostredí

Teraz, keď ste úspešne nasadili webovú stránku pomocou jediného príkazu docker-compose-up, pozrime sa na niektoré ďalšie príkazy, ktoré môžu byť užitočné pri správe kontajnerizovaných prostredí.

Začneme príkazom logs. Záznamy (logy) môžu byť kľúčové pri riešení problémov so zlyhaním vašej aplikácie. Najprv spustite nasledujúci príkaz na zobrazenie záznamov vygenerovaných kontajnerom Nginx:

Tu je ukážka výstupu zo záznamov:

 logs

Vykonávanie prostredia môžete pozastaviť bez zmeny stavu kontajnerov pomocou príkazu:

 compose pause

Ďalej, na zrušenie pozastavenia alebo obnovenie vykonávania použite príkaz:

docker compose unpause

Možno budete chcieť zastaviť kontajnery bez zničenia ich údajov. Na tento účel použite nasledujúci príkaz:

stop

Na zničenie kontajnerov, sietí a zväzkov spojených s kontajnerizovaným prostredím použite príkaz:

docker compose down

Majte na pamäti, že vyššie uvedený príkaz neodstraňuje základné obrazy použité nástrojom Docker Compose na spustenie prostredia. To zaisťuje rýchlejšie zostavenie pri spúšťaní prostredia, pretože kontroluje lokálny počítač, či neobsahuje zhodné obrazy. Ak by ste chceli úplne odstrániť základný obraz, musíte ho špecifikovať v príkaze. V našom príklade môžeme odstrániť nginx:alpine obraz pomocou príkazu:

 image remove

Na záver môžete nájsť viac príkazov v oficiálnej referencii pre príkazový riadok Docker Compose dokumentácii.

Záver

V tomto návode ste nainštalovali Docker Compose na Ubuntu 20.04, vytvorili ste kontajnerizované prostredie založené na obraze webového servera Nginx a naučili ste sa spravovať rôzne služby pomocou príkazov Docker Compose.

Ak sa chcete dozvedieť, ako nasadiť reálnu dynamickú aplikáciu, ktorá závisí od viacerých kontajnerov, prečítajte si náš návod na Nasadenie Laravel, Nginx a MySQL pomocou Docker Compose. Úplný zoznam príkazov docker-compose nájdete aj v oficiálnej dokumentácii Docker Compose.

Príjemnú prácu!

author

Pranay Kapgate

Autor · CloudSigma

Preslav Dobrev je kreatívny dizajnér v spoločnosti CloudSigma, ktorý sa zameriava na konzistentnú firemnú identitu prostredníctvom tradičných a inovatívnych marketingových kanálov. Dokáže brilantne spájať umeleckú víziu so strategickým marketingom, čím vytvára pôsobivé príbehy značky.

Komentáre

Zatiaľ žiadne komentáre. Buďte prvý.