„Docker“ yra platformų kaip paslaugos (PaaS) produktų rinkinys, kuris naudoja operacinės sistemos lygio virtualizavimą, kad pateiktų programinę įrangą paketuose, vadinamuose konteineriais. Sudėtiniai konteineriai yra atskirti vienas nuo kito ir sujungia savo programinę įrangą, bibliotekas ir konfigūracijos failus; jie gali bendrauti tarpusavyje aiškiai apibrėžtais kanalais. Visus konteinerius valdo vienas operacinės sistemos branduolys, todėl sunaudojama mažiau išteklių nei virtualioji mašina.
Turinys
kas yra dviguba java
- Kas yra Docker?
- Kodėl Docker yra populiarus?
- Kas yra Dockerfile?
- Kas yra „Docker“ architektūra ir kaip veikia „Docker“?
- Kas yra „Docker Image“?
- Kas yra „Docker Container“?
- Kas yra Docker Hub?
- Kas yra „Docker Compose“?
- Kaip atsisiųsti „Docker Desktop“?
- Docker komandos
- Docker variklis
- Kodėl verta naudoti „Docker“?
- Kas yra „Docker“, skirta AWS?
- Skirtumas tarp „Docker“ konteinerių ir virtualių mašinų
- Įdiekite „Docker“ Ubuntu
- Pavyzdys: programos talpinimas naudojant „Docker“.
- Pavyzdys, kaip nusiųsti vaizdą į Docker Hub
- Gaukite ir paleiskite vaizdą iš „Docker Hub“.
- „Docker“ pranašumai
- „Docker“ alternatyvos
- Docker Security
Kas yra Docker?
Dokeris yra atvirojo kodo konteinerizavimas platforma, kuria galite supakuoti savo programą ir visas jos priklausomybes į standartizuotą vienetą, vadinamą konteineriu. Konteineriai yra lengvi, todėl juos galima nešiotis ir yra izoliuoti nuo pagrindinės infrastruktūros ir vienas nuo kito konteinerio. Galite paleisti dokerio vaizdas kaip dokerio konteineris bet kurioje mašinoje, kurioje įdiegtas dokas, neatsižvelgiant į Operacinė sistema.
Kodėl Docker yra populiarus?
„Docker“ išpopuliarėjo dėl savo įtakos programinės įrangos kūrimui ir diegimui. Toliau pateikiamos kelios pagrindinės docker populiarumo priežastys:
- Perkeliamumas: „Docker“ padeda kūrėjams supakuoti savo programas su visomis priklausomybėmis į vieną lengvą konteinerį. Tai leidžia užtikrinti nuoseklų našumą įvairiose skaičiavimo aplinkose.
- Atkuriamumas: Sudėjus programas su jų priklausomybėmis į konteinerį, programinės įrangos sąrankos išlieka nuoseklios kūrimo, testavimo ir gamybos aplinkose.
- Efektyvumas: „Docker“, naudodamas savo konteinerių architektūrą, optimizuoja išteklių naudojimą. Tai leidžia kūrėjams paleisti kelias atskirtas programas vienoje pagrindinėje sistemoje.
- Mastelio keitimas: „Docker“ mastelio funkcijos padėjo kūrėjams palengvinti programų tvarkymą didėjant darbo krūviui.
Kas yra Dockerfile?
The Dockerfile naudoja DSL (Domain Specific Language) ir pateikia instrukcijas, kaip generuoti Docker vaizdą. „Dockerfile“ nustatys greito vaizdo kūrimo procesus. Kurdami programą turėtumėte sukurti Dockerfile, kad nuo Docker demonas paleidžia visas instrukcijas iš viršaus į apačią.
(„Docker“ demonas, dažnai vadinamas tiesiog „Docker“, yra foninė paslauga, valdanti „Docker“ konteinerius sistemoje.)
- Tai tekstinis dokumentas, kuriame yra būtinų komandų, kurios padeda surinkti Docker vaizdą.
- „Docker“ vaizdas sukuriamas naudojant „Dockerfile“.

