- Docker vám umožňuje baliť aplikácie s ich závislosťami, čím zabezpečuje prenosnosť a konzistenciu.
- Kontajnery sa vytvárajú z už existujúcich obrazov Dockeru alebo sa prispôsobujú pomocou súboru Dockerfile.
- Vykonávanie kontajnerov je možné prispôsobiť pomocou parametrov, ako sú zväzky, premenné prostredia a mapovanie portov.
- Docker Compose a ďalšie nástroje na orchestráciu pomáhajú spravovať kontajnery v zložitých prostrediach.
Docker sa stal jedným zo základných nástrojov pri vývoji a nasadzovaní moderných aplikácií . Jeho schopnosť vytvárať izolované a konzistentné prostredia umožňuje vývojárom pracovať bez obáv z typických problémov s konfiguráciou medzi rôznymi systémami.
V tejto príručke sa krok za krokom a veľmi podrobne naučíte, ako vytvoriť kontajner Docker od základov . Pokryjeme všetko od základnej inštalácie až po pokročilé spustenie pomocou Docker Compose vrátane vytvárania vlastných obrazov, používania zväzkov, správy spustených kontajnerov a osvedčených postupov pre optimalizáciu vášho pracovného prostredia.
Čo je to Docker kontajner a prečo ho používať?
Docker kontajner je ľahká, prenosná jednotka, ktorá obsahuje aplikáciu spolu so všetkými jej závislosťami . Na rozdiel od virtuálneho stroja, ktorý obsahuje kompletný operačný systém, kontajnery zdieľajú jadro hostiteľského operačného systému, vďaka čomu sú oveľa rýchlejšie a efektívnejšie.
Vďaka Dockeru môžete vyvíjať, testovať a nasadzovať svoje aplikácie v rôznych prostrediach bez obáv z rozdielov medzi nimi . Táto funkcia z neho robí ideálne riešenie pre produkčné prostredia aj lokálne testovanie a vývoj.
Predpoklady pre používanie Dockeru
- Podporovaný operačný systémUbuntu, Debian, Fedora, CentOS, macOS alebo Windows.
- Prístup k oprávneniam superpoužívateľa (koreň alebo sudo) na inštaláciu a spustenie Dockeru.
- Conexión a internet stiahnuť oficiálne obrázky z Docker Hubu.
Inštalácia Dockeru
Inštalácia Dockeru je zvyčajne jednoduchá. V Ubuntu ho môžete nainštalovať pomocou týchto príkazov :
aktualizácia sudo apt sudo apt inštalácia docker-ce docker-ce-cli containerd.io
Ak chcete, aby sa Docker spustil automaticky po zapnutí systému, môžete ho spustiť takto :
sudo systemctl povoliť docker sudo systemctl povoliť kontajnery
Overenie inštalácie
Po nainštalovaní môžete overiť, či je Docker spustený a funkčný, spustením tohto príkazu:
docker run hello-world
Tento príkaz stiahne testovací obrázok a zobrazí správu potvrdzujúcu, že všetko funguje správne.
Vytvorenie kontajnera: Základy
Na vytvorenie kontajnera potrebujete obraz Dockeru , čo je balík obsahujúci všetky komponenty, ktoré vaša aplikácia potrebuje. Obrazy si môžete stiahnuť z Docker Hubu alebo vytvoriť manuálne.
Napríklad na nastavenie základného servera Nginx môžete použiť:
spustiť docker --name môj web -p 8080:80 -d nginx
S týmto pokynom:
- – názov mojej webovej stránky: pomenuje kontajner.
- -p 8080: 80Presmeruje hostiteľský port 8080 na kontajnerový port 80.
- -d: spúšťa kontajner na pozadí.
Vytváranie vlastných obrázkov pomocou Dockerfile
Dockerfile vám umožňuje krok za krokom vytvárať vlastné obrázky . Každá inštrukcia v súbore pridá novú vrstvu do výsledného obrázka. Tu je jednoduchý príklad:
Z ubuntu: najnovší PRACOVNÝ ADRESÁR /aplikácia KÓPIA . . SPUSTIŤ apt-get update && apt-get install -y curl CMD
Tento súbor robí nasledovné:
- Z: Použite najnovšiu verziu Ubuntu ako základ.
- WORKDIR: nastaví pracovný adresár.
- COPY: kopíruje súbory z hostiteľa do kontajnera.
- RUN: nainštaluje balík curl.
- CMD: definuje predvolený príkaz pri spustení kontajnera.
Ak chcete vytvoriť obraz pomocou tohto Dockerfile, môžete si prečítať návod na vytváranie vlastných obrázkov pomocou Dockerfile.
Spustenie kontajnera z vlastného obrázka
Po vytvorení obrazu môžete spustiť aplikáciu pomocou:
docker run --názov príklad -p 8080:80 môjprojekt
Takto vytvoríte kontajner z obrázka, ktorý ste práve vytvorili.
Správa kontajnerov Docker
Docker poskytuje niekoľko príkazov na správu kontajnerov . Medzi najužitočnejšie patria:
docker ps: zobrazuje zoznam spustených kontajnerov.docker ps -a: zobrazuje všetky kontajnery vrátane zastavených.docker stop nombre_contenedor: zastaví kontajner.docker rm nombre_contenedor: vymaže kontajner.
Perzistencia dát: Zväzky v Dockeri
Štandardne sa dáta uložené v kontajneri stratia po jeho odstránení. Pre zachovanie trvalých dát je nevyhnutné pripojiť zväzky . Použitie zväzkov zabezpečuje, že dáta prežijú odstránenie kontajnera a budú sa môcť zdieľať medzi zväzkami.
Príklad s typom väzby zväzok:
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=key -v $PWD/data:/var/lib/mysql mysql:8.0
Môžete tiež použiť zväzky spravované Dockerom :
vytvorenie zväzku docker mysql_data docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=kľúč -v mysql_data:/var/lib/mysql mysql:8.0
Premenné prostredia
Docker vám umožňuje konfigurovať premenné prostredia, ktoré pomáhajú parametrizovať správanie kontajnerov . Napríklad:
docker run -e MYSQL_ROOT_PASSWORD=admin -e MYSQL_DATABASE=store mysql:8.0
Rozdelenie zdrojov
Môžete obmedziť využitie CPU a pamäte kontajnerom . Toto je užitočné, aby ste zabránili tomu, aby jeden kontajner spotreboval všetky systémové zdroje.
spustiť docker --cpus=0.5 --memory=512m môj obrázok
Základná orchestrácia s Docker Compose
Docker Compose zjednodušuje správu viacerých kontajnerov . Definuje všetky potrebné služby v jednom súbore YAML a potom ich spúšťa jedným príkazom. Viac informácií o vytváraní kontajnerov v Dockeri pomocou Docker Compose nájdete v článku Používanie Docker Compose.
Základný príklad docker-compose.yml pre MySQL:
verzia: '3' služby: mysql: obrázok: mysql:8.0 porty: - 3306:3306 prostredie: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=projekt - MYSQL_USER=používateľ - MYSQL_PASSWORD=kľúč zväzky: - mysql_data:/var/lib/mysql zväzky: mysql_data:
Zrušenie služieb:
docker-skladať hore -d
Najlepšie postupy pri používaní Dockeru
Aby ste zabezpečili efektívnosť, bezpečnosť a jednoduchú údržbu svojich obrázkov a kontajnerov, postupujte podľa týchto odporúčaní :
- Vždy, keď je to možné, používajte oficiálne obrázky, keďže sú auditované a optimalizované.
- Udržujte svoje nádoby ľahké používanie malých základných obrazov a odstraňovanie nepotrebných súborov po inštalácii balíkov.
- Nespúšťať procesy ako root, vytvorí v kontajneri konkrétneho používateľa.
- Používanie zväzkov na ukladanie trvalých údajov a vyhnúť sa stratám spôsobeným zlyhaniami alebo aktualizáciami.
- Nakonfigurujte citlivé premenné ako tajné atribúty pomocou prostredí alebo súborov .env, aby sa zabránilo ich odhaleniu v zdrojovom kóde.
Praktický príklad: nasadenie Pandora FMS s Dockerom
Reálnou aplikáciou využívajúcou viacero kontajnerov je Pandora FMS. Server aj databázu môžeme nasadiť iba dvoma príkazmi, ak použijeme Docker.
Najprv si nastavíme databázu:
docker run --name Pandora_DB -p 3306:3306 -e HESLO_KOREŇA_MOJEHO_SQL=pandora -e BÁZA_DÁT_MOJEHO_SQL=pandora -e POUŽÍVATEĽ_MOJEHO_SQL=pandora -e HESLO_MOJEHO_SQL=pandora -v mysqlvol:/var/lib/mysql -d súbory/pandorafms-percona-base
Aplikačný server potom začne ukazovať na IP adresu hostiteľa:
docker run --name Pandora_app --rm -p 8081:80 -e DBHOST=127.0.0.1 -e DBNAME=pandora -e DBUSER=pandora -e DBPASS=pandora -e DBPORT=3306 -ti rameijeiras/pandorafms-community:740
Vďaka tomu by ste mali funkčnú inštanciu Pandora FMS v priebehu niekoľkých minút.
Docker je všestranný nástroj, ktorý transformuje spôsob nasadzovania a správy aplikácií. Od nasadenia jednoduchých vývojových kontajnerov až po komplexné prostredia s viacerými službami, ich používanie zvyšuje efektivitu, znižuje problémy s kompatibilitou a uľahčuje škálovanie vašich projektov. Zvládnutie Dockeru je investícia, ktorá môže znamenať rozdiel v riadení vašich nasadení a vývoji aplikácií.
Vášnivý spisovateľ o svete bajtov a technológií všeobecne. Milujem zdieľanie svojich vedomostí prostredníctvom písania, a to je to, čo urobím v tomto blogu, ukážem vám všetko najzaujímavejšie o gadgetoch, softvéri, hardvéri, technologických trendoch a ďalších. Mojím cieľom je pomôcť vám orientovať sa v digitálnom svete jednoduchým a zábavným spôsobom.
