Dockeri algõpetus algajatele
Meie Docker-õpetuses tutvustame teile Docker-virtualiseerimisplatvormi ja näitame lihtsate juhiste abil, kuidas Dockeri oma Ubuntu 22.04 süsteemis kasutada.
Dockeri ülesehitus ja omadused
„Looge, levitage ja käivitage mis tahes rakendus, kus tahes“ – see on Docker’i moto. See avatud lähtekoodiga konteinerplatvorm pakub paindlikku ja vähe ressursse nõudvat alternatiivi riistvarakomponentide emuleerimiseks virtuaalmasinate (VM) abil.
Kui traditsiooniline riistvaraline virtualiseerimine põhineb mitme külalissüsteemi käivitamisel ühisel peresüsteemil, siis Docker-rakendusi käitatakse konteinerite abil sama süsteemi sees isoleeritud protsessidena. Seda nimetatakse konteineripõhiseks virtualiseerimiseks, mida tuntakse ka operatsioonisüsteemi tasandi virtualiseerimisena.

Konteineripõhise virtualiseerimise üks suur eelis on see, et erinevate nõuetega rakendused saavad töötada üksteisest eraldatult, ilma et oleks vaja eraldi külalissüsteemi lisakoormust. Lisaks võimaldavad konteinerid rakendusi platvormidevaheliselt ja erinevates infrastruktuurides kasutusele võtta, ilma et neid oleks vaja kohandada vastavalt peresüsteemi riist- või tarkvarakonfiguratsioonile.
Docker on kõige populaarsem tarkvaraprojekt, mis pakub kasutajatele konteineripõhist virtualiseerimistehnoloogiat. See avatud lähtekoodiga platvorm põhineb kolmel põhikomponendil. Konteinerite käivitamiseks on kasutajatel vaja vaid Docker-mootorit ning spetsiaalseid Docker-pilte, mida saab hankida Docker Hubist või ise luua.
Docker-pildid
Sarnaselt virtuaalmasinatega põhinevad Docker-konteinerid Docker-piltidel. Pilt on ainult lugemiseks mõeldud mall, mis sisaldab kõiki juhiseid, mida Docker-mootor vajab konteineri loomiseks. Docker-pilti kirjeldatakse kui konteineri teisaldatavat pilti tekstifaili vormis, mida nimetatakse ka Dockerfile’iks. Kui konteinerit soovitakse süsteemis käivitada, laaditakse esmalt alla vastava pildiga pakett, juhul kui seda kohalikult veel ei ole. Laaditud pilt pakub vajalikku failisüsteemi, sealhulgas kõiki parameetreid käitamiseks. Konteinerit võib vaadelda kui pildi käimasolevat protsessi.
Docker Hub
Docker Hub on pilvepõhine tarkvararepositooriumide register, mis on omamoodi Docker-piltide raamatukogu. Veebiteenus on jagatud avalikuks ja privaatseks osaks. Avalikus osas on kasutajatel võimalus üles laadida enda loodud pilte ja neid kogukonnaga jagada. Siin on saadaval mitmed ametlikud pildid, mille on loonud Docker arendajate meeskond ja tuntud avatud lähtekoodiga projektid. Registri privaatsesse osasse üles laaditud kujutised ei ole avalikult kättesaadavad ja neid saab jagada näiteks ettevõtte siseringis või sõprade ja tuttavatega. Docker Hubile pääseb ligi aadressil hub.docker.com.
Docker-mootor
Docker-projekti keskmes on Docker-mootor. Tegemist on avatud lähtekoodiga kliendi-serveri rakendusega, mille praegune versioon on kõigile kasutajatele kättesaadav kõigil levinud platvormidel.
Docker-mootori põhiarhitektuur jaguneb kolmeks komponendiks: serverifunktsioone täitev daemon, REST-paradigmal (Representational State Transfer) põhinev programmeerimisliides (API) ning operatsioonisüsteemi terminal (käskuderida, CLI) kasutajaliidesena (klient).
- Docker-daemon: Docker-mootori serverina kasutatakse daemon-protsessi. Docker-daemon töötab host-süsteemi taustal ja seda kasutatakse Docker-mootori keskseks juhtimiseks. See funktsioon loob ja haldab kõiki kujutisi, konteinerid ja võrke.
- REST-API: REST-API määrab kindlaks liideste kogumi, mis võimaldab teistel programmidel Docker-daemoniga suhelda ja talle juhiseid anda. Üks neist programmidest on operatsioonisüsteemi terminal.
- Terminal: Kliendiprogrammina kasutab Docker operatsioonisüsteemi terminali. See, mis on REST-API kaudu integreeritud Docker-daemoniga, võimaldab kasutajatel seda skriptide või kasutaja sisestuste kaudu juhtida.
2017. aastal nimetati Docker Engine ümber Docker Community Editioniks (lühendatult Docker CE), kuid ametlikus dokumentatsioonis ja Docker-hoidlatest kasutatakse enamasti ikka veel vana nime. Lisaks Docker CE-le on olemas ka Docker Enterprise Edition (Docker EE), millel on mõned lisafunktsioonid. See pole aga tasuta ja sobib pigem ettevõtetele.
Docker-käskude abil saab kasutaja tarkvarakonteinereid käivitada, peatada ja hallata otse terminali kaudu. Daemoniga suheldakse käsu docker ning käskude build, pull või run abil. Klient ja server võivad asuda samas süsteemis. Kasutajatel on ka võimalus pääseda juurde teise süsteemi Docker-daemonile. Sõltuvalt loodava ühenduse tüübist toimub suhtlus kliendi ja serveri vahel REST-API, UNIX-sokettide või võrguliidese kaudu.
Järgmine joonis illustreerib Docker’i üksikute komponentide koostoimet näidiskäskude docker build, docker pull ja docker run puhul:

