Docker pamācība iesācējiem
Mūsu Docker apmācībā iepazīstinām jūs ar Docker virtualizācijas platformu un parādīsim, kā izmantot Docker jūsu Ubuntu 22.04 sistēmā, izmantojot viegli izpildāmus norādījumus.
Docker struktūra un funkcijas
„Izveido, izplati un palaidi jebkuru lietotni jebkurā vietā“ – tāds ir Docker devīze. Šī atvērtā koda konteineru platforma piedāvā elastīgu un resursu ziņā ekonomisku alternatīvu aparatūras komponentu emulācijai, kas balstās uz virtuālajām mašīnām (VM).
Lai gan tradicionālā aparatūras virtualizācija balstās uz vairāku viesu sistēmu palaišanu vienā kopējā uzņēmējā sistēmā, Docker lietojumprogrammas tiek izpildītas kā izolēti procesi tajā pašā sistēmā, izmantojot konteinerus. To sauc par konteineru virtualizāciju, ko dēvē arī par operētājsistēmas līmeņa virtualizāciju.

Viena no galvenajām konteineru virtualizācijas priekšrocībām ir tā, ka lietojumprogrammas ar atšķirīgām prasībām var darboties savstarpēji izolēti, neizmantojot atsevišķas viesu sistēmas, kas rada papildu slodzi. Turklāt, izmantojot konteinerus, lietojumprogrammas var ieviest dažādās platformās un infrastruktūrās, bez nepieciešamības pielāgoties uzņēmēj sistēmas aparatūras vai programmatūras konfigurācijām.
Docker ir populārākais programmatūras projekts, kas lietotājiem piedāvā uz konteineriem balstītu virtualizācijas tehnoloģiju. Šī atvērtā koda platforma balstās uz trim pamatelementiem. Lai palaistu konteinerus, lietotājiem nepieciešams tikai Docker dzinējs, kā arī speciāli Docker attēli, kurus var lejupielādēt no Docker Hub vai izveidot pašiem.
Docker attēli
Līdzīgi kā virtuālās mašīnas, arī Docker konteineri balstās uz Docker attēliem. Attēls ir tikai lasāms šablons, kas satur visas instrukcijas, kas Docker dzinējam nepieciešamas, lai izveidotu konteineru. Docker attēlu apraksta kā pārnesamu konteinera attēlu teksta faila formā, ko sauc arī par Dockerfile. Ja sistēmā ir jāpalaiž konteiners, vispirms tiek ielādēts pakotne ar attiecīgo attēlu, ja vien tā vēl nav pieejama lokāli. Ielādētais attēls nodrošina nepieciešamo failu sistēmu, ieskaitot visus parametrus darbības laikā. Konteineru var uzskatīt par attēla darbojošos procesu.
Docker Hub
Docker Hub ir mākonī bāzēts reģistrs programmatūras krājumiem — sava veida bibliotēka Docker attēliem. Šis tiešsaistes pakalpojums ir sadalīts publiskajā un privātajā sadaļā. Publiskajā sadaļā lietotājiem ir iespēja augšupielādēt pašu izstrādātos attēlus un dalīties ar tiem kopienā. Šeit ir pieejami daudzi oficiāli attēli, ko piedāvā Docker izstrādātāju komanda un atzīti atvērtā koda projekti. Attēli, kas augšupielādēti reģistra privātajā sadaļā, nav publiski pieejami, tāpēc tos var dalīties, piemēram, uzņēmuma iekšējā lokā vai ar draugiem un paziņām. Docker Hub ir pieejams vietnē hub.docker.com.
Docker dzinējs
Docker projekta pamatā ir Docker dzinējs. Tas ir atvērtā koda klientu-servera lietojumprogramma, kuras pašreizējā versija ir pieejama visiem lietotājiem visās izplatītākajās platformās.
Docker dzinēja pamatarhitektūra sastāv no trim komponentiem: dēmonu ar servera funkcijām, programmēšanas saskarnes (API), kas balstās uz REST (Representational State Transfer) programmēšanas paradigmu, un operētājsistēmas termināla (komandrindas saskarnes, CLI) kā lietotāja saskarnes (klienta).
- Docker dēmons: Kā Docker dzinēja serveris tiek izmantots dēmonu process. Docker dēmons darbojas uzņēmēj sistēmas fonā un tiek izmantots Docker dzinēja centrālajai vadībai. Šī funkcija izveido un pārvalda visus attēlus, konteinerus vai tīklus.
- REST-API: REST-API nosaka interfeisu kopumu, kas ļauj citām programmām sazināties ar Docker dēmonu un dot tam norādījumus. Viena no šīm programmām ir operētājsistēmas termināls.
- Termināls: Kā klienta programmu Docker izmanto operētājsistēmas terminālu. Tas, integrēts ar Docker dēmonu caur REST-API, ļauj lietotājiem to kontrolēt ar skriptu vai lietotāja ievadi.
2017. gadā Docker dzinējs tika pārdēvēts par Docker Community Edition (saīsinājumā Docker CE), taču oficiālajā dokumentācijā un Docker repozitorijos galvenokārt joprojām tiek lietots vecais nosaukums. Papildus Docker CE pastāv arī Docker Enterprise Edition (Docker EE), kam ir dažas papildu funkcijas. Tomēr tas nav bezmaksas un ir vairāk piemērots uzņēmumiem.
Izmantojot Docker komandas, lietotāja programmatūras konteinerus var palaist, apturēt un pārvaldīt tieši no termināļa. Ar dēmonu sazinās, izmantojot komandu docker un tādas instrukcijas kā build, pull vai run. Klients un serveris var atrasties vienā sistēmā. Lietotājiem ir arī iespēja piekļūt Docker dēmonam citā sistēmā. Atkarībā no izveidotā savienojuma veida saziņa starp klientu un serveri notiek, izmantojot REST-API, UNIX soketus vai tīkla interfeisu.
Šajā attēlā ir parādīta atsevišķo Docker komponentu mijiedarbība, izmantojot paraugkomandas docker build, docker pull un docker run:

