Docker je sada produktov Platforms as a Service (PaaS), ktoré využívajú virtualizáciu na úrovni operačného systému na poskytovanie softvéru v balíkoch nazývaných kontajnery. Kontajnery sú od seba izolované a spájajú svoj vlastný softvér, knižnice a konfiguračné súbory; môžu medzi sebou komunikovať prostredníctvom dobre definovaných kanálov. Všetky kontajnery sú prevádzkované jedným jadrom operačného systému, a preto využívajú menej zdrojov ako virtuálny stroj.
Obsah
najlepšie auto na svete
- Čo je Docker?
- Prečo je Docker populárny?
- Čo je to Dockerfile?
- Čo je architektúra Docker a ako Docker funguje?
- Čo je to Docker Image?
- Čo je kontajner Docker?
- Čo je Docker Hub?
- Čo je to Docker Compose?
- Ako stiahnuť Docker Desktop?
- Príkazy Docker
- Docker Engine
- Prečo používať Docker?
- Čo je Docker For AWS?
- Rozdiel medzi kontajnermi Docker a virtuálnymi strojmi
- Nainštalujte Docker na Ubuntu
- Vzorový príklad: Kontajnerová aplikácia pomocou Dockeru
- Vzorový príklad na odoslanie obrázka do centra Docker
- Načítajte a spustite obrázok z Docker Hub
- Výhody Dockera
- Alternatívy Dockera
- Docker Security
Čo je Docker?
Docker je open-source kontajnerizácia platforma, pomocou ktorej môžete zabaliť vašu aplikáciu a všetky jej závislosti do štandardizovanej jednotky nazývanej kontajner. Kontajnery majú nízku hmotnosť, vďaka čomu sú prenosné a sú izolované od základnej infraštruktúry a od seba navzájom. Môžete spustiť obrázok dockera ako dokovací kontajner v akomkoľvek počítači, kde je nainštalovaný docker bez závislosti od operačný systém.
Prečo je Docker populárny?
Docker si získal svoju popularitu vďaka svojmu vplyvu na vývoj a nasadenie softvéru. Toto sú niektoré z hlavných dôvodov, prečo sa docker stal populárnym:
- Prenosnosť: Docker uľahčuje vývojárom balenie ich aplikácií so všetkými závislosťami do jedného ľahkého kontajnera. Zabezpečuje konzistentný výkon v rôznych počítačových prostrediach.
- Reprodukovateľnosť: Prostredníctvom zapuzdrenia aplikácií s ich závislosťami v kontajneri zabezpečuje, že nastavenia softvéru zostávajú konzistentné vo vývojových, testovacích a produkčných prostrediach.
- Účinnosť: Docker prostredníctvom svojej kontajnerovej architektúry optimalizuje využitie zdrojov. Umožňuje vývojárom spúšťať viacero izolovaných aplikácií na jednom hostiteľskom systéme.
- Škálovateľnosť: Funkcie škálovateľnosti Docker uľahčili vývojárom zjednodušiť prácu s ich aplikáciami v čase zvýšenia pracovného zaťaženia.
Čo je to Dockerfile?
The Dockerfile používa DSL (Domain Specific Language) a obsahuje pokyny na generovanie obrazu Docker. Dockerfile bude definovať procesy na rýchle vytvorenie obrázka. Pri vytváraní aplikácie by ste mali vytvoriť Dockerfile v poradí od Démon Docker spustí všetky pokyny zhora nadol.
(Démon Docker, často označovaný jednoducho ako Docker, je služba na pozadí, ktorá spravuje kontajnery Docker v systéme.)
- Je to textový dokument, ktorý obsahuje potrebné príkazy, ktoré pri spustení pomôžu zostaviť obrázok Docker.
- Docker image je vytvorený pomocou Dockerfile.

Ak sa chcete dozvedieť viac o súbore Dockerfile, pozrite si Docker – koncept súboru Dockerfile .
Čo je architektúra Docker a ako Docker funguje?
Docker využíva architektúru klient-server. Klient Docker hovorí s démonom docker, ktorý pomáha pri vytváraní, spúšťaní a distribúcii kontajnerov dockerov. Klient Docker beží s démonom na rovnakom systéme alebo môžeme klienta Docker prepojiť s démonom Docker na diaľku. S pomocou REST API cez UNIX soket alebo sieť, docker klient a démon navzájom spolupracujú. Ak sa chcete dozvedieť viac o práci dockera, pozrite si Architektúra Docker .