Käsk docker build annab Docker-daemonile käsu luua pilt (punktiirjoon). Selleks peab olema olemas vastav Dockerfile. Kui pilti ei soovitata luua, vaid laadida Docker Hubi hoidlast, kasutatakse käsku docker pull (katkendjoon). Kui Docker-daemonile antakse käsk docker run käivitada konteiner, kontrollib taustaprogramm, kas vastav konteineripilt on kohalikult kättesaadav. Kui on, siis käivitatakse konteiner (täisjoon). Kui daemon pilti ei leia, algatab ta automaatselt selle allalaadimise hoidlast.
Töö Dockeriga
Nüüd on aeg tutvuda konteinerplatvormi rakendustega. Kui te pole Docker-mootorit veel installinud, saate seda teha Linuxi terminali kaudu. Juhised selle kohta leiate meie artiklist„Docker’i installimine Ubuntu 22.04-le”. Allpool saate teada, kuidas Docker-mootorit terminali kaudu juhtida, mida Docker Hub teie heaks teha saab ja miks Docker-konteinerid võivad teie töötamisviisi rakendustega põhjalikult muuta.
Kuidas juhtida Docker-mootorit
Alates versioonist 16.04 on Ubuntu kasutanud protsesside haldamiseks taustaprogrammi systemd(lühend sõnast „system daemon“).Systemd onalgusprotsess, mida kasutatakse ka teistes Linuxi distributsioonides, nagu RHEL, CentOS või Fedora. Tavaliseltantakse systemd-leprotsessi ID 1. Süsteemi esimese protsessina vastutab see daemon kõigi järgnevate protsesside käivitamise, jälgimise ja lõpetamise eest. Varasemates Ubuntu versioonides (14.10 ja vanemad) täidab seda funktsiooni taustaprogrammupstart.
Docker-daemonit saab juhtida ka systemd kaudu. Standardse installi puhul on konteinerplatvorm seadistatud nii, et daemon käivitub automaatselt süsteemi käivitamisel. Seda vaikimisi seadet saab kohandada käsurea tööriista systemctl abil.
Süsteemi systemctl abil saadad systemd-le käske protsessi juhtimiseks või selle seisundi pärimiseks. Sellise käsu süntaks on järgmine:
systemctl [OPTION] [COMMAND]bashMõned käsud viitavad konkreetsetele ressurssidele (näiteks Docker). Systemd terminoloogias nimetatakse neid üksusteks. Sel juhul koosneb käsk vastavast juhisest ja käsitletava üksuse nimest.
Kui soovid Docker-daemoni automaatset käivitamist aktiveerida (sisse lülitada) või deaktiveerida (välja lülitada), kasuta käsurea tööriista systemctl järgmiste käskudega:
sudo systemctl enable docker
sudo systemctl disable dockerbashKäsurea tööriist systemctl võimaldab teil kontrollida üksuse seisundit:
sudo systemctl status dockerbashKui teie Ubuntu-süsteemis on Docker-mootor aktiivne, peaks terminali väljund nägema välja nagu järgneval pildil:

Kui teie Docker-mootor on hetkel välja lülitatud, kuvatakse staatusena „inactive (dead)“. Sellisel juhul peate konteinerite käivitamiseks Docker-daemoni käsitsi käivitama.

Kui soovid oma Docker-mootorit käsitsi käivitada, peatada või taaskäivitada, kasuta systemd-süsteemis ühte järgmistest käskudest.
Deaktiveeritud daemoni käivitamiseks kasuta systemctl-i koos käskuga start:
sudo systemctl start dockerbashKui soovid Docker-daemoni sulgeda, kasuta selle asemel käsku stop:
sudo systemctl stop dockerbashMootori taaskäivitamine käivitatakse käsuga restart:
sudo systemctl restart dockerbashKuidas kasutada Docker Hubi
Kui Docker Engine on konteinerplatvormi süda, siis on Docker Hub selle avatud lähtekoodiga projekti hing. Just siin koguneb kogukond. Pilvepõhises registris leiavad kasutajad kõik vajaliku, et oma Docker-installatsioonile elu sisse puhuda.
Veebiteenus pakub mitmekesiseid ametlikke tarkvaravarusid, mis sisaldavad üle 100 000 tasuta rakenduse. Kasutajatel on võimalus luua pildiarhiiv ja jagada seda töörühmadega. Lisaks arendusmeeskonna pakutavale professionaalsele tuge leiavad algajad siit ka kontakte kasutajate kogukonnaga. GitHubis on avatud foorum, kus kogukond pakub vastastikust tuge.

Registreerimine Docker Hubis
Docker Hubis registreerumine on tasuta. Kasutajatel on vaja vaid e-posti aadressi ja enda valitud Docker ID-d. See toimib hiljem isikliku repositooriumi nimeruumina ja annab kasutajatele juurdepääsu kõigile Docker teenustele. Praegu hõlmab see pakkumine lisaks Docker Hubile ka Docker Cloudi, Docker Store’i ja valitud beetaprogramme. Samuti võimaldab see kasutada Docker ID-d sisselogimiseks Docker tugikeskusesse, Docker Success portaali ja Docker foorumisse.
Registreerimisprotsess koosneb viiest etapist:
- Vali oma Docker ID: Taotluse esimeses osas vali kasutajanimi, mida kasutatakse hiljem sinu isikliku Docker ID-na.
- Sisesta e-posti aadress: Sisesta oma praegune e-posti aadress. Pane tähele, et pead oma registreerimist Docker Hubis e-posti teel kinnitama.
- Vali parool: Vali salajane parool.
- Esitage registreerimine: klõpsake nuppu „Registreeru”, et esitada registreerimine. Kui andmed on täielikult edastatud, saadab Docker teie määratud postkasti lingi, mille kaudu saate oma e-posti aadressi kinnitada.
- Kinnitage oma e-posti aadress: kinnitage oma e-posti aadress, klõpsates kinnituslingil.
Docker-projekti veebiteenused on pärast registreerimist brauseris kohe kättesaadavad. Siin saate luua hoidlaid ja töörühmi või otsida Docker Hubist avalikke ressursse funktsiooni „Explore“ abil.

Võite registreeruda ka otse oma operatsioonisüsteemi terminalis käsuga *docker login*. Käsu üksikasjalik kirjeldus on toodud Docker’i dokumentatsioonis.
Põhimõtteliselt on Docker Hub kättesaadav ka neile, kellel pole kontot ega Docker ID-d. Sel juhul saab aga laadida alla ainult avalikest hoidlatest pärit kujutisi. Oma kujutiste üleslaadimine (push) ei ole ilma Docker ID-ta võimalik.
Loo hoidlad Docker Hubis
Tasuta Docker Hubi konto sisaldab ühte privaatset hoidlat ja võimaldab luua piiramatu arvu avalikke hoidlaid. Kui vajate rohkem privaatseid hoidlaid, saate need tasulise uuenduse abil avada.
Hoidla loomiseks tegutse järgmiselt:
- Vali nimeruumi: äsja loodud hoidlad määratakse automaatselt sinu Docker-ID nimeruumi. Sul on ka võimalus sisestada selle organisatsiooni ID, mille liige sa oled.
- Märgista hoidla: Sisesta äsja loodud hoidla nimi.
- Lisage kirjeldus: Lisage oma repositooriumile lühikirjeldus.
- Määra nähtavus: otsusta, kas hoidla peaks olema avalikult nähtav (avalik) või kättesaadav ainult sulle või su organisatsioonile (privaatne).
Kinnita oma sisestused, klõpsates nuppu „Loo”.

Loo meeskonnad ja organisatsioonid
Hubi abil pakub Docker pilvepõhist platvormi, kus kasutaja enda loodud kujutisi hallatakse keskelt ja jagatakse mugavalt töörühmadega. Docker’i terminoloogias nimetatakse neid organisatsioonideks. Nii nagu kasutajakontidelgi, saavad organisatsioonid individuaalsed ID-d, mille kaudu kujutisi saab üles laadida ja alla laadida. Organisatsiooni siseseid õigusi ja rolle saab määrata meeskondade kaudu. Näiteks on meeskonnale „Owners” määratud kasutajatel õigus luua privaatseid või avalikud hoidlad ning määrata juurdepääsuõigusi.
Töörühmi saab luua ja hallata ka otse juhtpaneeli kaudu. Lisateavet organisatsioonide ja meeskondade kohta leiate Docker’i dokumentatsioonist.
Töö piltide ja konteineritega
Kuna Docker Hub on ametlike Docker-ressursside peamine kontaktpunkt, on see meie lähtepunktiks käesolevas sissejuhatuses piltide ja konteinerite käsitlemisse. Arendajate meeskond on loonud näidispildi „whalesay“, mis on järgneva Docker-õpetuse aluseks.
Lae alla Docker-pildid
Pildi „whalesay “ leiate, kui külastate Docker Hubi veebisaiti ja sisestate Docker’i logo kõrval asuvasse otsinguribasse sõna „whalesay “.

Klõpsake otsingutulemustes pealkirjaga „docker/whalesay“ ressursil, et avada selle pildi avalik hoidla.
Docker-hoidlad on alati üles ehitatud sama skeemi järgi. Lehe päises leiavad kasutajad pildi pealkirja, hoidla kategooria ja viimase üleslaadimise aja (last pushed).

Iga Docker-hoidla pakub ka järgmisi infokaste:
- Kirjeldus: üksikasjalik kirjeldus, mis sisaldab tavaliselt kasutusjuhiseid
- Docker pull-käsk: käsurea käsk, mida kasutatakse pildi allalaadimiseks hoidlast (
pull) - Omanik: Teave hoidla looja kohta
- Kommentaarid: Kommentaaride osa lehe lõpus
Repositooriumi infokastidest selgub, et „whalesay” on avatud lähtekoodiga Perl-skripti „cowsay” modifikatsioon. Tony Monroe poolt 1999. aastal loodud programm genereerib lehma kujulise ASCII-graafiku, mis kuvatakse koos sõnumiga kasutaja terminalis.
Docker/whalesay allalaadimiseks kasuta käsku docker pull:
docker pull [OPTIONS] NAME [:TAG|@DIGEST]bashKäsk docker pull annab daemonile käsu laadida pilt hoidlast. Pildi nime (NAME) sisestamisega määratakse, millise pildi tegemist on. Samuti on võimalik anda Dockerile juhiseid soovitud käsu täitmise kohta (OPTIONS). Valikuliste sisendite hulka kuuluvad sildid (:TAG) ja individuaalsed identifitseerimisnumbrid (@DIGEST), mis võimaldavad alla laadida pildi konkreetse versiooni.
Docker/whalesay-pildi kohaliku koopia saab järgmise käsuga:
docker pull docker/whalesaybashÜldiselt võid selle sammu vahele jätta. Kui soovid konteinerit käivitada, laadib Docker-daemon automaatselt alla need pildid hoidlast, mida ta kohalikust süsteemist ei leia.
Käivita Docker-pildid konteineritena
Docker-pildi käivitamiseks kasuta käsku docker run:
docker run [OPTIONS] IMAGE [:TAG|@DIGEST] [CMD] [ARG...]bashKäsu docker run ainus kohustuslik osa on soovitud Docker-pildi nimi. Kuid konteinerit käivitades on teil võimalus määrata ka lisaparameetreid, TAG-e ja DIGEST-e. Lisaks saab käsku docker run kombineerida teiste käskudega, mis käivitatakse kohe, kui konteiner tööle hakkab. Sel juhul kirjutatakse üle CMD (COMMAND, mille määrab pildi looja ja mis käivitatakse automaatselt konteineri käivitamisel). Muid valikulisi seadistusi saab määrata täiendavate argumentide (ARG…) abil. See võimaldab näiteks lisada kasutajaid või edastada keskkonnamuutujaid.
Kasuta käsurea käsku
docker run docker/whalesay cowsay boobashet laadida olemasolev Perl-skript alla kujutisena ja käivitada see konteineris. Sa näed, et whalesay erineb oluliselt algsest skriptist.

Kui käivitatakse pilt „docker/whalesay“, kuvab skript ASCII-graafika vaala kujul ning tekstisõnumi „boo“, mis on edastatud terminalis käsuga „cowsay “.
Nagu ka testkäivituse puhul, otsib daemon kõigepealt soovitud kujutist kohalikust failikataloogist. Kuna sama nimega paketti ei leidu, algatatakse allalaadimine Docker-hoidlast. Seejärel käivitab daemon muudetud cowsay-programmi. Kui see on lõpule viidud, suletakse konteiner automaatselt.
Nagu cowsay, pakub ka Docker’i whalesay võimalust sekkuda programmi käiku, et mõjutada terminalis kuvatavat teksti. Proovi seda funktsiooni, asendades väljundkäskus sõna „boo“ mõne muu stringiga või näiteks mõne halva vaalavitsaga.
sudo docker run docker/whalesay cowsay What did the shark say to the whale? What are you blubbering about?bash
Kuva kõik kohalikus süsteemis olevad Docker-pildid
Kui te ei ole kindel, kas olete konkreetse pildi juba alla laadinud, saate vaadata ülevaadet kõigist teie kohalikus süsteemis olevatest piltidest. Kasutage järgmist käsurea käsku:
sudo docker imagebashKäsk docker images (või docker image ls) kuvab kõik kohalikud pildid, sealhulgas faili suuruse, sildid ja pildi ID.

Kui käivitad konteineri, laaditakse selle aluseks olev pilt allikast alla koopia ja salvestatakse püsivalt sinu arvutisse. See säästab aega, kui soovid pilti hiljem uuesti kasutada. Uus allalaadimine algatatakse ainult siis, kui pildi allikas muutub, näiteks kui allikas on saadaval uus versioon.
Kuva kõik kohalikus süsteemis olevad konteinerid
Kui soovid kuvada ülevaate kõigist süsteemis käimasolevatest või varem käivitatud konteineritest, kasuta käsurea käsku docker ps koos valikuga --all (lühend: -a):
sudo docker ps -abash
Terminali väljund sisaldab sellist teavet nagu vastava konteineri ID, aluseks olev pilt, konteineri käivitamisel käivitatud käsk, konteineri käivitamise aeg ja staatus.
Kui soovid näha ainult neid konteinerid, mis hetkel sinu süsteemis töötavad, kasuta käsurea käsku docker ps ilma muude valikuteta:
sudo docker psbashPraegu ei tohiks teie süsteemis siiski ühtegi töötavat konteinerit olla.
Docker-piltide loomine
Meie Docker-õpetus on küll näidanud, kuidas leida pilte Docker Hubist, neid alla laadida ja käivitada igas süsteemis, kuhu on paigaldatud Docker-mootor. Kuid Dockeriga ei saa te mitte ainult kasutada registris olevat laia valikut rakendusi. Platvorm pakub ka mitmesuguseid võimalusi oma piltide loomiseks ja nende jagamiseks teiste arendajatega.
Selle Docker-õpetuse sissejuhatavates peatükkides õppisid sa juba, et iga Docker-pilt põhineb Dockerfile’il. Dockerfile’i võib kujutada kui piltide koostamise mallina. Need on lihtsad tekstifailid, mis sisaldavad kõiki juhiseid, mida Docker vajab pildi loomiseks. Järgmistes sammudes õpid, kuidas sellist Dockerfile’i kirjutada ja kuidas anda Dockerile juhis seda oma pildi alusena kasutada.
- Uue kataloogi loomine: Docker arendajate meeskond soovitab iga Dockerfile’i jaoks luua uue kataloogi. Linuxis saab katalooge terminalis hõlpsasti luua. Kasuta järgmist käsurea käsku, et luua kataloog nimega mydockerbuild:
mkdir mydockerbuildbash
- Liikumine uues kataloogis: Kasutage käsku
cd, et liikuda äsja loodud töökataloogis.
cd mydockerbuildbash
- Uue tekstifaili loomine: Ubuntu keskkonnas saad tekstifaile hõlpsasti luua ka terminali kaudu. Selleks kasuta mõnda tekstiredaktorit, näiteks Nano või Vim. Loo kataloogis mydockerbuild tekstifail nimega Dockerfile.
nano Dockerfilebash
- Dockerfile’i kirjutamine: äsja loodud tekstifail on teie enda loodud pildi koostamise juhis. Selle asemel, et pilt täiesti nullist programmeerida, kasutame selles Docker-õpetuses mallina näidispilti docker/whalesay. See integreeritakse Dockerfile’is käsuga FROM. Kasutage sildit :latest, et viidata pildi uusimale versioonile.
FROM docker/whalesay:latestSeni on docker/whalesay töötanud nii, et kasutaja sisestab ise sõnad. Terminalis kuvatakse täpselt see tekst, mille sisestasid, koos konteineri käivitamise käsuga. Kuid oleks huvitavam, kui skript genereeriks automaatselt uut väljundteksti. Seda saab teha näiteks iga Linuxi süsteemis olemasoleva fortunes-programmi abil. Fortunes’i põhiline funktsioon on genereerida õnneküpsiste ütlemisi ja humoorikaid aforisme. Kasutage järgmist käsku, et uuendada oma praegust kohalikku pakettide indeksit ja installida fortunes:
RUN apt-get -y update && apt-get install -y fortunesSeejärel määratle CMD-käsk. See käivitatakse pärast RUN-käsku, kui seda pole käsuga (docker run image CMD) ümber kirjutatud. Kasuta järgmist käsku, et käivitada programm fortunes koos valikuga -a („Vali kõikidest andmebaasidest”) ja kuvada väljund terminalis programmi cowsay abil:
CMD /usr/games/fortune -a | cowsayTeie Dockerfile peaks välja nägema järgmine:
FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsayMärkus: Dockerfile’is olevad käsud on alati ühe reavahega ja algavad alati märksõnaga. Süntaks ei erista suurtähti ja väiketähti, seega ei ole oluline, kas kirjutad suurtähti või väiketähti. Märksõnade puhul on siiski kehtestatud ühtne suur- ja väiketähe kasutamine.

- Salvesta tekstifail: Salvesta oma sisestus. Kui kasutad Nano-redaktorit, salvesta klahvikombinatsiooniga [CTRL] + [O] ja kinnita klahviga [ENTER]. Nano kuvab teate, et valitud faili on kirjutatud kolm rida. Sulge tekstiredaktor klahvikombinatsiooniga [CTRL] + [X].
- Loo pilt Dockerfile’ina: et luua pilt Dockerfile’ist, mine esmalt kataloogi, kus tekstifail asub. Alusta pildi loomist käsurea käsklusega
docker build. Kui soovid pildile individuaalse nime anda või sellele sildi lisada, kasuta valikut-t, millele järgneb soovitud nime ja sildi kombinatsioon. Standardvorming onname:tag.
Käesolevas näites tuleks luua pilt nimega docker-whale:
docker build -t docker-whale .bashViimane osa näitab, et vastav Dockerfile asub valitud kataloogis. Sul on ka võimalus määrata allikafailide jaoks failitee või URL-aadress.
Kompileerimisprotsess algab kohe, kui käsk on kinnitatud klahviga [ENTER]. Esmalt kontrollib Docker-daemon, kas tal on olemas kõik pildi loomiseks vajalikud failid. Docker-terminoloogias nimetatakse seda kokkuvõtlikult „kontekstiks”.
Siis asub Docker/whalesay -pilt sildiga :latest järgmises asukohas :
Kui pildi loomiseks vajalik kontekst on juba täielikult olemas, käivitab Docker-daemon FROM-käskuga lisatud pildimalli ajutises konteineris ja liigub edasi järgmise käsuni Dockerfile’is. Käesolevas näites on see RUN-käsk, mis käivitab programmi fortunes installimise.
Iga pildi loomise etapi lõpus annab Docker sulle selle etapis loodud vastava kihi ID. See tähendab, et iga aluseks oleva Dockerfile’i rida vastab sellel põhineva pildi ühele kihile.
Kui käsk RUN on lõpetatud, peatab Docker-daemon selle jaoks loodud konteineri, eemaldab selle ja käivitab uue ajutise konteineri CMD-käsu kihi jaoks. Loomisprotsessi lõpus lõpetatakse ka see ajutine konteiner ja eemaldatakse. Docker annab sulle uue pildi ID:
Successfully built a8f2048c9ab8
Teie äsja loodud pilt on teie kohalikult salvestatud piltide ülevaates leitav nime docker-whale all.
sudo docker imagesbash
Et käivitada konteiner äsja loodud pildi põhjal, kasuta käsurea käsku sudo docker run koos pildi nimega:
sudo docker run docker-whalebashKui pilt loodi Dockerfile’i abil õigesti, peaks su vaal sind nüüd enam-vähem tarkade sõnadega inspireerima. Märkus: iga kord, kui sa konteinerit uuesti käivitad, genereeritakse uus lause.

Märgista Docker-pildid ja lae need Docker Hubi üles
Kui soovid oma kohandatud docker-whale-pildi hubisse üles laadida ja teha selle kättesaadavaks kas kogukonnale või töörühmale, pead selle kõigepealt siduma sama nimega hoidlast oma isiklikus nimeruumis. Docker-terminoloogias nimetatakse seda sammu märgistamiseks.
Pildi avaldamiseks Docker Hubis tegutse järgmiselt:
- Loo hoidla: logi Docker Hubisse sisse oma Docker ID ja isikliku parooliga ning loo avalik hoidla nimega docker-whale.

- Määra pildi ID: Määra oma kohandatud pildi „docker-whale” ID käsurea käsu
docker imagesabil.

Meie puhul on pildi ID a8f2048c9ab8. Seda on vaja järgmises etapis märgistamiseks.
- Pildi märgistamine: Märgista docker-whale-pilt käsureaprogrammi
docker tagabil järgmiselt:
sudo docker tag [Image-ID][Docker-ID]/[Image-Name]:[TAG]bashKäesoleva näite puhul on märgistamise käsurea käsk järgmine:
sudo docker tag a8f2048c9ab8 [Namespace]/docker-whale:latestbashSaad kontrollida, kas oled oma pildi õigesti märgistanud, kasutades ülevaadet docker images. Repositooriumi nimi peaks nüüd sisaldama sinu Docker-ID-d.

- Pildi üleslaadimine: Pildi üleslaadimiseks peate esmalt sisse logima Docker Hubi. Seda saab teha käsuga
docker login.
sudo docker loginbashSeejärel palub terminal teil sisestada oma kasutajanimi (Docker ID) ja parool.