Norėdami sužinoti daugiau apie Dockerfile, žr Docker – Dockerfile koncepcija .
Kas yra „Docker“ architektūra ir kaip veikia „Docker“?
„Docker“ naudoja kliento ir serverio architektūrą. „Docker“ klientas kalbasi su „Docker“ demonu, kuris padeda kurti, paleisti ir platinti dokų konteinerius. „Docker“ klientas veikia su demonu toje pačioje sistemoje arba galime nuotoliniu būdu prijungti „Docker“ klientą su „Docker“ demonu. Naudodami REST API per UNIX lizdą arba tinklą, dokerio klientas ir demonas sąveikauja vienas su kitu. Norėdami sužinoti daugiau apie dokerio darbą, žr Docker architektūra .
Kas yra „Docker Image“?
Tai failas, sudarytas iš kelių sluoksnių, naudojamas kodui vykdyti Docker konteineryje. Tai yra instrukcijų rinkinys, naudojamas kuriant doko konteinerius. „Docker Image“ yra vykdomasis programinės įrangos paketas, kuriame yra viskas, ko reikia programai paleisti. Šiame paveikslėlyje nurodoma, kaip konteineris turėtų būti kartojamas, nustatant, kurie programinės įrangos komponentai veiks ir kaip. „Docker Container“ yra virtuali aplinka, kuri sujungia programos kodą su visomis priklausomybėmis, reikalingomis programai paleisti. Programa greitai ir patikimai veikia iš vienos skaičiavimo aplinkos į kitą.
Kas yra „Docker Container“?
Docker konteineris yra vaizdo vykdymo laikas. Leidžia kūrėjams supakuoti programas su visomis reikalingomis dalimis, pvz., bibliotekomis ir kitomis priklausomybėmis. „Docker“ konteineriai yra „Docker“ vaizdų vykdymo pavyzdžiai. Talpykloje yra visas programai reikalingas rinkinys, todėl programą galima paleisti atskirai. Pavyzdžiui. Tarkime, kad yra Ubuntu OS vaizdas su NGINX SERVER, kai šis vaizdas paleistas su docker run komanda, tada bus sukurtas konteineris ir NGINX SERVER veiks Ubuntu OS.
Kas yra Docker Hub?
„Docker Hub“ yra saugyklos paslauga ir tai yra debesies paslauga, kurioje žmonės bet kada ir bet kur internetu perkelia savo „Docker Container“ vaizdus ir taip pat iš „Docker Hub“ ištraukia „Docker Container“ vaizdus. Paprastai tai leidžia lengvai rasti ir pakartotinai naudoti vaizdus. Jame teikiamos funkcijos, pvz., galite perkelti vaizdus kaip privatų arba viešą registrą, kuriame galite saugoti ir bendrinti „Docker“ vaizdus.
Daugiausia „DevOps“ komanda naudoja „Docker Hub“. Tai atvirojo kodo įrankis ir laisvai prieinamas visoms operacinėms sistemoms. Tai tarsi saugykla, kurioje saugome vaizdus ir ištraukiame vaizdus, kai to reikia. Kai asmuo nori nustumti / ištraukti vaizdus iš „Docker Hub“, jis turi turėti pagrindinių „Docker“ žinių. Aptarkime Docker įrankio reikalavimus.
Kas yra „Docker Compose“?
„Docker Compose“ vykdys YAML pagrindu sukurtą kelių konteinerių programą. YAML failą sudaro visos konfigūracijos, reikalingos konteineriams įdiegti Docker Compose , kuris yra integruotas su Dokerių spiečius ir pateikia nurodymus, kaip sukurti ir dislokuoti konteinerius. Naudojant „Docker Compose“, kiekvienas konteineris sukurtas veikti viename pagrindiniame kompiuteryje.
Kaip atsisiųsti „Docker Desktop“?
„Docker Desktop“ teikia grafinę sąsają, skirtą dirbti su „Docker“ konteineriais, „Docker“ vaizdais ir „Docker“ tinklais. „Docker“ darbalaukyje yra atskira aplinka, kurioje yra „Docker Engine“, „Docker CLI“, „Docker Compose“, Kubernetes, ir kitos priemonės, reikalingos kuriant, siunčiant ir paleidžiant programas konteinerių pavidalu, todėl jos tampa patogesnės. Norėdami sužinoti daugiau, kaip įdiegti „Docker“ darbalaukį, žr „Docker“ darbalaukio pavyzdinis vaizdas.
Docker komandos
Pristačiusi pagrindines docker komandas, docker tapo galinga programine įranga, supaprastinančia konteinerių valdymo procesą. Tai padeda užtikrinti sklandžią kūrimo ir diegimo darbo eigą. Toliau pateikiamos kai kurios dažniausiai naudojamos docker komandos:
- „Docker Run“: Jis naudojamas konteineriams paleisti iš vaizdų, nurodant vykdymo parinktis ir komandas.
- Docker Pull: Jis nukelia konteinerio vaizdus iš konteinerio registro, pvz., „Docker Hub“, į vietinį kompiuterį.
- Docker ps : padeda rodyti veikiančius konteinerius kartu su svarbia informacija, pvz., konteinerio ID, naudotu vaizdu ir būsena.
- Dokerio stotelė : padeda sustabdyti veikiančius konteinerius, gražiai išjungiant juose vykstančius procesus.
- Docker Start: Tai padeda iš naujo paleisti sustabdytus konteinerius, atnaujinti jų veiklą iš ankstesnės būsenos.
- Docker prisijungimas: Tai padeda prisijungti prie docker registro, leidžiančio pasiekti privačias saugyklas.
Norėdami sužinoti daugiau apie docker komandas, žr Docker – instrukcijų komandos .
Docker variklis
Programinė įranga, kurioje talpinami konteineriai, pavadinta Docker Engine. „Docker Engine“ yra kliento ir serverio programa. Dokerio variklį sudaro 3 pagrindiniai komponentai:
- Serveris: Jis atsakingas už „Docker“ vaizdų, konteinerių, tinklų ir tomų kūrimą ir tvarkymą „Docker“. Jis vadinamas demono procesu.
- REST API : Jame nurodoma, kaip programos gali sąveikauti su serveriu, ir nurodoma, ką daryti.
- Klientas: Klientas yra „Docker“ komandų eilutės sąsaja (CLI), leidžianti sąveikauti su „Docker“ naudojant docker komandas.
Kodėl verta naudoti „Docker“?
„Docker“ gali būti naudojamas programai ir jos priklausomybėms supakuoti, todėl ji yra lengva ir lengviau išsiųsti kodą greičiau ir patikimiau. „Docker“ leidžia labai paprastai paleisti programą gamybinėje aplinkoje „Docker“ konteineris gali būti nepriklausomas nuo platformos, jei įrenginyje yra įdiegtas doko variklis.
- Išteklių efektyvumas : „Docker“ padeda maksimaliai išnaudoti išteklius, paleidžiant kelis konteinerius viename pagrindiniame kompiuteryje. Tai padeda sumažinti infrastruktūros išlaidas ir padidina efektyvumą.
- Versijos valdymas: Tai supaprastina programų ir jų priklausomybių versijų nustatymą, užtikrinant nuoseklumą ir palengvinant komandų bendradarbiavimą.
- „Microservices Agility“: Tai leidžia pritaikyti mikropaslaugų architektūrą, skatinančią lankstumą, lankstumą ir gedimų izoliavimą.
Kas yra „Docker“, skirta AWS?
„Docker“ yra galingiausias įrankis, leidžiantis paleisti programą konteinerių pavidalu. Docker konteineris yra lengvas ir gali būti paleistas bet kurioje operacinėje sistemoje.
AWS teikia „Amazon Elastic Container Service“ ( Amazon ECS ) tai visiškai valdoma konteinerių paslauga, kurią naudodami galite įdiegti, keisti mastelį ir valdyti doko konteinerius. „Amazon ECS“ yra patikimiausia platforma pagal našumą, taip pat ją galima integruoti su kitomis AWS paslaugomis, tokiomis kaip apkrovos balansavimas, paslaugų aptikimas ir konteinerių būklės stebėjimas. Norėdami sužinoti daugiau apie „Amazon Elastic Container Service“ („Amazon ECS“) .
Skirtumas tarp „Docker“ konteinerių ir virtualių mašinų
Toliau pateikiami dokerių konteinerių ir virtualiųjų mašinų skirtumai:
Docker konteineriai | Virtualios mašinos |
---|---|
„Docker Containers“ yra dvejetainiai failai, bibliotekos ir konfigūracijos failai kartu su pačia programa. | Virtualios mašinos (VM) veikia su hipervizoriais, kurie leidžia kelioms virtualiosioms mašinoms veikti viename kompiuteryje kartu su savo operacine sistema. kaip sužinoti savo monitoriaus dydį |
Juose nėra svečių OS kiekvienam konteineriui ir jie priklauso nuo pagrindinio OS branduolio, todėl konteineriai yra lengvi. | Kiekviena VM turi savo operacinės sistemos kopiją kartu su programa ir reikalingais dvejetainiais failais, todėl ji žymiai padidėja ir reikalauja daugiau išteklių. |
Sudėtiniai ištekliai dalijasi su kitais konteineriais toje pačioje pagrindinio kompiuterio OS ir užtikrina OS lygio proceso izoliaciją. | Jie užtikrina aparatinės įrangos lygio proceso izoliaciją ir lėtai paleidžiami. |
Įdiekite „Docker“ Ubuntu
Šie veiksmai padės jums įdiegti docker Ubuntu:
1 veiksmas: pašalinkite seną „Docker“ versiją
- Vykdykite šią komandą, kad pašalintumėte senos versijos docker programinę įrangą:
$ sudo apt-get remove docker docker-engine docker.io containerd runc>
2 veiksmas: „Docker Engine“ įdiegimas
- Docker variklio diegimui naudojama ši komanda:
$ 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 veiksmas: patikrinkite „Docker“ diegimą
- Patikrinkite, ar docker sėkmingai įdiegtas jūsų sistemoje, bandydami paleisti konteinerį su šia komanda:
$ sudo docker run hello-world>
Norėdami sužinoti daugiau apie docker diegimą ubuntu, žr. Straipsnis
Pavyzdys: programos talpinimas naudojant „Docker“.
Toliau pateikiami žingsniai, kaip sudėti programą naudojant „Docker“:
1 veiksmas: sukurkite „Dokcerfile“ ir „Python“ programą
- Sukurkite aplanką su 2 failais (Dockerfile ir main.py failais).
2 veiksmas: sukurkite Python kodą
- Redaguokite main.py naudodami toliau pateiktą kodą arba galite pabandyti sukurti savo python kodą.
#!/usr/bin/env python3 print('Docker and GFG rock!')>
3 veiksmas: sukurkite „Dockerfile“.
- Redaguokite „Dockerfile“ naudodami toliau pateiktas „Dockerfile“ kūrimo instrukcijas:
FROM python:latest COPY main.py / CMD [ 'python', './main.py' ]>
4 veiksmas: sukurkite „Docker“ vaizdą
- Sukūrę ir redaguodami failą main.py ir Dockerfile, sukurkite vaizdą su programa, vykdydami šią komandą:
$ sudo docker build -t python-test .>
- Parinktis „-t“ leidžia apibrėžti jūsų vaizdo pavadinimą. „python-test“ yra pavadinimas, kurį pasirinkome vaizdui.
5 veiksmas: paleiskite „Docker Container“.
- Sukūrus vaizdą, jūsų kodas yra paruoštas paleisti.
$ sudo docker run python-test>
Norėdami sužinoti daugiau apie šį savo programos konteinerį, žr. Straipsnis
Pavyzdys, kaip nusiųsti vaizdą į Docker Hub
Toliau pateikiami veiksmai, kaip perkelti vaizdą į Dockerhub:
1 žingsnis: Sukurkite paskyrą Docker Hub arba naudokite esamą paskyrą, jei ją jau turite.
2 žingsnis: Spustelėkite mygtuką Sukurti saugyklą, įveskite failo pavadinimą ir spustelėkite Kurti.
3 veiksmas: Dabar pažymės mūsų vaizdą ir perkels jį į „Docker Hub“ saugyklą, kurią ką tik sukūrėme.
- Dabar paleiskite toliau pateiktą komandą, kad pateiktumėte dockerių vaizdus:
$ docker images>
- Aukščiau pateikta informacija suteiks mums tokį rezultatą
REPOSITORY TAG IMAGE_ID CREATED SIZE afrozchakure/python-test latest c7857f97ebbd 2 hours ago 933MB>
- Vaizdo ID naudojamas vaizdui pažymėti. Vaizdo žymėjimo sintaksė yra tokia:
docker tag /python-test:latest $ docker tag c7857f97ebbd afrozchakure/python-test:latest>
4 veiksmas: Siųskite vaizdą į „Docker Hub“ saugyklą
$ docker push afrozchakure/python-test>
Norėdami sužinoti daugiau apie vaizdų publikavimą dockerhub, žr. Straipsnis
Gaukite ir paleiskite vaizdą iš „Docker Hub“.
1. Norėdami pašalinti visas konkretaus vaizdo versijas iš vietinės sistemos, naudojame vaizdo ID.
$ docker rmi -f af939ee31fdc>
2. Dabar paleiskite vaizdą, jis pateiks vaizdą iš dokerio šakotuvo, jei jo nėra jūsų vietiniame kompiuteryje.
$ docker run afrozchakure/python-test>
„Docker“ pranašumai
Štai keletas „Docker“ pranašumų:
- Perkeliamumas: „Docker“ įrenginiai su lengvų nešiojamų konteinerių kūrimu, kurių negalima naudoti jokiame įrenginyje, nepaisant pagrindinės operacinės sistemos.
- Isolation: Docker per konteinerius užtikrina aukštą izoliacijos lygį, leidžiančią programoms veikti nepriklausomai viena nuo kitos, sprendžiant problemas, kurių vienas konteineris neturi įtakos kitam.
- Atkuriamumas: Naudodami „Docker“ kūrėjai gali lengvai supakuoti savo programas ir jų priklausomybes į daugkartinius vaizdus. Tai leidžia nuosekliai ir pakartotinai kurti kūrimo, testavimo ir gamybos aplinkoje.
- „DevOps“ integracija : Tai skatina bendradarbiavimą ir automatizavimą per visą programinės įrangos kūrimo gyvavimo ciklą, perduodant didėjantį darbo krūvį.
„Docker“ alternatyvos
Toliau pateikiamos „Docker“ alternatyvos:
- Nuslopintas : Siūlomas su „Docker“ suderinamas konteinerio variklis, daugiausia dėmesio skiriant saugumui ir suderinamumui, idealiai tinka tokioms aplinkoms, kuriose „Docker“ nėra pageidaujama arba neprieinama.
- rkt: Lengvas „CoreOS“ sukurtas konteinerio vykdymo laikas, sukurtas paprastumui, saugumui ir suderinamumui užtikrinti, siūlantis alternatyvą „Docker“ konteinerio vykdymo laikui.
- LXC („Linux“ talpyklos): Teikia operacinės sistemos lygio virtualizavimą kelioms izoliuotoms „Linux“ sistemoms (konteineriams) paleisti viename pagrindiniame kompiuteryje ir tam tikrais atvejais siūlo lengvą „Docker“ alternatyvą.
- konteineriuose: Pramonės standarto pagrindinio konteinerio vykdymo laikas, sukurtas Docker, Inc., siūlantis minimalią ir stabilią platformą konteinerinėms programoms kurti, dažnai naudojama kaip žemesnio lygio Docker alternatyva pažangesnėms konteinerių orkestravimo sistemoms, pvz., Kubernetes.
Docker Security
Toliau pateikiamos kelios įžvalgos apie dokų saugumą:
- Isolation : „Docker“ konteineriai užtikrina tvirtą izoliaciją, užtikrinančią taikomąsias programas ir apdorojimą.
- Nekintama infrastruktūra : Tai skatina naudoti nekintamą infrastruktūrą, kai konteineriai kuriami iš nekintamų vaizdų, kurių versija valdoma.
- Išteklių apribojimai: Tai leidžia apibrėžti išteklių apribojimus konteineriams, pvz., CPU ir atminties apribojimus.
- Apsaugos nuskaitymas: Tai suteikia integruotus saugos nuskaitymo įrankius, leidžiančius prieš įdiegiant nuskaityti konteinerio vaizdus, ar nėra žinomų pažeidžiamumų ir kenkėjiškų programų.
Išvada
Taigi jūs sužinojote apie „Docker“ pagrindus, apie skirtumą tarp virtualių mašinų ir „Docker“ konteinerių, naudodami kai kurias įprastas „Docker“ terminijas. Be to, savo sistemose įdiegėme „Docker“. Sukūrėme programą naudodami „Docker“ ir perkėlėme savo vaizdą į „Docker Hub“. Galiausiai sužinojome, kaip galime pašalinti tam tikrą vaizdą iš vietinės sistemos ir vėliau ištraukti vaizdą iš „Docker Hub“, jei jo nėra vietoje.
Docker – DUK
Kas yra Docker Hub trumpai?
„Docker Hub“ yra viešas registras, kuriame naudotojai ir (arba) kūrėjai gali saugoti ir bendrinti savo sukurtus sistemos vaizdus, kad jie galėtų lengvai pasiekti ir pakartotinai naudoti vaizdus kitiems programinės įrangos kūrėjams.
Ko reikia norint naudoti „Docker Hub“?
Norėdami naudoti „Docker Hub“, vartotojas turi turėti paskyrą „Docker Hub“ platformoje. Jei neturite paskyros „Docker Hub“, galite ją sukurti prisiregistravę. Kai turėsite paskyrą Docker, galėsite atlikti tokias operacijas kaip stumti ir traukti vaizdus į Docker Hub ir iš jo.
Kas yra „Docker“ žurnalai?
„Docker“ demonas ir „Docker“ konteineriai generuos „Docker“ žurnalus tekstinių pranešimų pavidalu, kurie padės toliau šalinti triktis, stebėti programų našumą ir rinkti informaciją apie „Docker“ aplinkos būseną.
Kas yra „Docker Build“?
„Docker build“ yra komanda, kuri naudojama kuriant „Docker“ vaizdą naudojant „Dockerfile“.
Kas yra Docker Ubuntu?
Docker Ubuntu yra terminas, naudojamas Docker paslaugai naudoti su Ubuntu pagrįstomis operacinėmis sistemomis. „Docker“ veikimas geriausiai tinka populiariam „Linux“ platinimui „Ubuntu“.