Komanda docker build dod norādījumu Docker dēmonam izveidot attēlu (punktu līnija). Tam ir nepieciešams atbilstošs Dockerfile fails. Ja attēlu nevēlas izveidot, bet gan lejupielādēt no repozitorija Docker Hub, tad tiek izmantota komanda docker pull (pārtraukta līnija). Ja Docker dēmonam ar docker run tiek dots rīkojums palaist konteineru, fona programma pārbauda, vai atbilstošais konteinera attēls ir pieejams lokāli. Ja ir, tad konteiners tiek palaists (nepārtraukta līnija). Ja dēmons nevar atrast attēlu, tas automātiski uzsāk lejupielādi no repozitorija.
Darbs ar Docker
Tagad ir pienācis laiks iepazīties ar konteineru platformas lietojumprogrammām. Ja vēl neesat instalējis Docker dzinēju, to var izdarīt, izmantojot Linux termināli. Norādījumus par to, kā to izdarīt, varat atrast mūsu rakstā„Docker instalēšana Ubuntu 22.04”. Turpinājumā uzziniet, kā vadīt Docker dzinēju no termināļa, ko Docker Hub var jums piedāvāt un kāpēc Docker konteineri var radikāli mainīt jūsu darbu ar lietojumprogrammām.
Kā pārvaldīt Docker dzinēju
Sākot ar versiju 16.04, Ubuntu procesu pārvaldībai izmanto fona programmu systemd(saīsinājums no „system daemon“).Systemd irsākuma process, ko izmanto arī citās Linux distribūcijās, piemēram, RHEL, CentOS vai Fedora. Parastisystemd tiek piešķirtsprocesa ID 1. Kā sistēmas pirmais process, šis dēmons ir atbildīgs par visu pārējo procesu sākšanu, uzraudzību un pārtraukšanu. Iepriekšējās Ubuntu versijās (14.10 un vecākās) šo funkciju pilda fonaprogramma upstart.
Docker dēmonu var vadīt arī ar systemd palīdzību. Standarta instalācijā konteineru platforma ir konfigurēta tā, ka dēmons automātiski palaižas sistēmas uzsākšanas brīdī. Šo noklusējuma iestatījumu var pielāgot, izmantojot komandrindas rīku systemctl.
Izmantojot *systemctl*, jūs nosūtāt komandas *systemd*, lai vadītu procesu vai noskaidrotu tā statusu. Šādas komandas sintakse ir šāda:
systemctl [OPTION] [COMMAND]bashDažas komandas attiecas uz konkrētiem resursiem (piemēram, Docker). Systemd terminoloģijā tos sauc par vienībām. Šajā gadījumā komanda sastāv no attiecīgās instrukcijas un adresējamās vienības nosaukuma.
Ja vēlaties aktivizēt (ieslēgt) vai deaktivizēt (izslēgt) Docker dēmonu automātisko palaišanu, izmantojiet komandrindas rīku systemctl ar šādām komandām:
sudo systemctl enable docker
sudo systemctl disable dockerbashKomandrindas rīks systemctl ļauj noskaidrot vienības statusu:
sudo systemctl status dockerbashJa jūsu Ubuntu sistēmā darbojas Docker dzinējs, termināla izvadei vajadzētu izskatīties tā, kā redzams šajā ekrānuzņēmumā:

