Dockeri õpetus algajatele: põhitõed, Architektuur, konteinerid

⚡ Nutikas kokkuvõte

Docker on konteinerplatvorm, mis pakib rakendusi ja nende sõltuvusi kaasaskantavatesse ja kergetesse konteineritesse. See ülevaade selgitab Dockeri arhitektuuri, installimist Ubuntu, olulised käsud ja kuidas konteinerid erinevad traditsioonilistest virtuaalmasinatest tarkvara kiiremaks edastamiseks.

  • 🐳 Konteinerimine: Docker virtualiseerib operatsioonisüsteemi tasandil, seega jagavad konteinerid hostkerneli ja kasutavad vähem ressursse kui virtuaalmasinad.
  • 🧱 ArchiStruktuur: Dockeri mootor (dockerd), pildid, registrid ja konteinerid moodustavad iga Dockeri töövoo taga oleva kliendi-serveri arhitektuuri.
  • 📦 Pildid ja konteinerid: Pilt on kirjutuskaitstud mall, konteiner aga töötav koopia ja üks pilt saab käivitada mitu konteinerit.
  • 🗄️ Registrid: Docker Hub salvestab avalikke ja privaatseid kujutisi, pakkudes teile miljoneid kasutusvalmis kujutisi, mida saate tõmmata ja käitada.
  • ⚙️ Paigaldus: On Ubuntu Lisad Docker APT repositooriumi ja GPG võtme ning seejärel installid docker-ce paketi apt-get'iga.
  • ⌨️ Põhikäsklused: Halda konteinereid käsurealt Dockeri pull, run, start, stop, ps, stats ja images käskudega.

Dockeri õpetus algajatele, mis hõlmab arhitektuuri ja paigaldamist Ubuntuja põhilised konteinerikäsud

Docker on üks populaarsemaid konteinerdamisplatvorme, mida kasutatakse tänapäevases keskkonnas. DevOps ja pilve töövooge. See Dockeri õpetus algajatele selgitab, mis on Docker, kuidas Dockeri arhitektuur töötab ja kuidas Dockerit installida Ubuntuja piltide ja konteinerite haldamiseks kasutatavad põhikäsklused.

Mis on Docker?

laevalaadija on virtualiseerimise tarkvaraarendusplatvorm, mis võimaldab samal hostil käitada mitut operatsioonisüsteemi. See aitab teil eraldada infrastruktuuri rakendustest, et saaksite tarkvara kiiresti tarnida. Erinevalt hüperviisoritest, mida kasutatakse virtuaalsete masinate (VM-ide) loomiseks, teostab Docker virtualiseerimist süsteemi tasandil, kasutades üksusi, mida nimetatakse Dockeri konteineriteks.

Dockeri konteinerid töötavad hosti operatsioonisüsteemi peal, nagu on näidatud alloleval pildil. See parandab nii tõhusust kui ka turvalisust. Samal infrastruktuuril saab käitada ka rohkem konteinereid kui virtuaalmasinaid, kuna konteinerid kasutavad vähem ressursse.

Virtualiseerimine Dockeris vs Hypervisoris
Virtualiseerimine Dockeris vs Hypervisoris

Erinevalt virtuaalmasinatest, mis saavad otse hostriistvaraga suhelda (näiteks Etherneti adapter, mis loob rohkem virtuaalseid adaptereid), töötavad Dockeri konteinerid isoleeritud keskkonnas hostoperatsioonisüsteemi peal. Isegi kui teie host töötab Windows, sa võid joosta Linux konteinerites olevad pildid abiga Hyper-V, mis loob automaatselt väikese virtuaalmasina baaskujutise virtualiseerimiseks.

Nüüd, kui teate, mis on Docker, vaatame peamisi põhjuseid, miks meeskonnad selle valivad.

Miks kasutada Dockerit?

Siin on peamised põhjused Dockeri kasutamiseks:

  • Docker on virtualiseerimiseks kasutatav tarkvara, mis võimaldab mitut operatsioonisüsteemid samal hostil töötama.
  • Docker on klient-server rakendus, mis tähendab, et kliendid suhtlevad serveriga.
  • Dockeri pildid toimivad konteinerite "lähtekoodina"; te kasutate neid ehitamiseks.
  • Docker toetab kahte tüüpi registreid: avalikke ja privaatseid.
  • Konteinerid on Dockeri organisatsioonilised üksused. Lihtsamalt öeldes on pilt mall ja konteiner on selle malli koopia, seega saate samast pildist käivitada mitu konteinerit.

