logo

Kaj je Docker?

Docker je nabor izdelkov platforme kot storitve (PaaS), ki uporabljajo virtualizacijo na ravni operacijskega sistema za dostavo programske opreme v paketih, imenovanih vsebniki. Vsebniki so ločeni drug od drugega in združujejo lastno programsko opremo, knjižnice in konfiguracijske datoteke; med seboj lahko komunicirajo po točno določenih kanalih. Vse vsebnike poganja eno samo jedro operacijskega sistema in zato uporabljajo manj virov kot virtualni stroj.

java podniz

Kazalo



Kaj je Docker?

Docker je odprtokoden kontejnerizacija platformo, s katero lahko zapakirate svojo aplikacijo in vse njene odvisnosti v standardizirano enoto, imenovano vsebnik. Zabojniki so lahki, zaradi česar so prenosni in so izolirani od osnovne infrastrukture in drug od drugega zabojnika. Lahko zaženete slika dockerja kot docker kontejner v kateri koli napravi, kjer je nameščen docker, ne glede na operacijski sistem.

Docker je svojo priljubljenost pridobil zaradi svojega vpliva na razvoj in uvajanje programske opreme. Sledi nekaj glavnih razlogov za priljubljenost dockerja:

  1. Prenosljivost: Docker razvijalcem olajša pakiranje njihovih aplikacij z vsemi odvisnostmi v en sam lahek vsebnik. Omogoča zagotavljanje dosledne zmogljivosti v različnih računalniških okoljih.
  2. Ponovljivost: Z inkapsulacijo aplikacij z njihovimi odvisnostmi znotraj vsebnika zagotavlja, da nastavitve programske opreme ostanejo dosledne v razvojnem, testnem in proizvodnem okolju.
  3. Učinkovitost: Docker prek svoje vsebniške arhitekture optimizira uporabo virov. Razvijalcem omogoča zagon več izoliranih aplikacij na enem gostiteljskem sistemu.
  4. Razširljivost: Dockerjeve funkcije razširljivosti so razvijalcem olajšale ravnanje z njihovimi aplikacijami v času povečanja delovne obremenitve.

Kaj je Dockerfile?

The Dockerfile uporablja DSL (Domain Specific Language) in vsebuje navodila za generiranje slike Docker. Dockerfile bo definiral postopke za hitro izdelavo slike. Med ustvarjanjem aplikacije bi morali ustvariti datoteko Dockerfile v vrstnem redu od Docker demon izvede vsa navodila od zgoraj navzdol.



(Demon Docker, pogosto imenovan preprosto Docker, je storitev v ozadju, ki upravlja vsebnike Docker v sistemu.)

  • Je besedilni dokument, ki vsebuje potrebne ukaze, ki ob izvedbi pomagajo sestaviti sliko Docker.
  • Slika Docker je ustvarjena z uporabo datoteke Docker.
Dockerfile

Če želite izvedeti več o datoteki Dockerfile, glejte Docker – Koncept datoteke Docker .

Kaj je Dockerjeva arhitektura in kako Docker deluje?

Docker uporablja arhitekturo odjemalec-strežnik. Odjemalec Docker se pogovarja z demonom docker, ki pomaga pri gradnji, izvajanju in distribuciji vsebnikov docker. Odjemalec Docker se izvaja z demonom v istem sistemu ali pa odjemalca Docker povežemo z demonom Docker na daljavo. S pomočjo API-ja REST prek vtičnice UNIX ali omrežja odjemalec docker in demon komunicirata drug z drugim. Če želite izvedeti več o delovanju dockerja, glejte Arhitektura Dockerja .



Dockerjeva arhitektura

Kaj je Docker Image?

To je datoteka, sestavljena iz več plasti, ki se uporablja za izvajanje kode v vsebniku Docker. So niz navodil, ki se uporabljajo za ustvarjanje docker vsebnikov. Docker Image je izvršljiv paket programske opreme, ki vključuje vse, kar je potrebno za zagon aplikacije. Ta slika prikazuje, kako naj se vsebnik instancira, pri čemer določa, katere komponente programske opreme se bodo izvajale in kako. Docker Container je virtualno okolje, ki združuje kodo aplikacije z vsemi odvisnostmi, potrebnimi za zagon aplikacije. Aplikacija teče hitro in zanesljivo iz enega računalniškega okolja v drugega.