Ja jūsu Docker dzinējs pašlaik ir atspējots, jūs saņemsiet statusa paziņojumu „inactive (dead)“. Šādā gadījumā, lai palaistu konteinerus, jums ir manuāli jāuzsāk Docker dēmons.

Ja vēlaties manuāli palaist, apturēt vai pārstartēt Docker dzinēju, izmantojiet vienu no šīm komandām, kas paredzētas sistēmai systemd.
Lai palaistu deaktivizēto dēmonu, izmantojiet komandu systemctl kopā ar komandu start:
sudo systemctl start dockerbashJa ir jāizbeidz Docker dēmonu darbība, izmantojiet komandu stop:
sudo systemctl stop dockerbashDzinēja atkārtota iedarbināšana tiek pieprasīta ar komandu restart:
sudo systemctl restart dockerbashKā lietot Docker Hub
Ja Docker dzinējs ir konteineru platformas sirds, tad Docker Hub ir šī atvērtā koda projekta dvēsele. Tieši šeit pulcējas kopiena. Šajā mākonī bāzētajā reģistrā lietotāji var atrast visu nepieciešamo, lai piešķirtu dzīvību savai Docker instalācijai.
Šis tiešsaistes pakalpojums piedāvā dažādus oficiālos repozitorijus ar vairāk nekā 100 000 bezmaksas lietotnēm. Lietotājiem ir iespēja izveidot attēlu arhīvu un kopīgi izmantot to darba grupās. Papildus profesionālajam atbalstam , ko sniedz izstrādes komanda, iesācēji šeit var atrast saites uz lietotāju kopienu. GitHub vietnē ir pieejams forums kopienas atbalstam.

Reģistrēšanās Docker Hub vietnē
Reģistrācija Docker Hub vietnē ir bezmaksas. Lietotājiem nepieciešama tikai e-pasta adrese un izvēlētais Docker ID. Tas vēlāk kalpo kā personīgais repozitorija vārdu telpa un nodrošina lietotājiem piekļuvi visiem Docker pakalpojumiem. Pašlaik šis piedāvājums papildus Docker hub ietver Docker cloud, Docker store un atsevišķas beta programmas. Tas ļauj Docker ID izmantot arī kā pieteikšanās datus Docker atbalsta centram, kā arī Docker panākumu portālam un Docker forumam.
Reģistrācijas process sastāv no pieciem posmiem:
- Izvēlieties savu Docker ID: Pieteikšanās sākumā izvēlieties lietotājvārdu, kas vēlāk tiks izmantots kā jūsu personīgais Docker ID.
- Ievadiet e-pasta adresi: Ievadiet savu pašreizējo e-pasta adresi. Ņemiet vērā, ka jums būs jāapstiprina reģistrācija Docker Hub vietnē, izmantojot e-pastu.
- Izvēlieties paroli: Izvēlieties slepenu paroli.
- Iesniedziet reģistrāciju: Noklikšķiniet uz „Reģistrēties”, lai iesniegtu reģistrāciju. Kad dati būs pilnībā nosūtīti, Docker nosūtīs saiti uz jūsu norādīto e-pasta pastkasti, lai jūs varētu apstiprināt savu e-pasta adresi.
- Apstipriniet savu e-pasta adresi: Apstipriniet savu e-pasta adresi, noklikšķinot uz apstiprinājuma saites.
Pēc reģistrācijas pārlūkprogrammā Docker projekta tiešsaistes pakalpojumi ir pieejami uzreiz. Šeit varat izveidot repozitorijus un darba grupas vai izmantot funkciju „Explore”, lai meklētu publiskos resursus Docker Hub vietnē.