Kui sisselogimine õnnestus, kasuta käsurea käsku docker push, et laadida oma pilt üles äsja loodud hoidlasse.
sudo docker push [Namespace]/docker-whalebashÜleslaadimine peaks võtma vaid paar sekundit. Praegune staatus kuvatakse terminalis.

Logi brauseri kaudu Docker Hubisse sisse, et vaadata üleslaaditud pilti.
![Docker hub: The repository [Namespace]/docker-whale in the detailed view Image: Docker hub: The repository [Namespace]/docker-whale in the detailed view](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/5/e/csm_docker-hub-push-result_56530d8ebc.webp)
Kui soovid üles laadida rohkem kui ühe pildi ühe hoidla kohta, kasuta erinevaid sildid, et pakkuda oma pilte erinevates versioonides. Näiteks:
[Namespace]/docker-whale:latest
[Namespace]/docker-whale:version1
[Namespace]/docker-whale:version2Ülevaade erinevatest pildiversioonidest on leitav Docker Hubi hoidlas vahekaardil „Tags”.

Erinevate projektide pildid tuleks siiski pakkuda eraldi hoidlatena.
Kui üleslaadimine õnnestus, on teie kohandatud pilt nüüd avalikus hoidlas kättesaadav kõigile Docker-kasutajatele üle kogu maailma.
- Proovikäivitus: Kontrollige, kas faili üleslaadimine õnnestus, proovides pilti alla laadida.
Pange tähele, et sama sildiga uue koopia allalaadimiseks tuleb kõigepealt kustutada pildi kohalik versioon. Vastasel juhul teatab Docker, et soovitud pilt on praeguses versioonis juba olemas.

Kohaliku Docker-pildi kustutamiseks kasuta käsurea käsku docker rmi koos vastava pildi ID-ga. See määratakse kindlaks tavapärasel viisil docker images abil. Kui Docker teatab konfliktist, näiteks seetõttu, et pildi ID-d kasutatakse mitmes hoidlas või on see kasutusel mõnes konteineris, korda käsk koos valikuga --force (lühendatult*-f* ), et kustutamine jõustada.
sudo docker rmi -f a8f2048c9ab8bash
Kuva uuesti ülevaade kõigist kohalikest piltidest:
sudo docker ImagesbashKustutatud elemendid ei tohiks enam terminali väljundis ilmuda. Lae nüüd repositooriumis olevat pull-käsku kasutades Docker Hubist alla pildi uus koopia.
sudo docker pull [Namespace]/docker-whalebash
Muud Dockeriga seotud teemad ja õpetused
Dockeri maailm on lai ning aja jooksul on Docker-tööriistadest kujunenud elav ökosüsteem. Docker on eriti kasulik süsteemiadministraatoritele, eriti kui nad haldavad keerukaid rakendusi, kus mitu konteinerit töötab paralleelselt erinevates süsteemides. Docker pakub mitmesuguseid funktsioone selliste klastrite koordineerimiseks. Lisateavet selle kohta leiate meie artiklist, mis käsitleb Docker-i koordineerimist Swarmi ja Compose’i abil.
Digitaalses juhendis on Dockeriga töötamiseks veel lisajuhendid:
- Docker-hoidla seadistamine
- Docker-konteinerite mahud
- Docker: varundamine ja taastamine
- Dockeri installimine ja käivitamine Linuxi serveris
- Docker Compose’i juhend
Docker sobib mitmesugusteks kasutusjuhtudeks. Digitaalsest juhendist leiate järgmised õpetused:
- WordPressi kasutuselevõtt Docker-konteinerites
- VPN-i käivitamine Docker-konteineris SoftEtheri abil
- Nextcloudi installimine Dockeriga
- Portaineri installimine Dockerisse
- Redis Docker-konteinerites
- Valheim Docker-server
Docker ei ole alati parim valik iga rakenduse jaoks. Ühes meie artiklis tutvustatakse populaarsemaid Dockerile alternatiive. Lisaks on meil palju artikleid, milles võrreldakse Dockeri teiste platvormidega:
- Kubernetes vs. Docker
- Openshift vs. Docker
- Podman vs. Docker