Na akých kľúčových vlastnostiach je Docker založený?
sobes.tech AI
Odpoveď od AI
Kľúčové vlastnosti Docker:
-
Izolácia procesov: Kontajnery sú svojou povahou izolované od seba a od host systému. To je zabezpečené pomocou mechanizmov Linux jadra, ako sú namespaces (PID, NET, IPC, MNT, UTS) a cgroups (na obmedzenie zdrojov CPU, pamäte, I/O).
-
Obrázky (Images): Docker obrázok je nemenný, vrstvený artefakt, ktorý obsahuje všetko potrebné na spustenie aplikácie: kód, knižnice, závislosti, nástroje a konfiguračné súbory. Obrázky sa stavajú podľa princípu "vrstvy na vrstvy", čo umožňuje opätovné použitie spoločných komponentov a šetrí miesto.
-
Kontajnery (Containers): Kontajner je spustiteľný exemplár obrázka. Je ľahký, prenosný a obsahuje spustenú aplikáciu. Kontajnery môžu byť rýchlo spustené, zastavené, premiestnené a škálované.
-
Dockerfile: Dockerfile je súbor obsahujúci sadu inštrukcií, ktoré opisujú proces stavenia Docker obrázka. Ide o deklaratívny prístup k vytváraniu obrázkov, ktorý zabezpečuje reprodukovateľnosť a automatizáciu procesu.
# Príklad Dockerfile FROM alpine:3.14 // Základný obrázok RUN apk add --no-cache nginx // Inštalácia balíkov COPY html/ /usr/share/nginx/html/ // Kopírovanie súborov EXPOSE 80 // Otvorenie portu CMD ["nginx", "-g", "daemon off;"] // Príkaz pri spustení kontajnera -
Vrstvený súborový systém (Layered Filesystem): Docker používa Union File Systems (AUFS, OverlayFS), ktoré umožňujú vytváranie obrázkov z vrstiev. Každá vrstva predstavuje súbor zmien v porovnaní s predchádzajúcou vrstvou. Táto vlastnosť umožňuje rýchle vytváranie obrázkov, cacheovanie vrstiev a efektívne využívanie diskového priestoru.
-
Docker Registry (Registry/Hub): Docker registry (napríklad Docker Hub, GCR, ACR) sa používajú na ukladanie a šírenie Docker obrázkov. To umožňuje výmenu obrázkov medzi vývojármi, tímami a prostrediami.
-
Prenosnosť: Obrázky a kontajnery sú navrhnuté tak, aby boli prenosné. Obrázok, vytvorený na jednej platforme, môže byť spustený na akejkoľvek inej platforme, kde je nainštalovaný Docker, bez potreby preinštalovania závislostí.
-
Rýchly štart: Spustenie kontajnera je podstatne rýchlejšie ako spustenie virtuálnej mašiny, vďaka absencii potreby načítania úplného operačného systému.
-
Efektívne využívanie zdrojov: Kontajnery využívajú zdroje hostiteľského systému efektívnejšie ako virtuálne stroje, pretože nevyžadujú vyčlenenie samostatných jadier operačného systému.