Varat reģistrēties arī tieši operētājsistēmas terminālī, izmantojot komandu docker login. Sīkāks komandas apraksts ir atrodams Docker dokumentācijā.
Principā Docker Hub ir pieejams arī lietotājiem, kuriem nav konta vai Docker ID. Tomēr šādā gadījumā var lejupielādēt tikai attēlus no publiskajiem repozitorijiem. Savu attēlu augšupielāde (push) bez Docker ID nav iespējama.
Izveidojiet repozitorijus Docker Hub
Bezmaksas „Docker Hub“ kontā ir iekļauts viens privāts repozitorijs, kā arī ir iespējams izveidot neierobežotu skaitu publisku repozitoriju. Ja jums ir nepieciešams lielāks privāto repozitoriju skaits, tos var atbloķēt, veicot maksas pakalpojuma uzlabojumu.
Lai izveidotu repozitoriju, rīkojieties šādi:
- Izvēlieties vārdu telpu: Jaunizveidotie repozitoriji tiek automātiski pievienoti jūsu Docker ID vārdu telpai. Jums ir arī iespēja ievadīt tās organizācijas ID, kuras loceklis esat.
- Nosauciet repozitoriju: Ievadiet nosaukumu jaunizveidotajam repozitorijam.
- Pievienojiet aprakstu: pievienojiet īsu aprakstu savam repozitorijam.
- Iestatiet redzamību: izlemiet, vai repozitorijs būs publiski redzams (public) vai pieejams tikai jums vai jūsu organizācijai (private).
Apstipriniet savus ierakstus, noklikšķinot uz „Izveidot“.

Izveidojiet komandas un organizācijas
Izmantojot šo platformu, Docker piedāvā mākonī bāzētu vidi, kurā pašizveidotos attēlus var centralizēti pārvaldīt un ērti koplietot ar darba grupām. Docker terminoloģijā tās sauc par organizācijām. Tāpat kā lietotāju kontiem, arī organizācijām tiek piešķirti individuāli identifikatori, ar kuru palīdzību var augšupielādēt un lejupielādēt attēlus. Tiesības un lomas organizācijā var piešķirt, izmantojot komandas. Piemēram, lietotājiem, kas pieder pie komandas „Owners”, ir tiesības izveidot privātus vai publiskus repozitorijus un piešķirt piekļuves tiesības.
Darba grupas var izveidot un pārvaldīt arī tieši caur vadības paneli. Papildu informācija par organizācijām un komandām ir pieejama Docker dokumentācijā.
Darbs ar attēliem un konteineriem
Kā galvenais oficiālo Docker resursu avots, Docker Hub ir mūsu sākumpunkts šajā ievadā par attēlu un konteineru apstrādi. Izstrādātāju komanda ir nodrošinājusi demonstrācijas attēlu „whalesay“, kas kalpos par pamatu turpmākajai Docker apmācībai.
Lejupielādēt Docker attēlus
Attēlu „whalesay“ var atrast, apmeklējot vietni „Docker Hub“ un ievadot vārdu „whalesay“ meklēšanas joslā blakus „Docker“ logotipam.

Meklēšanas rezultātos noklikšķiniet uz resursa ar nosaukumu „docker/whalesay“, lai atvērtu šī attēla publisko repozitoriju.
Docker repozitoriji vienmēr ir veidoti pēc viena un tā paša parauga. Lapas galvenajā daļā lietotāji redz attēla nosaukumu, repozitorija kategoriju un pēdējās augšupielādes laiku (pēdējā reize, kad attēls tika pievienots).