Need eelised tulenevad Dockeri disainist. Järgmises osas antakse ülevaade Dockeri arhitektuurist ja selle põhikomponentidest.

laevalaadija Architektuur

Nüüd vaatame selles Dockeri konteineri õpetuses Dockeri arhitektuuri peamisi komponente.

laevalaadija Architekstuurikomponendid: mootor, pildid, registrid ja konteinerid

laevalaadija Architektuur

Dockeri mootor

Docker on klient-server rakendus, mis tähendab, et meil on kliendid, kes edastavad päringuid serverile. Dockeri deemon, mida nimetatakse dockerd'iks, on Dockeri mootor, mis esindab serverit. Deemon ja kliendid saavad töötada samal või kaugmasinal ning nad suhtlevad käsurea kliendi binaarfaili ja täisversiooni kaudu. RESTful API mis suhtleb dockerdiga.

Dockeri pildid

Dockeri kujutised on meie konteinerite „lähtekood”; me kasutame neid konteinerite loomiseks. Kujutistele saab tarkvara eelinstallida, mis kiirendab juurutamist. Need on kaasaskantavad ja saate kasutada olemasolevaid kujutisi või luua omaenda.

Dockeri registrid

Docker salvestab meie loodud pildid registritesse. On olemas avalikud ja privaatsed registrid. Dockeril on avalik register nimega Dockeri jaotur, kus saate pilte ka privaatselt salvestada. Docker Hubil on miljoneid pilte, mida saate kohe kasutama hakata.

Dockeri konteinerid

Konteinerid on Dockeri organisatsioonilised üksused ja üks selle põhikontseptsioone. Kui me loome pildi ja seda käivitame, käitame seda konteineri sees. Konteineri analoogiat kasutatakse selle sees töötava tarkvara kaasaskantavuse tõttu: saate seda teisaldada, „tarnida“, muuta, hallata, luua või hävitada, just nagu kaubalaevad käitlevad päris konteinereid.

Lihtsamalt öeldes on pilt mall ja konteiner on selle malli koopia. Samast pildist võib olla mitu konteinerit (koopiat).

Nende erinevate komponentide vastastikmõju näitab, kuidas Dockeri konteineritehnoloogia koos töötab. Käsklused nagu docker pull ja docker run, mida käsitleme hiljem, võimaldavad teil seda töövoogu hallata.

Arhitektuuri silmas pidades paigaldame Dockeri, et saaksite neid komponente ise proovida.

Kuidas installida Docker Linuxi/Ubuntu

Allpool on samm-sammult juhend Dockeri installimiseks Linuxis.Ubuntu:

Step 1) Dockeri installimiseks vajate Dockeri meeskonna DEB-pakette. Esiteks mõned eeltingimused Ubuntu Paketid on vajalikud. Nende installimiseks kasutage allolevat käsku.

$ sudo apt-get install \
apt-transport-https \
ca-certificates curl \
software-properties-common

*märk "\" pole vajalik, seda kasutatakse uue rea jaoks, soovi korral saate käsu kirjutada ilma "\" kasutamata ainult ühel real.

Step 2) Lisa ametlik Docker GPG võti koos sõrmejäljega. Kasuta GPG võtme sisestamiseks allolevat Docker käsku.

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Step 3) Seejärel lisage Docker APT hoidla alloleva käsu abil.

$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

Teil võidakse paluda kinnitada, et soovite repositooriumi lisada ja GPG-võtme automaatselt teie hostile lisada. Käsk lsb_release peaks täitma Ubuntu teie hosti levitamise versioon.

Step 4) Pärast GPG-võtme lisamist värskendage APT-allikaid alloleva Dockeri käsuga.

$ sudo apt-get update

Nüüd saate Dockeri paketi ise installida.

Step 5) Kui APT lähtekoodid on uuendatud, alustage Dockeri pakettide installimist Ubuntu kasutades allolevat Dockeri käsku.

$ sudo apt-get install docker-ce