Kaj je Docker Container?

Vsebnik Docker je izvajalni primerek slike. Omogoča razvijalcem pakiranje aplikacij z vsemi potrebnimi deli, kot so knjižnice in druge odvisnosti. Docker Containers so izvajalni primerki slik Docker. Vsebniki vsebujejo celoten komplet, ki je potreben za aplikacijo, tako da se lahko aplikacija izvaja na izoliran način. Na primer.- Recimo, da obstaja slika sistema Ubuntu OS s STREŽNIKOM NGINX, ko se ta slika zažene z ukazom za zagon dockerja, potem bo ustvarjen vsebnik in STREŽNIK NGINX se bo izvajal v OS Ubuntu.

Kaj je Docker Hub?

Docker Hub je storitev repozitorija in je storitev v oblaku, kamor ljudje kadar koli in kjer koli prek interneta potisnejo svoje slike vsebnika Docker in povlečejo slike vsebnika Docker iz Docker Huba. Na splošno olajša iskanje in ponovno uporabo slik. Zagotavlja funkcije, kot je na primer, da svoje slike potisnete v zasebni ali javni register, kjer lahko shranjujete in delite slike Docker.

V glavnem ekipa DevOps uporablja Docker Hub. Je odprtokodno orodje in je prosto dostopno za vse operacijske sisteme. Je kot shramba, kamor shranjujemo slike in jih potegnemo, ko je to potrebno. Ko želi oseba potisniti/povleči slike iz Docker Huba, mora imeti osnovno znanje Dockerja. Pogovorimo se o zahtevah orodja Docker.

Kaj je Docker Compose?

Docker Compose bo izvedel aplikacijo z več vsebniki, ki temelji na YAML. Datoteka YAML je sestavljena iz vseh konfiguracij, potrebnih za namestitev vsebnikov Docker Compose , ki je integriran z Docker Swarm , in ponuja navodila za gradnjo in namestitev vsebnikov. Z Docker Compose je vsak vsebnik izdelan za delovanje na enem gostitelju.

Kako prenesti Docker Desktop?

Docker Desktop ponuja GUI za delo na docker vsebnikih, docker slikah in docker omrežjih. Docker desktop ponuja ločeno okolje, ki vsebuje Docker Engine, Docker CLI, Docker Compose, Kubernetes, in druga orodja, ki so potrebna za gradnjo, pošiljanje in zagon aplikacij v obliki vsebnikov, zaradi česar je uporabniku prijaznejša. Če želite izvedeti več o namestitvi namizja docker, glejte Vzorčna slika namizja Docker.

Docker ukazi

Z uvedbo bistvenih ukazov dockerja je docker postal zmogljiva programska oprema za racionalizacijo procesa upravljanja vsebnika. Pomaga pri zagotavljanju nemotenega razvoja in delovnih tokov uvajanja. Sledi nekaj ukazov dockerja, ki se pogosto uporabljajo:

  • Docker Run: Uporablja se za zagon vsebnikov iz slik, s podajanjem možnosti izvajanja in ukazov.
  • Docker Pull: Pridobi slike vsebnika iz registra vsebnikov, kot je Docker Hub, v lokalni računalnik.
  • Docker ps : Pomaga pri prikazovanju tekočih vsebnikov skupaj z njihovimi pomembnimi informacijami, kot so ID vsebnika, uporabljena slika in status.
  • Docker Stop : Pomaga pri zaustavitvi delujočih vsebnikov in elegantno zaustavi procese v njih.
  • Docker Start: Pomaga pri ponovnem zagonu ustavljenih vsebnikov, ki nadaljujejo njihovo delovanje iz prejšnjega stanja.
  • Prijava v Docker: Pomaga pri prijavi v register dockerjev, ki omogoča dostop do zasebnih skladišč.

Če želite izvedeti več o ukazih docker, glejte Docker – Ukazi za navodila .

Docker Engine

Programska oprema, ki gosti vsebnike, se imenuje Docker Engine. Docker Engine je aplikacija, ki temelji na odjemalcu in strežniku. Docker motor ima 3 glavne komponente:

  1. strežnik: Odgovoren je za ustvarjanje in upravljanje slik Docker, vsebnikov, omrežij in nosilcev na Dockerju. Imenuje se proces demona.
  2. REST API : Določa, kako lahko aplikacije komunicirajo s strežnikom, in mu ukazuje, kaj naj naredi.
  3. Naročnik: Odjemalec je vmesnik ukazne vrstice docker (CLI), ki nam omogoča interakcijo z Dockerjem z uporabo ukazov docker.

Zakaj uporabljati Docker?

Docker lahko uporabite za pakiranje aplikacije in njenih odvisnosti, zaradi česar je lahka in enostavna za hitrejšo in zanesljivejšo pošiljanje kode. Docker omogoča zelo preprosto izvajanje aplikacije v produkcijskem okolju. Vsebnik dockerja je lahko neodvisen od platforme, če je v napravi nameščen mehanizem dockerja.

  • Učinkovitost virov : Docker pomaga pri maksimiranju izkoriščenosti virov z izvajanjem več vsebnikov na enem gostitelju. Pomaga pri zmanjševanju stroškov infrastrukture in izboljša učinkovitost.
  • Nadzor različice: Poenostavlja ustvarjanje različic za aplikacije in njihove odvisnosti, kar zagotavlja doslednost in olajša sodelovanje med ekipami.
  • Agilnost mikrostoritev: Omogoča sprejetje arhitekture mikrostoritev, ki spodbuja razširljivost, prilagodljivost in agilen razvoj aplikacij za izolacijo napak.

Kaj je Docker za AWS?

Docker je najmočnejše orodje za zagon aplikacije v obliki vsebnikov. Vsebnik Docker je lahek in ga je mogoče izvajati v katerem koli operacijskem sistemu.

zvezdna topologija

AWS zagotavlja Amazon Elastic Container Service ( Amazon ECS ) je popolnoma upravljana vsebniška storitev, s katero lahko razmestite, povečate in upravljate docker vsebnike. Amazon ECS je najbolj zanesljiva platforma glede na zmogljivost, poleg tega pa jo je mogoče integrirati z drugimi storitvami AWS, kot so izravnava obremenitve, odkrivanje storitev in spremljanje stanja vsebnikov. Če želite izvedeti več o Storitev Amazon Elastic Container (Amazon ECS) .

Razlika med vsebniki Docker in virtualnimi stroji

Naslednje so razlike med docker vsebniki in virtualnimi stroji:

Docker kontejnerji

Virtualni stroji

Vsebniki Docker vsebujejo binarne datoteke, knjižnice in konfiguracijske datoteke skupaj s samo aplikacijo.

Navidezni stroji (VM) delujejo na hipervizorjih, ki omogočajo, da več navideznih strojev deluje na enem računalniku skupaj z lastnim operacijskim sistemom.

Ne vsebujejo gostujočega OS za vsak vsebnik in se zanašajo na osnovno jedro OS, zaradi česar so vsebniki lažji.

Vsak VM ima svojo kopijo operacijskega sistema skupaj z aplikacijo in potrebnimi binarnimi datotekami, zaradi česar je bistveno večji in zahteva več virov.

Vsebniki delijo vire z drugimi vsebniki v istem gostiteljskem OS in zagotavljajo izolacijo procesa na ravni OS.

Zagotavljajo izolacijo procesov na ravni strojne opreme in se počasi zaganjajo.

Namestite Docker na Ubuntu

Naslednji koraki vas vodijo pri namestitvi dockerja v ubuntu:

1. korak: Odstranite staro različico Dockerja

  • Izvedite naslednji ukaz, da odstranite staro različico programske opreme docker:
$ sudo apt-get remove docker docker-engine docker.io containerd runc>

2. korak: Namestitev Docker Engine

  • Za namestitev docker motorja se uporablja naslednji ukaz:
$ 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>

3. korak: Preverite namestitev Dockerja

  • Preverite, ali je docker uspešno nameščen v vašem sistemu, tako da poskusite zagnati vsebnik z naslednjim ukazom:
$ sudo docker run hello-world>

Za več podrobnosti o namestitvi dockerja v ubuntu si oglejte to – Članek

Vzorčni primer: Kontejnerska aplikacija z uporabo Dockerja

Naslednji koraki vodijo za shranjevanje aplikacije z uporabo Dockerja:

1. korak: Ustvarite Dokcerfile in aplikacijo Python

  • Ustvarite mapo z 2 datotekama (Dockerfile in main.py file) v njej

2. korak: Razvijte kodo Python

  • Uredite main.py s spodnjo kodo ali pa poskusite razviti lastno kodo python.
Python
#!/usr/bin/env python3 print('Docker and GFG rock!')>

3. korak: Razvijte datoteko Docker

  • Uredite datoteko Dockerfile s spodnjimi navodili za razvoj datoteke Dockerfile:
FROM python:latest COPY main.py / CMD [ 'python', './main.py' ]>

4. korak: Ustvarite sliko Docker

  • Ko ustvarite in uredite datoteko main.py in datoteko Dockerfile, ustvarite sliko, ki vsebuje vašo aplikacijo, tako da zaženete naslednji ukaz:
$ sudo docker build -t python-test .>
  • Možnost '-t' omogoča določitev imena vaše slike. 'python-test' je ime, ki smo ga izbrali za sliko.

5. korak: Zaženite Docker Container

  • Ko je slika ustvarjena, je vaša koda pripravljena za zagon.
$ sudo docker run python-test>

Če želite izvedeti več o tem kontejneriziranju vaše aplikacije, glejte to – Članek

Vzorčni primer za potiskanje slike v Docker Hub

Naslednji koraki vodijo pri potiskanju slike v Dockerhub:

Korak 1: Ustvarite račun na Docker Hub ali uporabite obstoječega, če ga že imate.

2. korak: Kliknite gumb Ustvari repozitorij, vnesite ime datoteke in kliknite Ustvari.

3. korak: Zdaj bo označil našo sliko in jo potisnil v repozitorij Docker Hub, ki smo ga pravkar ustvarili.

  • Zdaj zaženite spodnji ukaz za seznam slik dockerja:
$ docker images>
  • Zgornje nam bo dalo ta rezultat
REPOSITORY TAG IMAGE_ID CREATED SIZE afrozchakure/python-test latest c7857f97ebbd 2 hours ago 933MB>
  • ID slike se uporablja za označevanje slike. Sintaksa za označevanje slike je:
docker tag /python-test:latest $ docker tag c7857f97ebbd afrozchakure/python-test:latest>

4. korak: Potisnite sliko v repozitorij Docker Hub

$ docker push afrozchakure/python-test>

Če želite izvedeti več o objavljanju slik na dockerhub, si oglejte to – Članek

Pridobite in zaženite sliko iz Docker Huba

1. Za odstranitev vseh različic določene slike iz našega lokalnega sistema uporabimo ID slike zanjo.

$ docker rmi -f af939ee31fdc>

2. Zdaj zaženite sliko, ki bo pridobila sliko iz središča docker, če ne obstaja na vašem lokalnem računalniku.

$ docker run afrozchakure/python-test>

Prednosti Dockerja

Sledi nekaj prednosti Dockerja:

  • Prenosljivost: Docker zmogljivosti z ustvarjanjem lahkih prenosnih vsebnikov, ki jih ni mogoče uporabiti na nobenem računalniku, ne glede na osnovne operacijske sisteme.
  • Izolacija: Docker skozi vsebnike zagotavlja visoko stopnjo izolacije, saj omogoča, da se aplikacije izvajajo neodvisno druga od druge, s čimer obravnava težave, na katere en vsebnik ne vpliva na drugega.
  • Ponovljivost: S tem lahko razvijalci Dockerja preprosto zapakirajo svoje aplikacije in njihove odvisnosti v slike za večkratno uporabo. Omogoča dosledne in ponovljive gradnje v razvojnih, testnih in proizvodnih okoljih.
  • Integracija DevOps : Spodbuja sodelovanje in avtomatizacijo v celotnem življenjskem ciklu razvoja programske opreme pri prenašanju naraščajočih delovnih obremenitev.

Alternative Dockerja

Naslednje so alternative za Docker:

linux $home
  • Umirjeno : ponuja vsebniški mehanizem, združljiv z Dockerjem, s poudarkom na varnosti in združljivosti, idealen za okolja, kjer Docker ni priljubljen ali na voljo.
  • rkt: Lahek izvajalni čas vsebnika, ki ga je razvil CoreOS, zasnovan za preprostost, varnost in možnost sestavljanja ter ponuja alternativo Dockerjevemu izvajalnemu okolju vsebnika.
  • LXC (vsebniki Linux): Zagotavlja virtualizacijo na ravni operacijskega sistema za izvajanje več izoliranih sistemov Linux (vsebnikov) na enem gostitelju in ponuja lahko alternativo Dockerju za določene primere uporabe.
  • posoda: Industrijsko standardno jedrno izvajalno okolje vsebnika, ki ga je razvil Docker, Inc. in ponuja minimalno in stabilno platformo za gradnjo aplikacij v vsebnikih, ki se pogosto uporablja kot nižja alternativa Dockerju za naprednejše sisteme orkestracije vsebnikov, kot je Kubernetes.

Docker Varnost

Sledi nekaj vpogledov v varnost dockerjev:

  • Izolacija : Vsebniki Docker zagotavljajo močno izolacijo, ki zagotavlja delovanje aplikacij in obdelavo.
  • Nespremenljiva infrastruktura : spodbuja uporabo nespremenljive infrastrukture, kjer so vsebniki zgrajeni iz nespremenljivih slik, ki so nadzorovane različice.
  • Omejitve virov: Omogoča vam, da določite omejitve virov za vsebnike, kot so omejitve procesorja in pomnilnika.
  • Varnostno skeniranje: Zagotavlja vgrajena orodja za varnostno skeniranje, ki vam omogočajo skeniranje slik vsebnika za znane ranljivosti in zlonamerno programsko opremo pred uvedbo.

Zaključek

Tako ste se naučili osnov Dockerja, razlike med navideznimi stroji in vsebniki Docker skupaj z nekaterimi pogostimi terminologijami v Dockerju. Pregledali smo tudi namestitev Dockerja v naše sisteme. Ustvarili smo aplikacijo z uporabo Dockerja in našo sliko potisnili v Docker Hub. Nazadnje smo izvedeli, kako lahko odstranimo določeno sliko iz našega lokalnega sistema in pozneje potegnemo sliko iz Docker Huba, če lokalno ne obstaja.

Docker – pogosta vprašanja

Kaj je na kratko Docker Hub?

Docker Hub je javni register, v katerem lahko uporabniki/razvijalci shranjujejo in delijo sistemske slike, ki so jih sami ustvarili, ter omogočajo preprost dostop in ponovno uporabo slik za druge razvijalce programske opreme.

Kaj je potrebno za uporabo Docker Huba?

Za uporabo Docker Huba mora imeti uporabnik račun na platformi Docker Hub. Če nimate računa na Docker Hub, ga lahko ustvarite tako, da se prijavite. Ko imate račun na Dockerju, lahko izvajate operacije, kot je potiskanje in vlečenje slik v Docker Hub in iz njega.

Kaj so dnevniki Docker?

Docker daemon in vsebniki Docker bodo ustvarili dnevnike dockerjev v obliki besedilnih sporočil, ki vam bodo pomagali pri nadaljnjem odpravljanju težav, spremljanju delovanja vaših aplikacij in zbiranju informacij o stanju vašega okolja Docker.

Kaj je Docker Build?

Docker build je ukaz, ki se uporablja za gradnjo docker slike z uporabo Dockerfile.

Kaj je Docker Ubuntu?

Docker Ubuntu je izraz, ki se uporablja za uporabo storitve Docker z operacijskimi sistemi, ki temeljijo na Ubuntuju. Zagon Dockerja je najbolj primeren za priljubljeno distribucijo Linuxa Ubuntu.