Čo je to Docker Image?
Je to súbor pozostávajúci z viacerých vrstiev, ktorý sa používa na spustenie kódu v kontajneri Docker. Ide o súbor inštrukcií používaných na vytváranie kontajnerov dokovacích staníc. Docker Image je spustiteľný balík softvéru, ktorý obsahuje všetko potrebné na spustenie aplikácie. Tento obrázok informuje o tom, ako by mal kontajner vytvoriť inštanciu a určiť, ktoré softvérové komponenty budú bežať a ako. Docker Container je virtuálne prostredie, ktoré spája kód aplikácie so všetkými závislosťami potrebnými na spustenie aplikácie. Aplikácia beží rýchlo a spoľahlivo z jedného výpočtového prostredia do druhého.
Čo je Docker Container?
Kontajner Docker je inštancia obrázka v režime runtime. Umožňuje vývojárom zabaliť aplikácie so všetkými potrebnými časťami, ako sú knižnice a ďalšie závislosti. Kontajnery Docker sú runtime inštancie obrazov Docker. Kontajnery obsahujú celú sadu potrebnú pre aplikáciu, takže aplikácia môže byť spustená izolovaným spôsobom. Napríklad: Predpokladajme, že existuje obraz Ubuntu OS s NGINX SERVER, keď je tento obraz spustený pomocou príkazu docker run, potom sa vytvorí kontajner a NGINX SERVER bude spustený na OS Ubuntu.
Čo je Docker Hub?
Docker Hub je služba úložiska a je to cloudová služba, kde ľudia posúvajú svoje obrázky kontajnerov Docker a tiež sťahujú obrázky kontajnerov Docker z Docker Hub kedykoľvek a kdekoľvek cez internet. Vo všeobecnosti to uľahčuje vyhľadávanie a opätovné použitie obrázkov. Poskytuje funkcie, ako je možné vložiť svoje obrázky ako súkromný alebo verejný register, kde môžete ukladať a zdieľať obrázky Docker.
Hlavne tím DevOps využíva Docker Hub. Je to open-source nástroj a je voľne dostupný pre všetky operačné systémy. Je to ako úložisko, kde ukladáme obrázky a vyťahujeme obrázky, keď je to potrebné. Keď chce niekto tlačiť/vyťahovať obrázky z Docker Hub, musí mať základné znalosti Dockera. Poďme diskutovať o požiadavkách nástroja Docker.
Čo je to Docker Compose?
Docker Compose spustí multikontajnerovú aplikáciu založenú na YAML. Súbor YAML pozostáva zo všetkých konfigurácií potrebných na nasadenie kontajnerov Docker Compose , ktorý je integrovaný s Docker Swarm a poskytuje pokyny na zostavenie a rozmiestnenie kontajnerov. S Docker Compose je každý kontajner vytvorený tak, aby bežal na jednom hostiteľovi.
Ako stiahnuť Docker Desktop?
Docker Desktop poskytuje GUI na prácu s dokovacími kontajnermi, dockerovými obrázkami a dockerovými sieťami. Docker desktop poskytuje samostatné prostredie, ktoré obsahuje Docker Engine, Docker CLI, Docker Compose, Kubernetes, a ďalšie nástroje, ktoré sú potrebné na zostavovanie, odosielanie a spúšťanie aplikácií vo forme kontajnerov, vďaka čomu je užívateľsky prívetivejšia. Ak sa chcete dozvedieť viac o tom, ako nainštalovať pracovnú plochu dockera, pozrite si Ukážkový obrázok Docker Desktop.
Príkazy Docker
Zavedením základných príkazov dockera sa docker stal výkonným softvérom na zefektívnenie procesu správy kontajnerov. Pomáha pri zabezpečovaní bezproblémového pracovného toku vývoja a nasadenia. Nasledujú niektoré z príkazov docker, ktoré sa bežne používajú:
- Docker Run: Používa sa na spúšťanie kontajnerov z obrázkov so špecifikovaním možností a príkazov runtime.
- Docker Pull: Načítava obrázky kontajnerov z registra kontajnerov, ako je napríklad Docker Hub, na lokálny počítač.
- Docker ps : Pomáha pri zobrazovaní spustených kontajnerov spolu s ich dôležitými informáciami, ako je ID kontajnera, použitý obrázok a stav.
- Docker Stop : Pomáha pri zastavení bežiacich kontajnerov a elegantne vypne procesy v nich.
- Štart dockera: Pomáha pri reštartovaní zastavených kontajnerov a obnovení ich prevádzky z predchádzajúceho stavu.
- Prihlásenie do dockera: Pomáha prihlásiť sa do registra dockerov, čo umožňuje prístup k súkromným úložiskám.
Ak sa chcete dozvedieť viac o príkazoch dockera, pozrite si Docker – Inštrukčné príkazy .
Docker Engine
Softvér, ktorý je hostiteľom kontajnerov, sa nazýva Docker Engine. Docker Engine je aplikácia založená na klient-server. Docker engine má 3 hlavné komponenty:
- Server: Zodpovedá za vytváranie a správu obrazov Dockera, kontajnerov, sietí a zväzkov na Dockeri. Označuje sa ako proces démona.
- REST API : Špecifikuje, ako môžu aplikácie interagovať so serverom, a dáva mu pokyny, čo má robiť.
- Zákazník: Klient je rozhranie príkazového riadka dockera (CLI), ktoré nám umožňuje komunikovať s Dockerom pomocou príkazov dockera.
Prečo používať Docker?
Docker možno použiť na zabalenie aplikácie a jej závislostí, vďaka čomu je ľahké a jednoduché odosielanie kódu rýchlejšie s vyššou spoľahlivosťou. Docker veľmi zjednodušuje spustenie aplikácie v produkčnom prostredí docker kontajner môže byť nezávislý na platforme, ak je v počítači nainštalovaný docker engine.
- Efektívnosť zdrojov : Docker pomáha maximalizovať využitie zdrojov spustením viacerých kontajnerov na jednom hostiteľovi. Pomáha znižovať náklady na infraštruktúru a zvyšuje efektivitu.
- Kontrola verzií: Zjednodušuje vytváranie verzií pre aplikácie a ich závislosti, čím zabezpečuje konzistentnosť a uľahčuje spoluprácu medzi tímami.
- Agility mikroslužieb: Umožňuje prijatie architektúry mikroslužieb, podporuje škálovateľnosť, flexibilitu a agilný vývoj aplikácií na izoláciu chýb.
Čo je Docker For AWS?
Docker je najvýkonnejší nástroj na spustenie aplikácie vo forme kontajnerov. Kontajnery Docker majú nízku hmotnosť a možno ich spustiť na akomkoľvek operačnom systéme.
stránky ako coomeet
AWS poskytuje službu Amazon Elastic Container Service ( Amazon ECS ) ide o plne spravovanú kontajnerovú službu, pomocou ktorej môžete nasadzovať, škálovať a spravovať dokovacie kontajnery. Amazon ECS je najspoľahlivejšia platforma podľa výkonu a tiež môže byť integrovaná s inou službou AWS, ako je vyrovnávanie zaťaženia, zisťovanie služieb a monitorovanie stavu kontajnerov. Ak chcete vedieť viac o Služba Amazon Elastic Container Service (Amazon ECS) .
Rozdiel medzi kontajnermi Docker a virtuálnymi strojmi
Nasledujú rozdiely medzi kontajnermi dokovacích zariadení a virtuálnymi počítačmi:
Docker kontajnery | Virtuálne stroje |
|---|---|
Kontajnery Docker obsahujú binárne súbory, knižnice a konfiguračné súbory spolu so samotnou aplikáciou. | Virtuálne stroje (VM) bežia na hypervízoroch, ktoré umožňujú bežať viacerým virtuálnym strojom na jednom stroji spolu s vlastným operačným systémom. |
Neobsahujú hosťujúci OS pre každý kontajner a spoliehajú sa na základné jadro OS, vďaka čomu sú kontajnery ľahké. | Každý VM má svoju vlastnú kópiu operačného systému spolu s aplikáciou a potrebnými binárnymi súbormi, čo ho výrazne zväčšuje a vyžaduje viac zdrojov. triedenie n-tic python |
Kontajnery zdieľajú prostriedky s inými kontajnermi v rovnakom hostiteľskom OS a poskytujú izoláciu procesov na úrovni OS. | Poskytujú izoláciu procesov na úrovni hardvéru a spúšťajú sa pomaly. |
Nainštalujte Docker na Ubuntu
Nasledujúce kroky vás prevedú inštaláciou dockeru na ubuntu:
Krok 1: Odstráňte starú verziu Docker
- Vykonajte nasledujúci príkaz na odstránenie starej verzie dokovacieho softvéru:
$ sudo apt-get remove docker docker-engine docker.io containerd runc>
Krok 2: Inštalácia Docker Engine
- Na inštaláciu docker motora sa používa nasledujúci príkaz:
$ sudo apt-get update $ sudo apt-get install ca-certificates curl gnupg lsb-release $ sudo mkdir -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg $ echo 'deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable' | sudo tee /etc/apt/sources.list.d/docker.list>/dev/null $ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin $ sudo groupadd docker $ sudo usermod -aG docker $USER>
Krok 3: Overte inštaláciu Docker
- Skontrolujte, či je docker úspešne nainštalovaný vo vašom systéme tak, že sa pokúsite spustiť kontajner pomocou nasledujúceho príkazu:
$ sudo docker run hello-world>
Viac podrobností o inštalácii dockeru na ubuntu nájdete v tomto – Článok
Vzorový príklad: Kontajnerová aplikácia pomocou Dockeru
Nasledujúce kroky vás prevedú kontajnerizáciou aplikácie pomocou Dockera:
Krok 1: Vytvorte aplikáciu Dokcerfile a Python
- Vytvorte priečinok s 2 súbormi (Dockerfile a súbor main.py).
Krok 2: Vytvorte kód Python
- Upravte main.py pomocou nižšie uvedeného kódu, alebo môžete skúsiť vyvinúť svoj vlastný python kód.
#!/usr/bin/env python3 print('Docker and GFG rock!')> Krok 3: Vytvorte Dockerfile
- Upravte Dockerfile pomocou nižšie uvedených pokynov na vývoj Dockerfile:
FROM python:latest COPY main.py / CMD [ 'python', './main.py' ]>
Krok 4: Vytvorte obrázok Docker
- Po vytvorení a úprave súboru main.py a súboru Dockerfile vytvorte svoj obrázok obsahujúci vašu aplikáciu spustením nasledujúceho príkazu:
$ sudo docker build -t python-test .>
- Možnosť „-t“ umožňuje definovať názov vášho obrázka. „python-test“ je názov, ktorý sme pre obrázok vybrali.
Krok 5: Spustite Docker Container
- Po vytvorení obrázka je váš kód pripravený na spustenie.
$ sudo docker run python-test>
Ak sa chcete dozvedieť viac o tejto kontajnerizácii vašej aplikácie, pozrite si toto – Článok
Vzorový príklad na odoslanie obrázka do centra Docker
Nasledujúce kroky vás prevedú vložením obrázka do Dockerhubu:
Krok 1: Vytvorte si účet na Docker Hub alebo použite existujúci, ak ho už máte.
Krok 2: Kliknite na tlačidlo Vytvoriť úložisko, zadajte názov súboru a kliknite na Vytvoriť.
Krok 3: Teraz označí náš obrázok a vloží ho do úložiska Docker Hub, ktoré sme práve vytvorili.
generátor náhodných čísel v c
- Teraz spustite príkaz uvedený nižšie na zobrazenie obrázkov dockerov:
$ docker images>
- Vyššie uvedené nám poskytne tento výsledok
REPOSITORY TAG IMAGE_ID CREATED SIZE afrozchakure/python-test latest c7857f97ebbd 2 hours ago 933MB>
- ID obrázka sa používa na označenie obrázka. Syntax na označenie obrázka je:
docker tag /python-test:latest $ docker tag c7857f97ebbd afrozchakure/python-test:latest>
Krok 4: Odoslať obrázok do úložiska Docker Hub
$ docker push afrozchakure/python-test>
Ak sa chcete dozvedieť viac o publikovaní obrázkov na dockerhub, pozrite si toto – Článok
Načítajte a spustite obrázok z Docker Hub
1. Na odstránenie všetkých verzií konkrétneho obrázka z nášho lokálneho systému používame ID obrázka.
$ docker rmi -f af939ee31fdc>
2. Teraz spustite obrázok, načíta ho z dokovacieho rozbočovača, ak na vašom lokálnom počítači neexistuje.
$ docker run afrozchakure/python-test>
Výhody Dockera
Nasledujú niektoré z výhod Docker:
- Prenosnosť: Docker zariadenia s vytvorením ľahkých prenosných kontajnerov, ktoré nemôžu byť schopné na akomkoľvek počítači bez ohľadu na základné operačné systémy.
- Izolácia: Docker prostredníctvom kontajnerov poskytuje vysokú úroveň izolácie a umožňuje aplikáciám bežať nezávisle od seba a rieši problémy, ktoré jeden kontajner neovplyvňuje druhý.
- Reprodukovateľnosť: Vďaka tomu môžu vývojári Docker jednoducho zabaliť svoje aplikácie a ich závislosti do opakovane použiteľných obrázkov. Umožňuje konzistentné a reprodukovateľné zostavy vo vývojových, testovacích a produkčných prostrediach.
- Integrácia DevOps : Podporuje spoluprácu a automatizáciu počas celého životného cyklu vývoja softvéru pri zvládaní narastajúceho pracovného zaťaženia.
Alternatívy Dockera
Nasledujú alternatívy Dockera:
- Podman : Ponúka kontajnerový engine kompatibilný s Dockerom so zameraním na bezpečnosť a kompatibilitu, ideálny pre prostredia, kde Docker nie je preferovaný alebo dostupný.
- rkt: Odľahčený kontajnerový runtime vyvinutý spoločnosťou CoreOS, navrhnutý pre jednoduchosť, bezpečnosť a skladateľnosť a ponúka alternatívu k runtime kontajnera Docker.
- LXC (Linuxové kontajnery): Poskytuje virtualizáciu na úrovni operačného systému pre spustenie viacerých izolovaných linuxových systémov (kontajnerov) na jednom hostiteľovi, čím ponúka odľahčenú alternatívu k Dockeru pre určité prípady použitia.
- v kontajneroch: Odvetvové štandardné jadro kontajnerového runtime vyvinuté spoločnosťou Docker, Inc., ktoré ponúka minimálnu a stabilnú platformu na vytváranie kontajnerových aplikácií, ktoré sa často používa ako alternatíva nižšej úrovne k Dockeru pre pokročilejšie systémy orchestrácie kontajnerov, ako je Kubernetes.
Zabezpečenie Docker
Nižšie sú uvedené niektoré poznatky o zabezpečení dockerov:
- Izolácia : Kontajnery Docker poskytujú silnú izoláciu, ktorá zabezpečuje chod aplikácií a spracovanie.
- Nemenná infraštruktúra : Podporuje používanie nemennej infraštruktúry, kde sú kontajnery zostavené z nemenných obrazov, ktoré sú riadené verziou.
- Obmedzenia zdrojov: Umožňuje vám definovať obmedzenia prostriedkov pre kontajnery, ako sú limity CPU a pamäte.
- Bezpečnostné skenovanie: Poskytuje vstavané bezpečnostné skenovacie nástroje, ktoré vám umožňujú skenovať obrázky kontajnerov na známe zraniteľnosti a malvér pred nasadením.
Záver
Takže ste sa dozvedeli o základoch Dockera, rozdiele medzi virtuálnymi strojmi a kontajnermi Docker spolu s niektorými bežnými terminológiami v Dockeri. Tiež sme prešli inštaláciou Dockera na naše systémy. Vytvorili sme aplikáciu pomocou Docker a posunuli náš obrázok do Docker Hub. Nakoniec sme sa dozvedeli, ako môžeme odstrániť konkrétny obrázok z nášho lokálneho systému a neskôr stiahnuť obrázok z Docker Hub, ak lokálne neexistuje.
Docker – často kladené otázky
Čo je to v skratke Docker Hub?
Docker Hub je verejný register, v ktorom môžu používatelia/vývojári ukladať a zdieľať obrazy systému, ktoré vytvorili, a umožňujú tak jednoduchý prístup k obrazom a ich opätovné použitie pre iných vývojárov softvéru.
Čo je potrebné na používanie Docker Hub?
Ak chcete používať Docker Hub, používateľ by mal mať účet na platforme Docker Hub. Ak nemáte účet na Docker Hub, môžete si ho vytvoriť spevom. Keď budete mať účet v Dockeri, môžete vykonávať operácie, ako je push a pull obrázky do az Docker Hub.
Čo sú denníky Docker?
Démon Docker a kontajnery Docker vygenerujú protokoly dockerov vo forme textových správ, ktoré vám pomôžu ďalej riešiť problémy, monitorovať výkon vašich aplikácií a zhromažďovať informácie o stave vášho prostredia Docker.
Čo je to Docker Build?
Docker build je príkaz, ktorý sa používa na vytvorenie obrazu dockeru pomocou súboru Dockerfile.
Čo je Docker Ubuntu?
Docker Ubuntu je termín používaný na používanie služby Docker s operačnými systémami založenými na Ubuntu. Spustenie Dockeru je najvhodnejšie pre populárnu linuxovú distribúciu Ubuntu.