Ülaltoodud käsk installib Dockeri ja muud vajalikud paketid. Enne Docker 1.8.0 oli paketi nimi lxc-docker ja Docker 1.8 ja 1.13 vahel oli paketi nimi docker-engine.

MÄRKUS: Dockeri jaoks Windows Vajab Windows 10 Pro või Enterprise versioon 14393 või Windows Server 2016 RTM käivitamiseks.

Dockeri kasutamine Dockeri põhikäskude abil

Siit saate teada, kuidas Dockerit mõne põhilise Dockeri käsuga kasutada.

Nagu varem mainitud, on kõige põhilisem käsk, mida pärast Dockeri installimist käivitada, docker info.

$ sudo docker info

Sa peaksid saama sarnase tulemuse järgmisele.

Kasutage Dockerit põhiliste Dockeri käskudega, kuvades Dockeri infoväljundit

Nagu ülaltoodud Dockeri näites näidatud, näeme teavet Dockeri konteinerite kohta: kui palju neist töötab, on peatatud või peatatud ning kui palju pilte on alla laaditud. Nüüd vaatame oma esimest pilti.

$ sudo docker pull alpine

Selle käsuga käsime Dockeril alla laadida alpine'i pilt, tõmmates selle avalikust registrist uusimas versioonis, mis on vaikimisi seatud.

*alpine on Alpine Linuxil põhinev minimaalne Dockeri pilt koos täieliku paketiindeksiga ja ainult 5 MB suurune.

Kui tahame pilti konteinerina käivitada, kasutame järgmist käsku.

$ sudo docker run -i -t alpine /bin/bash

Käsu käivitamine suunab meid otse Alpine'i terminali. Lipp -i hoiab konteineri standardväljundi avatuna isegi siis, kui te pole sellega ühendatud; see püsiv standardsisend on pool sellest, mida interaktiivse shelli jaoks vaja läheb. Lipp -t on teine ​​pool ja annab Dockerile käsu määrata konteinerile pseudo-tty. Koos annavad need meile uues konteineris interaktiivse shelli. Konteinerist väljume lihtsa exit-käsuga.

Nüüd, selles Dockeri põhitõdede õpetuses, saame proovida käivitada Ubuntu pilt.

$ sudo docker run -it ubuntu /bin/bash

Pane tähele, et Docker kontrollib pilti lokaalselt ja kui seda pole, tõmmatakse see automaatselt pilditeegist. Jällegi töötab meil interaktiivne kest. Samuti saame konteinereid käitamise ajal nimetada.

$ sudo docker run –-name our_container -it ubuntu /bin/bash

Seejärel väljume uuesti. Samuti saame käivitada eelnevalt loodud konteineri ilma interaktiivse shellita.

$ sudo docker start container_name

Ja me peatame konteineri, kirjutades käsu docker stop container_name.

$ sudo docker stop container_name

Kui tahame näha kõiki töötavaid konteinereid, käivitame lihtsalt järgmise.

$ docker ps

Kõikide konteinerite puhul lisame sama käsu lõppu „-a”, näiteks docker ps -a käsu puhul. See käsk näitab konteineri ID-d, kasutatavat image'i, loomise aega, tööolekut, avatud porte ja juhuslikult genereeritud nime hõlpsamaks haldamiseks.

Konteinerite käitamisel tahame sageli teada, kui palju ressursse nad kasutavad. Selleks saame kasutada järgmist käsku.

$ docker stats

Samuti näete, millised pildid olete kohapeal alla laadinud, koos nende kohta käiva teabega.

$ sudo docker images

Ülaltoodud Dockeri näites olev käsk kuvab iga Dockeri pildi koos sildiga, mis näitab pildi versiooni, eristavat pildi ID-d, loomise kuupäeva ja pildi suurust.

Et mõista, miks konteinerid on selline edasiminek, on kasulik vaadata, kuidas virtualiseerimine arenes.

Mis on virtualiseerimine?

Varem oli teenuse juurutamine aeglane ja vaevaline. Arendajad kirjutasid koodi ja seejärel juurutas operatsioonimeeskond selle tavalistes masinates, kus nad pidid jälgima teekide versioone, parandusi ja keelekompilaatoreid, et kood töötaks. Kui esines vigu või vigu, algas protsess uuesti: arendajad parandasid probleemi ja operatsioonimeeskond juurutas uuesti.