Katrā Docker repozitorijā ir pieejami arī šādi informācijas logi:
- Apraksts: Detalizēts apraksts, kurā parasti iekļautas lietošanas instrukcijas
- Docker pull komanda: Komandrindas direktīva, ko izmanto, lai lejupielādētu attēlu no repozitorija (
pull) - Īpašnieks: Informācija par repozitorija izveidotāju
- Komentāri: Komentāru sadaļa lapas beigās
Repozitorija informācijas laukos redzams, ka „whalesay“ ir atvērtā koda Perl skripta „cowsay“ modifikācija. Šī programma, ko 1999. gadā izstrādāja Tonijs Monro, ģenerē ASCII grafiku govs formā, kas kopā ar ziņojumu parādās lietotāja terminālī.
Lai lejupielādētu docker/whalesay, izmantojiet komandu docker pull:
docker pull [OPTIONS] NAME [:TAG|@DIGEST]bashKomanda docker pull liek dēmonam ielādēt attēlu no repozitorija. Attēla nosaukumu (NAME) norādot, jūs precizējat, par kuru attēlu ir runa. Jūs varat arī norādīt Docker, kā jāizpilda vēlamā komanda (OPTIONS). Papildu informācija ietver tagus (:TAG) un individuālos identifikācijas numurus (@DIGEST), kas ļauj lejupielādēt konkrētu attēla versiju.
Docker/whalesay attēla vietējo kopiju var iegūt, izmantojot šādu komandu:
docker pull docker/whalesaybashVispār šo soli var izlaist. Ja vēlaties palaist konteineru, Docker dēmons automātiski lejupielādē attēlus no repozitorija, kurus tas nevar atrast vietējā sistēmā.
Palaižiet Docker attēlus kā konteinerus
Lai palaistu Docker attēlu, izmantojiet komandu docker run:
docker run [OPTIONS] IMAGE [:TAG|@DIGEST] [CMD] [ARG...]bashVienīgā obligātā daļa komandā docker run ir vēlamā Docker attēla nosaukums. Taču, palaižot konteineru, ir iespēja definēt arī papildu opcijas, TAG un DIGEST. Turklāt komandu docker run var apvienot ar citām komandām, kuras tiek izpildītas, tiklīdz konteiners tiek palaists. Šajā gadījumā CMD (COMMAND, ko definē attēla izveidotājs un kas tiek izpildīts automātiski, kad tiek palaists konteiners) tiek pārrakstīts. Citas papildu konfigurācijas var definēt, izmantojot papildu argumentus (ARG…). Tas ļauj, piemēram, pievienot lietotājus vai pārnest vides mainīgos.
Izmantojiet komandrindas direktīvu
docker run docker/whalesay cowsay boobashlai lejupielādētu esošo Perl skriptu kā attēlu un palaistu to konteinerā. Jūs redzēsiet, ka „whalesay“ ievērojami atšķiras no sākotnējā skripta.

Ja tiek palaists attēls „docker/whalesay“, skripts izvada ASCII grafiku vaļa formā, kā arī teksta ziņojumu „boo“, kas tiek nodots ar komandu „cowsay“ terminālī.
Tāpat kā izmēģinājuma režīmā, dēmons vispirms meklē vajadzīgo attēlu vietējā failu direktorijā. Tā kā nav paketes ar tādu pašu nosaukumu, tiek uzsākta lejupielāde no Docker repozitorija. Pēc tam dēmons palaista modificēto „cowsay“ programmu. Ja tā ir veiksmīgi izpildīta, konteiners tiek automātiski pārtraukts.
Tāpat kā „cowsay“, arī Docker rīks „whalesay“ piedāvā iespēju iejaukties programmas darbības secībā, lai ietekmētu terminālī parādīto tekstu. Izmēģiniet šo funkciju, aizstājot komandas izvades tekstā vārdu „boo“ ar jebkuru teksta virkni vai, piemēram, ar kādu neveiklu joku par vaļiem.
sudo docker run docker/whalesay cowsay What did the shark say to the whale? What are you blubbering about?bash
Parādīt visus Docker attēlus vietējā sistēmā
Ja neesat pārliecināts, vai konkrēto attēlu jau esat lejupielādējis, varat apskatīt pārskatu par visiem attēliem savā lokālajā sistēmā. Izmantojiet šādu komandrindas komandu:
sudo docker imagebashKomanda docker images (vai docker image ls) parāda visus vietējos attēlus, norādot to izmēru, atslēgvārdu un attēla identifikatoru.

Ja palaidāt konteineru, tā pamatattēls tiek lejupielādēts kā kopija no repozitorija un pastāvīgi saglabāts jūsu datorā. Tas ļauj ietaupīt laiku, ja vēlaties piekļūt attēlam vēlāk. Jauna lejupielāde tiek uzsākta tikai tad, ja mainās attēla avots, piemēram, ja repozitorijā ir pieejama jaunāka versija.
Rādīt visus konteinerus vietējā sistēmā
Ja vēlaties parādīt pārskatu par visiem konteineriem, kas pašlaik darbojas jūsu sistēmā vai ir darbojušies agrāk, izmantojiet komandrindas direktīvu docker ps kopā ar opciju --all (saīsinājumā: -a):
sudo docker ps -abash
Termināļa izvades dati ietver tādu informāciju kā attiecīgā konteinera ID, pamatattēls, komanda, kas tika izpildīta konteinera palaišanas brīdī, konteinera palaišanas laiks un statuss.
Ja vēlaties parādīt tikai tos konteinerus, kas pašlaik darbojas jūsu sistēmā, izmantojiet komandrindas komandu docker ps bez jebkādām citām opcijām:
sudo docker psbashTomēr pašlaik jūsu sistēmā nevajadzētu būt nevienam darbojošam konteineram.
Izveidot Docker attēlus
Mūsu Docker apmācībā jau tika parādīts, kā atrast attēlus Docker Hub vietnē, tos lejupielādēt un palaist jebkurā sistēmā, kurā ir instalēts Docker dzinējs. Taču, izmantojot Docker, jums būs pieejams ne tikai reģistrā esošais plašais lietotņu klāsts. Platforma piedāvā arī daudzveidīgas iespējas, kā izveidot savus attēlus un dalīties ar tiem ar citiem izstrādātājiem.
Šīs Docker apmācības ievadnodaļās jūs jau uzzinājāt, ka katrs Docker attēls balstās uz Dockerfile. Dockerfile var uzskatīt par sava veida attēlu izveides veidni. Tie ir vienkārši teksta faili, kuros ir iekļautas visas instrukcijas, kas Docker nepieciešamas attēla izveidei. Turpmākajos soļos jūs iemācīsieties, kā uzrakstīt šāda veida Dockerfile un norādīt Docker, lai tas to izmantotu kā pamatu jūsu paša attēla izveidei.
- Izveidot jaunu direktoriju: Docker izstrādātāju komanda iesaka katram Dockerfile failam izveidot jaunu direktoriju. Linux vidē direktorijas var viegli izveidot terminālī. Lai izveidotu direktoriju ar nosaukumu mydockerbuild, izmantojiet šādu komandu:
mkdir mydockerbuildbash
- Pārvietojieties jaunajā direktorijā: izmantojiet komandu
cd, lai pārvietotos jaunizveidotajā darba direktorijā.
cd mydockerbuildbash
- Izveidojiet jaunu teksta failu: Ubuntu vidē teksta failus var viegli izveidot arī, izmantojot termināli. Lai to izdarītu, izmantojiet tādu teksta redaktoru kā Nano vai Vim. Izveidojiet teksta failu ar nosaukumu Dockerfile direktorijā mydockerbuild.
nano Dockerfilebash
- Izveidojiet Dockerfile: Jaunizveidotais teksta fails kalpo kā izstrādes plāns jūsu pašizveidotajam attēlam. Tā vietā, lai attēlu programmētu no nulles, šajā Docker apmācībā kā paraugu izmantosim demonstrācijas attēlu docker/whalesay. To iekļauj, izmantojot komandu FROM jūsu Dockerfile failā. Lai norādītu uz attēla jaunāko versiju, izmantojiet tagu :latest.
FROM docker/whalesay:latestLīdz šim programma „docker/whalesay“ darbojās tā, ka jūs tai „ielikāt vārdus mutē“. Terminālī tiek parādīts tieši tas teksts, ko jūs ievadījāt, kopā ar komandu konteinera palaišanai. Taču būtu daudz interesantāk, ja skripts automātiski ģenerētu jaunu izvades tekstu. To var izdarīt, piemēram, izmantojot programmu „fortunes“, kas ir pieejama katrā Linux sistēmā. Programmas fortunes galvenā funkcija ir ģenerēt laimes cepumu teicienus un humoristiskus aforismus. Izmantojiet šādu komandu, lai atjauninātu savu pašreizējo vietējo pakotņu indeksu un instalētu programmu fortunes:
RUN apt-get -y update && apt-get install -y fortunesTad definējiet CMD komandu. Tā tiek izpildīta pēc RUN komandas, ja vien tā nav pārrakstīta ar komandu call (docker run image CMD). Izmantojiet šādu komandu, lai palaistu programmu fortunes ar opciju -a („Izvēlēties no visām datu bāzēm”) un terminālī parādītu izvadi, izmantojot programmu cowsay:
CMD /usr/games/fortune -a | cowsayJūsu Dockerfile failam jāizskatās šādi:
FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsayPiezīme: Komandas Dockerfile failā vienmēr tiek rakstītas ar vienotu atstarpi un vienmēr sākas ar atslēgvārdu. Sintakse neņem vērā lielos un mazos burtus, tāpēc nav nozīmes, vai rakstāt ar lielajiem vai mazajiem burtiem. Tomēr ir ieviesta vienota atslēgvārdu rakstīšana ar lielajiem burtiem.

- Teksta faila saglabāšana: Saglabājiet savu ierakstu. Ja izmantojat redaktoru Nano, saglabājiet to, nospiežot taustiņu kombināciju [CTRL] + [O] un apstipriniet ar [ENTER]. Nano parādīs ziņojumu, ka izvēlētajā failā ir ierakstītas trīs rindas. Aizveriet teksta redaktoru, nospiežot taustiņu kombināciju [CTRL] + [X].
- Izveidojiet attēlu kā Dockerfile: Lai izveidotu attēlu no Dockerfile, vispirms atveriet direktoriju, kurā atrodas teksta fails. Sāciet attēla izveidi ar komandrindas direktīvu
docker build. Ja vēlaties attēlam piešķirt individuālu nosaukumu vai tagu, izmantojiet opciju-t, kam seko vēlamā nosaukuma un tagu kombinācija. Standarta formāts irname:tag.
Šajā piemērā ir jāizveido attēls ar nosaukumu docker-whale:
docker build -t docker-whale .bashPēdējais teikums norāda, ka pamatā esošais Dockerfile atrodas izvēlētajā direktorijā. Jums ir arī iespēja norādīt avota failu ceļu vai URL.
Veidošanas process sākas, tiklīdz komanda tiek apstiprināta, nospiežot [ENTER]. Vispirms Docker dēmons pārbauda, vai tam ir visi faili, kas nepieciešami attēla izveidei. Docker terminoloģijā to apzīmē ar terminu „konteksts”.
Tad attēls „docker/whalesay “ ar tagu :latest atrodas:
Ja attēla izveidei nepieciešamais konteksts jau ir pilnībā pieejams, tad Docker dēmons pagaidu konteinerā palaista attēla veidni, kas pievienota ar komandu FROM, un pāriet uz nākamo komandu Dockerfile failā. Šajā piemērā tā ir komanda RUN, kas izraisa programmas „fortunes“ instalēšanu.
Pēc katra attēla izveides posma pabeigšanas Docker piešķir identifikatoru attiecīgajam slānim, kas izveidots šajā posmā. Tas nozīmē, ka katra rinda pamatā esošajā Dockerfile failā atbilst slānim attēlā, kas uz tā balstās.
Kad komanda RUN ir izpildīta, Docker dēmons aptur tai izveidoto konteineru, to izdzēš un sāk jaunu pagaidu konteineru CMD komandas slānim. Izveides procesa beigās arī šis pagaidu konteiners tiek apturēts un izdzēsts. Docker parāda jaunā attēla identifikatoru:
Successfully built a8f2048c9ab8
Jūsu tikko izveidoto attēlu var atrast ar nosaukumu „docker-whale” jūsu lokāli saglabāto attēlu pārskatā.
sudo docker imagesbash
Lai palaistu konteineru no tikko izveidotā attēla, izmantojiet komandrindas komandu sudo docker run kopā ar attēla nosaukumu:
sudo docker run docker-whalebashJa attēls ir pareizi izveidots, izmantojot Dockerfile, jūsu vaļam tagad vajadzētu iedvesmot jūs ar vairāk vai mazāk gudriem vārdiem. Piezīme: Katru reizi, kad pārstartējat konteineru, tiek ģenerēta jauna frāze.

Marķējiet Docker attēlus un augšupielādējiet tos Docker Hub
Ja vēlaties augšupielādēt savu pielāgoto „docker-whale“ attēlu centrā un padarīt to pieejamu kopienai vai darba grupai, vispirms tas ir jāsasaista ar tāda paša nosaukuma repozitoriju savā personīgajā vārdu telpā. Docker terminoloģijā šo darbību sauc par marķēšanu.
Lai publicētu attēlu Docker Hub vietnē, rīkojieties šādi:
- Izveidojiet repozitoriju: Piesakieties Docker Hub vietnē, izmantojot savu Docker ID un personīgo paroli, un izveidojiet publisku repozitoriju ar nosaukumu docker-whale.

- Nosakiet attēla identifikatoru: Nosakiet jūsu pielāgotā attēla „docker-whale“ identifikatoru, izmantojot komandrindas komandu
docker images.

Mūsu gadījumā attēla ID ir a8f2048c9ab8. Tas mums būs nepieciešams, lai nākamajā solī pievienotu atzīmes.
- Pievienojiet tēlu: Pievienojiet tēlu „docker-whale”, izmantojot komandrindas programmu
docker tag, kā norādīts turpmāk:
sudo docker tag [Image-ID][Docker-ID]/[Image-Name]:[TAG]bashŠajā piemērā komandrindas norāde marķēšanai ir šāda:
sudo docker tag a8f2048c9ab8 [Namespace]/docker-whale:latestbashIzmantojot docker images pārskatu, vari pārbaudīt, vai attēls ir pareizi atzīmēts. Repozitorija nosaukumā tagad būtu jābūt iekļautam tavam Docker ID.

- Attēla augšupielāde: Lai augšupielādētu attēlu, vispirms ir jāpiesakās Docker Hub vietnē. To var izdarīt, izmantojot komandu
docker login.
sudo docker loginbashTad termināls lūgs ievadīt lietotājvārdu (Docker ID) un paroli.

Ja pieteikšanās izdevās, izmantojiet komandrindas komandu docker push, lai augšupielādētu savu attēlu jaunizveidotajā repozitorijā.
sudo docker push [Namespace]/docker-whalebashAugšupielādes process ilgs tikai dažas sekundes. Pašreizējais statuss tiek parādīts terminālī.

Piesakieties Docker Hub vietnē, izmantojot pārlūku, lai apskatītu augšupielādēto attēlu.
![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/lv-lv/digitalguide/fileadmin/_processed_/5/e/csm_docker-hub-push-result_56530d8ebc.webp)
Ja vēlaties augšupielādēt vairāk nekā vienu attēlu vienā repozitorijā, izmantojiet dažādas atslēgvārdus, lai piedāvātu attēlus dažādās versijās. Piemēram:
[Namespace]/docker-whale:latest
[Namespace]/docker-whale:version1
[Namespace]/docker-whale:version2Pārskatu par dažādajām attēla versijām var atrast Docker Hub repozitorijā cilnē „Tags”.

Tomēr dažādu projektu attēli būtu jāievieto atsevišķās krātuvēs.
Ja augšupielāde ir izdevusies, jūsu pielāgotais attēls tagad būs pieejams publiskajā repozitorijā visiem Docker lietotājiem visā pasaulē.
- Pārbaudes darbs: Pārbaudiet, vai augšupielāde ir izdevusies, mēģinot lejupielādēt attēlu.
Ņemiet vērā, ka, lai lejupielādētu jaunu kopiju ar to pašu tagu, vispirms ir jādzēš attēla vietējā versija. Pretējā gadījumā Docker ziņos, ka vēlamais attēls jau pastāv pašreizējā versijā.

Lai dzēstu vietējo Docker attēlu, izmantojiet komandrindas komandu docker rmi kopā ar attiecīgo attēla identifikatoru. To, kā parasti, nosaka, izmantojot docker images. Ja Docker reģistrē konfliktu, piemēram, tāpēc, ka attēla identifikators tiek izmantots vairākos repozitorijos vai tiek izmantots konteinerā, atkārtojiet komandu ar opciju --force (saīsināti –f ), lai piespiedu kārtā veiktu dzēšanu.
sudo docker rmi -f a8f2048c9ab8bash
Atkal parādīt visu vietējo attēlu pārskatu:
sudo docker ImagesbashDzēstie elementi vairs nedrīkst parādīties termināļa izvades logā. Tagad izmantojiet repozitorijā norādīto komandu „pull“, lai lejupielādētu jaunu attēla kopiju no Docker Hub.
sudo docker pull [Namespace]/docker-whalebash
Papildu tēmas un apmācības par Docker
Docker pasaule ir plaša, un laika gaitā no Docker rīkiem ir izveidojusies dinamiska ekosistēma. Docker ir īpaši noderīgs sistēmu administratoriem, it īpaši, ja viņi vienlaikus pārvalda sarežģītas lietojumprogrammas ar vairākiem konteineriem dažādās sistēmās. Docker piedāvā dažādas funkcijas šādu klasteru koordinēšanai. Vairāk informācijas par to varat atrast mūsu rakstā par Docker koordinēšanu ar Swarm un Compose.
Digitālajā ceļvedī ir pieejami papildu apmācību materiāli par darbu ar Docker:
- Docker repozitorija konfigurēšana
- Docker konteineru apjomi
- Docker: dublējums un atjaunošana
- Docker instalēšana un palaide Linux serverī
- Docker Compose apmācība
Docker ir piemērots dažādiem lietošanas scenārijiem. Digitālajā ceļvedī varat atrast šādus apmācību materiālus:
- WordPress izvietošana Docker konteineros
- VPN darbība Docker konteinerā, izmantojot SoftEther
- Nextcloud instalēšana ar Docker
- Portainer instalēšana Docker vidē
- Redis Docker konteineros
- Valheim Docker serveris
Docker ne vienmēr ir labākā izvēle visām lietojumprogrammām. Vienā no mūsu rakstiem ir aprakstītas populārākās Docker alternatīvas. Turklāt mums ir pieejami daudzi raksti, kuros Docker tiek salīdzināts ar citām platformām:
- Kubernetes pret Docker
- Openshift pret Docker
- Podman pret Docker