Asjad paranesid hüperviisorite loomisega. Hüperviisorid töötavad mitmel... virtuaalsed masinadehk samal hostil asuvad virtuaalmasinad, mis võivad olla töötavad või välja lülitatud. Virtuaalmasinad vähendasid oluliselt koodi juurutamise ja vigade parandamise ooteaega, kuid tegelikuks pöördepunktiks olid Dockeri konteinerid.

Dockeri populaarsust soodustavad ka orkestreerimisvahendid, mis haldavad konteinereid suures mahus, näiteks KubernetesEnne edasi liikumist on siin kiire ülevaade Dockeri kõige olulisematest käskudest.

Olulised Dockeri käsud

Allpool on olulised Dockeri käsud:

käsk Kirjeldus
dokkide teave Teabe käsk
doki tõmbamine Laadige alla pilt
docker run -i -t pildi_nimi /bin/bash Käivitage pilt konteinerina
docker käivitab meie_konteineri Käivitage konteiner
dokkimispeatus konteineri_nimi Peatage konteiner
docker ps Kõigi töötavate konteinerite loend
dokkide statistika Konteinerite teave
dokkide pildid Allalaaditud piltide loend
Dockeri puhastamine Tapke kõik töötavad konteinerid.

Loe ka neid Dockeri tööintervjuu küsimused ja vastused nii algajatele kui ka kogenud spetsialistidele.

KKK

Dockeri konteiner jagab hosti operatsioonisüsteemi kerneli ja isoleerib ainult rakenduse, seega on see kerge ja käivitub sekunditega. Virtuaalmasin sisaldab täielikku külalisoperatsioonisüsteemi, mis muudab selle suuremaks, aeglasemalt käivitatavaks ja ressursimahukamaks.

Dockerfile on lihtteksti skript, mis sisaldab käske nagu FROM, RUN, COPY ja CMD. Docker loeb neid käske, et automaatselt pilti luua. Iga rida lisab kihi, mis võimaldab teil sama keskkonda mis tahes masinas taasluua.

Docker Compose defineerib ja käitab mitme konteineriga rakendusi ühe YAML-faili abil. Kirjeldad iga teenust, võrku ja mahtu üks kord ning seejärel käivitad kõik käsuga docker compose up. See sobib ideaalselt ühendatud teenuste kohalikuks arendamiseks ja testimiseks.

Docker ehitab ja käitab individuaalseid konteinereid, samal ajal kui Kubernetes orkestreerib klastris paljusid konteinereid. Kubernetes lisab automaatse skaleerimise, isetervendamise ja koormuse tasakaalustamise. Praktikas pakib Docker rakenduse ja Kubernetes haldab seda tootmiskeskkonnas.

Docker Engine on tasuta ja avatud lähtekoodiga Apache 2.0 litsentsi alusel. Docker Desktop on tasuta isiklikuks kasutamiseks, haridusele ja väikeettevõtetele, kuid suuremad ettevõtted vajavad tasulist tellimust. Docker Hub pakub nii tasuta kui ka tasulisi piltide majutamise pakette.

Docker töötab Linuxis natiivselt ja seda toetatakse järgmistel platvormidel: Windows ja macOS Docker Desktopi kaudu. Sees Windows Macis kasutab Docker konteinerite jaoks vajaliku Linuxi kerneli käitamiseks kerget virtuaalmasinat. Enamik konteineri kujutisi on Linuxi-põhised.

Tehisintellekti assistendid genereerivad Dockerfile'e, Docker-compose'i faile ja CLI-käske lihtkeelsete käskude abil. Samuti loevad nad ehituslogisid ja konteineri vigu, selgitavad põhjust ja pakuvad välja parandusi. Enne genereeritud konfiguratsiooni käivitamist vaadake alati üle õiged pildisildid, teed ja turvalisus.

Jah. GitHubi koopia ja ChatGPT saab lühikese kommentaari või kirjelduse põhjal Dockerfile'i mustandeid luua ja faile koostada. Need kiirendavad mallide loomist, kuid peaksite kontrollima baaspilte, versioone ja parimaid tavasid, kuna genereeritud koodijupid võivad kasutada aegunud vaikesätteid.

Võta see postitus kokku järgmiselt: