Vodnik po Dockerju za začetnike
V našem Dockerjevem vodiču vam predstavljamo virtualizacijsko platformo Docker in vam s preprostimi navodili pokažemo, kako uporabljati Docker v sistemu Ubuntu 22.04.
Zgradba in značilnosti Dockerja
»Izdelajte, objavite in izvajajte katero koli aplikacijo, kjer koli« – to je moto podjetja Docker. Ta odprtokodna platforma za kontejnerje ponuja prilagodljivo in energetsko učinkovito alternativo za emulacijo strojne opreme na podlagi virtualnih strojev (VM).
Medtem ko tradicionalna virtualizacija strojne opreme temelji na zagonu več gostujočih sistemov na skupnem gostiteljskem sistemu, se aplikacije Docker izvajajo kot ločeni procesi na istem sistemu s pomočjo kontejnerjev. To se imenuje virtualizacija na podlagi kontejnerjev, znana tudi kot virtualizacija na ravni operacijskega sistema.

Ena od glavnih prednosti virtualizacije na podlagi kontejnerjev je, da lahko aplikacije z različnimi zahtevami delujejo ločeno druga od druge, ne da bi bilo za to potrebno vzdrževati ločen gostujoči sistem. Poleg tega je s kontejnerji mogoče aplikacije razporediti na različnih platformah in v različnih infrastrukturah, ne da bi se morale prilagajati strojnim ali programskim konfiguracijam gostiteljskega sistema.
Docker je najbolj priljubljen programski projekt, ki uporabnikom ponuja tehnologijo virtualizacije na podlagi kontejnerjev. Ta odprtokodna platforma temelji na treh osnovnih komponentah. Za zagon kontejnerjev uporabniki potrebujejo le Dockerjev motor ter posebne Dockerjeve slike, ki jih lahko pridobijo prek Docker Hub ali ustvarijo sami.
Dockerjeve slike
Podobno kot virtualni stroji tudi Docker-kontejnerji temeljijo na Docker-slikah. Slika je predloga, ki je samo za branje in vsebuje vsa navodila, ki jih Docker-motor potrebuje za ustvarjanje kontejnerja. Docker-slika je opisana kot prenosljiva slika kontejnerja v obliki besedilne datoteke, imenovane tudi Dockerfile. Če je treba kontejner zagnati v sistemu, se najprej naloži paket z ustrezno sliko, če ta lokalno še ne obstaja. Naložena slika zagotavlja potrebni datotečni sistem, vključno z vsemi parametri za izvajanje. Kontejner lahko obravnavamo kot tekoči proces slike.
Docker Hub
Docker Hub je spletni register za repozitorije programske opreme, nekakšna knjižnica za Docker slike. Spletna storitev je razdeljena na javni in zasebni del. Javni del uporabnikom omogoča, da naložijo svoje lastne slike in jih delijo s skupnostjo. Tu je na voljo vrsta uradnih slik, ki jih je pripravila razvojna ekipa Dockerja ter uveljavljeni odprtokodni projekti. Podobe, naložene v zasebni del registra, niso javno dostopne, zato jih je mogoče deliti na primer znotraj notranjega kroga podjetja ali s prijatelji in znanci. Do Docker Hub je mogoče dostopati na hub.docker.com.
Dockerjev motor
Srce projekta Docker predstavlja Docker Engine. Gre za odprtokodno aplikacijo tipa odjemalec-strežnik, ki je v trenutni različici na voljo vsem uporabnikom na vseh uveljavljenih platformah.
Osnovna arhitektura Dockerjevega motorja je razdeljena na tri komponente: demon s strežniškimi funkcijami, programski vmesnik (API), ki temelji na programskem paradigmu REST (Representational State Transfer), ter terminal operacijskega sistema (vmesnik ukazne vrstice, CLI) kot uporabniški vmesnik (odjemalec).
- Dockerjev demon: Kot strežnik za Dockerjev motor se uporablja proces demon. Dockerjev demon teče v ozadju gostiteljskega sistema in se uporablja za centralno upravljanje Dockerjevega motorja. Ta funkcija ustvarja in upravlja vse slike, kontejnerje ali omrežja.
- REST-API: REST-API določa niz vmesnikov, ki drugim programom omogočajo komunikacijo z Docker daemonom in mu dajejo navodila. Eden od teh programov je terminal operacijskega sistema.
- Terminal: Docker kot odjemalski program uporablja terminal operacijskega sistema. Ta, integriran z Dockerjevim demonom prek REST-API, omogoča uporabnikom, da ga nadzorujejo prek skriptov ali uporabniških vnosov.
Leta 2017 je bil Docker Engine preimenovan v Docker Community Edition (skrajšano Docker CE), vendar se v uradni dokumentaciji in Dockerjevih repozitorijih večinoma še vedno uporablja staro ime. Poleg Docker CE obstaja tudi Docker Enterprise Edition (Docker EE), ki ponuja nekatere dodatne funkcije. Vendar pa ta različica ni brezplačna in je bolj primerna za podjetja.
Z ukazi Dockerja je mogoče uporabniške programske kontejnerje zagnati, ustaviti in upravljati neposredno iz terminala. Na demon se dostopa prek ukaza docker in ukazov, kot so build, pull ali run. Odjemalec in strežnik lahko delujeta na istem sistemu. Uporabniki imajo tudi možnost dostopa do Docker daemona na drugem sistemu. Odvisno od vrste vzpostavljene povezave poteka komunikacija med odjemalcem in strežnikom prek REST-API, prek UNIX vtičnic ali prek omrežnega vmesnika.
Naslednja slika prikazuje medsebojno delovanje posameznih komponent Dockerja na primeru ukazov docker build, docker pull in docker run:

Ukaz docker build da Dockerjevemu demonu navodilo, naj ustvari sliko (črtkana črta). Za to mora biti na voljo ustrezen Dockerfile. Če slike ne želimo ustvariti, ampak jo namesto tega naložiti iz repozitorija v Docker Hubu, se uporabi ukaz docker pull (prekinjena črta). Če se demon Docker prek docker run naroči, naj zažene kontejner, program v ozadju preveri, ali je ustrezna slika kontejnerja na voljo lokalno. Če je, se kontejner zažene (neprekinjena črta). Če demon slike ne najde, samodejno sproži prenos iz repozitorija.
Delo z Dockerjem
Zdaj je čas, da se seznanite z aplikacijami na platformi za kontejnerje. Če še niste namestili Dockerjevega motorja, lahko to storite prek terminala v sistemu Linux. Navodila za to najdete v našem članku z naslovom»Namestitev Dockerja v Ubuntu 22.04«. V nadaljevanju boste izvedeli, kako upravljati Dockerjev motor iz terminala, kaj vam lahko ponudi Docker Hub in zakaj bi Dockerjevi kontejnerji lahko korenito spremenili vaš način dela z aplikacijami.
Kako upravljati Dockerjev motor
Od različice 16.04 Ubuntu za upravljanje procesov uporablja program v ozadju systemd(kratica za »system daemon«).Systemd jeproces init, ki se uporablja tudi v drugih distribucijah Linuxa, kot so RHEL, CentOS ali Fedora. Običajnodobi systemdidentifikacijsko številko procesa 1. Kot prvi proces v sistemu je ta demon odgovoren za zagon, nadzor in zaključek vseh naslednjih procesov. V prejšnjih različicah Ubunta (14.10 in starejših) to funkcijo prevzameprogram v ozadju upstart.
Dockerjev demon je mogoče upravljati tudi prek systemd. Pri standardni namestitvi je platforma za kontejnerje nastavljena tako, da se demon samodejno zažene ob zagonu sistema. To privzeto nastavitev je mogoče prilagoditi z orodjem za ukazno vrstico systemctl.
Z ukazom systemctl pošiljate ukaze sistemu systemd, da nadzirate proces ali pridobite podatke o njegovem stanju. Sintaksa takšnega ukaza je naslednja:
systemctl [OPTION] [COMMAND]bashNekateri ukazi se nanašajo na določene vire (na primer Docker). V terminologiji systemd se ti imenujejo enote. V tem primeru je ukaz sestavljen iz ustreznega navodila in imena enote, na katero se nanaša.
Če želite vklopiti samodejni zagon demon Dockerja (vklopiti) ali ga izklopiti (izklopiti), uporabite orodje za ukazno vrstico systemctl z naslednjimi ukazi:
sudo systemctl enable docker
sudo systemctl disable dockerbashOrodje za ukazno vrstico systemctl omogoča preverjanje stanja enote:
sudo systemctl status dockerbashČe je Dockerjev motor na vašem sistemu Ubuntu aktiven, naj bi izpis v terminalu izgledal kot na naslednji sliki:

Če je vaš Docker-motor trenutno izklopljen, boste prejeli statusno sporočilo »inactive (dead)«. V tem primeru morate za zagon kontejnerjev ročno zagnati Docker-demona.

Če želite ročno zagnati, ustaviti ali ponovno zagnati Dockerjev motor, uporabite eno od naslednjih ukazov za sistem systemd.
Če želite zagnati onemogočenega demon, uporabite systemctl v kombinaciji z ukazom start:
sudo systemctl start dockerbashČe želite ustaviti Dockerjev demon, uporabite ukaz stop:
sudo systemctl stop dockerbashZ ukazom restart se sproži ponovni zagon motorja:
sudo systemctl restart dockerbashKako uporabljati Docker Hub
Če je Docker Engine srce platforme za kontejnerje, je Docker Hub duša tega odprtokodnega projekta. Tu se zbira skupnost. V registru v oblaku lahko uporabniki najdejo vse, kar potrebujejo, da svojo namestitev Dockerja napolnijo z življenjem.
Spletna storitev ponuja različne uradne repozitorije z več kot 100.000 brezplačnimi aplikacijami. Uporabniki imajo možnost ustvariti arhiv slik in jih skupaj uporabljati z delovnimi skupinami. Poleg strokovne podpore, ki jo nudi razvojna ekipa, lahko začetniki tukaj najdejo povezave do uporabniške skupnosti. Na GitHubu je na voljo forum za podporo skupnosti.

Registracija v Docker Hubu
Registracija v Docker Hubu je brezplačna. Uporabniki potrebujejo le e-poštni naslov in izbrano Docker ID. To kasneje služi kot osebni imenski prostor repozitorija in uporabnikom omogoča dostop do vseh storitev Docker. Trenutno ta ponudba poleg Docker Hub vključuje tudi Docker Cloud, Docker Store in izbrane beta programe. Omogoča tudi uporabo Docker ID za prijavo v center za podporo Docker, portal Docker Success in forum Docker.
Postopek registracije obsega pet korakov:
- Izberite svoj Docker ID: V prvem delu prijave izberite uporabniško ime, ki ga boste kasneje uporabljali kot svoj osebni Docker ID.
- Vnesite e-poštni naslov: Vnesite svoj trenutni e-poštni naslov. Upoštevajte, da boste morali svojo registracijo pri Docker Hubu potrditi prek e-pošte.
- Izberite geslo: Izberite skrivno geslo.
- Potrdite registracijo: Kliknite na »Prijavi se«, da potrdite registracijo. Ko bodo podatki v celoti preneseni, vam bo Docker na navedeni e-poštni naslov poslal povezavo za potrditev e-poštnega naslova.
- Potrdite svoj e-poštni naslov: Potrdite svoj e-poštni naslov s klikom na povezavo za potrditev.
Spletne storitve projekta Docker so na voljo takoj po registraciji v brskalniku. Tukaj lahko ustvarjate repozitorije in delovne skupine ali pa z uporabo funkcije »Explore« iščete javne vire v Docker Hubu.

Prijavite se lahko tudi neposredno v terminalu operacijskega sistema z ukazom docker login. Podroben opis ukaza najdete v dokumentaciji Dockerja.
Načeloma je Docker Hub na voljo tudi tistim, ki nimajo računa ali Docker ID-ja. V tem primeru pa je mogoče naložiti le slike iz javnih repozitorijev. Brez Docker ID-ja ni mogoče naložiti (push) lastnih slik.
Ustvarite repozitorije v Docker Hubu
Brezplačen račun na Docker Hubu vključuje eno zasebno repozitorij in omogoča ustvarjanje poljubnega števila javnih repozitorijev. Če potrebujete več zasebnih repozitorijev, jih lahko odklenete s plačljivo nadgradnjo.
Če želite ustvariti repozitorij, ravnajte na naslednji način:
- Izberite imenski prostor: Novo ustvarjena skladišča se samodejno dodelijo v imenski prostor vašega Docker ID-ja. Imate tudi možnost vnesti ID organizacije, ki ji pripadate.
- Označite repozitorij: Vnesite ime za novo ustvarjeni repozitorij.
- Dodajte opis: Dodajte kratek opis za vaše repozitorij.
- Nastavite vidnost: Odločite se, ali naj bo repozitorij javno viden (javni) ali dostopen samo vam ali vaši organizaciji (zasebni).
Potrdite vnesene podatke s klikom na gumb »Ustvari«.

Ustvarjanje ekip in organizacij
Z Docker Hubom Docker ponuja platformo v oblaku, na kateri se samostojno ustvarjene slike centralno upravljajo in enostavno delijo z delovnimi skupinami. V Dockerjevi terminologiji se te imenujejo organizacije. Podobno kot uporabniški računi tudi organizacije prejmejo individualne identifikacijske številke, prek katerih je mogoče slike ponujati in prenesti. Pravice in vloge znotraj organizacije se lahko dodelijo prek skupin. Na primer, uporabniki, dodeljeni v skupino »Lastniki«, imajo pooblastila za ustvarjanje zasebnih ali javnih repozitorijev ter dodeljevanje dostopnih pravic.
Delovne skupine je mogoče ustvarjati in upravljati tudi neposredno prek nadzorne plošče. Več informacij o organizacijah in ekipah najdete v dokumentaciji Dockerja.
Delovanje s slikami in kontejnerji
Docker Hub je kot prva točka za dostop do uradnih virov Dockerja naša izhodiščna točka za ta uvod v ravnanje s slikami in kontejnerji. Razvojna ekipa je pripravila demonstracijsko sliko »whalesay«, ki bo služila kot podlaga za naslednji Dockerjev vodič.
Prenesi slike Dockerja
Sliko »whalesay« najdete tako, da obiščete spletno stran Docker Hub in v iskalno polje ob logotipu Docker vnesete izraz »whalesay «.

V rezultatih iskanja kliknite na vir z naslovom docker/whalesay, da odprete javno repozitorij za to sliko.
Repozitoriji Dockerja so vedno sestavljeni po istem vzorcu. V glavi strani so navedeni naslov slike, kategorija repozitorija in čas zadnjega prenosa (last pushed).

Vsako Dockerjevo skladišče ponuja tudi naslednja informacijska okna:
- Opis: Podroben opis, ki običajno vključuje navodila za uporabo
- Ukaz Docker pull: Direktiva ukazne vrstice, ki se uporablja za prenos slike iz repozitorija (
pull) - Lastnik: Informacije o ustvarjalcu repozitorija
- Komentarji: Oddelek za komentarje na koncu strani
Iz opisnih polj v repozitoriju je razvidno, da je program »whalesay« predelava odprtokodnega Perl skripta »cowsay«. Program, ki ga je leta 1999 razvil Tony Monroe, ustvari ASCII-grafiko v obliki krave, ki se skupaj s sporočilom prikaže na uporabnikovem terminalu.
Če želite prenesti docker/whalesay, uporabite ukaz docker pull:
docker pull [OPTIONS] NAME [:TAG|@DIGEST]bashUkaz docker pull daemonu naroči, naj naloži sliko iz repozitorija. Katero sliko želite, določite z vnosom naslova slike (NAME). Dockerju lahko tudi navedete, kako naj izvede želeni ukaz (OPTIONS). Med neobvezne vnose spadajo oznake (:TAG) in posamezne identifikacijske številke (@DIGEST), ki vam omogočajo prenos določene različice slike.
Lokalno kopijo slike docker/whalesay pridobimo z naslednjim ukazom:
docker pull docker/whalesaybashNa splošno lahko ta korak preskočite. Če želite zagnati kontejner, bo Dockerjev demon samodejno prenesel slike iz repozitorija, ki jih ne najde v lokalnem sistemu.
Zaženi slike Dockerja kot kontejnerje
Za zagon slike Dockerja uporabite ukaz docker run:
docker run [OPTIONS] IMAGE [:TAG|@DIGEST] [CMD] [ARG...]bashEdini obvezni del ukaza docker run je ime želene slike Dockerja. Ko pa zaženete kontejner, imate možnost določiti tudi dodatne možnosti, oznake (TAGs) in povzetke (DIGESTs). Poleg tega se ukaz docker run lahko kombinira z drugimi ukazi, ki se izvedejo takoj ob zagonu kontejnerja. V tem primeru se CMD (COMMAND, ki ga določi ustvarjalec slike in se samodejno izvede ob zagonu kontejnerja) prepiše. Druge neobvezne konfiguracije se lahko določijo z dodatnimi argumenti (ARG…). To omogoča na primer dodajanje uporabnikov ali prenos spremenljivk okolja.
Uporabi ukazno vrstico
docker run docker/whalesay cowsay boobashda prenesete obstoječi Perl skript kot sliko in ga zaženete v kontejnerju. Opazili boste, da se whalesay precej razlikuje od izvirnega skripta.

Če se zažene slika docker/whalesay, skript izpiše ASCII-grafiko v obliki kita ter besedilno sporočilo »boo«, ki je bilo posredovano z ukazom cowsay v terminalu.
Tako kot pri preskusu demon najprej poišče želeno sliko v lokalnem imeniku. Ker paket z enakim imenom ne obstaja, se sproži prenos iz Dockerjevega repozitorija. Nato demon zažene spremenjeni program cowsay. Če se ta uspešno izvede, se kontejner samodejno zaključi.
Podobno kot cowsay tudi Dockerjev whalesay omogoča poseg v potek programa, da bi vplivali na izpis besedila v terminalu. To funkcijo preizkusite tako, da v izpisnem ukazu besedo »boo« nadomestite s katerim koli nizom znakov ali pa na primer z neumnim šalom o kitih.
sudo docker run docker/whalesay cowsay What did the shark say to the whale? What are you blubbering about?bash
Prikaži vse slike Dockerja v lokalnem sistemu
Če niste prepričani, ali ste določeno sliko že prenesli, si lahko ogledate pregled vseh slik na svojem lokalnem računalniku. Uporabite naslednjo ukazno vrstico:
sudo docker imagebashUkaz docker images (ali docker image ls) prikaže vse lokalne slike, vključno z velikostjo datoteke, oznako in ID slike.

Če zaženete kontejner, se izvorna slika prenese iz repozitorija kot kopija in trajno shrani na vaš računalnik. Tako prihranite čas, če želite do slike dostopati kasneje. Novo prenašanje se sproži le, če se vir slike spremeni, na primer če je v repozitoriju na voljo nova različica.
Prikaži vse kontejnerje v lokalnem sistemu
Če želite prikazati pregled vseh kontejnerjev, ki trenutno tečejo v vašem sistemu ali so v preteklosti že tekli, uporabite ukazno vrstico docker ps v kombinaciji z možnostjo --all (skrajšano: -a):
sudo docker ps -abash
Izpis v terminalu vsebuje podatke, kot so ID posameznega kontejnerja, izhodiščna slika, ukaz, ki je bil izveden ob zagonu kontejnerja, čas zagona kontejnerja in stanje.
Če želite prikazati le kontejnerje, ki trenutno tečejo v vašem sistemu, uporabite ukazno vrstico docker ps brez drugih opcij:
sudo docker psbashTrenutno pa v vašem sistemu ne bi smelo biti nobenih zagnanih kontejnerjev.
Ustvarjanje slik Dockerja
V našem Dockerjevem vodiču smo vam sicer že pokazali, kako poiskati slike v Docker Hubu, jih prenesti in zagnati na katerem koli sistemu, na katerem je nameščen Dockerjev motor. Vendar pa vam Docker ne omogoča le dostopa do obsežne ponudbe aplikacij, ki so na voljo v registru. Platforma ponuja tudi številne možnosti za ustvarjanje lastnih slik in njihovo deljenje z drugimi razvijalci.
V uvodnih poglavjih tega Dockerjevega vodiča ste že izvedeli, da vsaka Dockerjeva slika temelji na datoteki Dockerfile. Datoteke Dockerfile si lahko predstavljate kot nekakšne predloge za izdelavo slik. To so preproste besedilne datoteke, ki vsebujejo vsa navodila, ki jih Docker potrebuje za ustvarjanje slike. V naslednjih korakih se boste naučili, kako napisati takšno datoteko Dockerfile in Dockerju naročiti, naj jo uporabi kot osnovo za vašo lastno sliko.
- Ustvarjanje novega imenika: Razvojna ekipa Dockerja priporoča, da za vsak Dockerfile ustvarite nov imenik. V sistemu Linux imenike enostavno ustvarite v terminalu. Z naslednjim ukazom v ukazni vrstici ustvarite imenik z imenom mydockerbuild:
mkdir mydockerbuildbash
- Premikanje po novem imeniku: Uporabite ukaz
cdza premikanje po novo ustvarjenem delovnem imeniku.
cd mydockerbuildbash
- Ustvarjanje nove besedilne datoteke: V sistemu Ubuntu lahko besedilne datoteke enostavno ustvarite tudi prek terminala. Za to uporabite urejevalnik, kot je Nano ali Vim. V imeniku mydockerbuild ustvarite besedilno datoteko z imenom Dockerfile.
nano Dockerfilebash
- Napišite datoteko Dockerfile: Novo ustvarjena besedilna datoteka služi kot načrt za izdelavo vaše lastne slike. Namesto da bi sliko programirali od začetka, bomo v tem Dockerjevem vodiču kot predlogo uporabili demonstracijsko sliko docker/whalesay. To vključite z ukazom FROM v datoteki Dockerfile. Uporabite oznako :latest, da se sklicujete na najnovejšo različico slike.
FROM docker/whalesay:latestDoslej je program docker/whalesay deloval tako, da ste mu sami vnesli besedilo. V terminalu se je prikazalo točno tisto besedilo, ki ste ga vnesli, skupaj z ukazom za zagon kontejnerja. A bilo bi bolj zanimivo, če bi skript samodejno ustvarjal novo besedilo. To je mogoče doseči na primer z uporabo programa fortunes, ki je na voljo v vsakem sistemu Linux. Osnovna funkcija programa fortunes je ustvarjanje izrekov iz piškotkov sreče in duhovitih aforizmov. Uporabite naslednji ukaz, da posodobite trenutni lokalni indeks paketov in namestite program fortunes:
RUN apt-get -y update && apt-get install -y fortunesNato opredelite ukaz CMD. Ta se izvede po ukazu RUN, razen če ga ni prepisal klic (docker run image CMD). Z naslednjim ukazom zaženite program fortunes z možnostjo -a („Izberi iz vseh zbirk podatkov“) in izpis prikažite v terminalu prek programa cowsay:
CMD /usr/games/fortune -a | cowsayVaša datoteka Dockerfile naj bi bila takšna:
FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsayOpomba: Ukazi v datoteki Dockerfile so vedno zapisani z enim razmikom in se vedno začnejo s ključno besedo. Sintaksa ne razlikuje med velikimi in malimi črkami, zato ni pomembno, ali pišete z velikimi ali malimi črkami. Vendar pa je bila uvedena enotna uporaba velikih črk za ključne besede.

- Shranite besedilno datoteko: Shranite svoj vnos. Če uporabljate urejevalnik Nano, datoteko shranite s kombinacijo tipk [CTRL] + [O] in potrdite s tipko [ENTER]. Nano vas bo obvestil, da so bile v izbrano datoteko zapisane tri vrstice. Urejevalnik zaprite s kombinacijo tipk [CTRL] + [X].
- Ustvarjanje slike kot Dockerfile: Če želite ustvariti sliko iz Dockerfile, se najprej pomaknite v imenik, kjer se nahaja besedilna datoteka. Ustvarjanje slike začnite z ukazno vrstico
docker build. Če želite sliko poimenovati po lastni izbiri ali ji dodeliti oznako, uporabite možnost-t, ki ji sledi želena kombinacija imena in oznake. Standardni format jename:tag.
V tem primeru je treba ustvariti sliko z imenom docker-whale:
docker build -t docker-whale .bashZadnji del besedila pomeni, da se izhodiščna datoteka Dockerfile nahaja v izbrani mapi. Imate tudi možnost, da za izvorne datoteke določite pot do datoteke ali URL-naslov.
Postopek gradnje se začne takoj, ko potrdite ukaz s tipko [ENTER]. Najprej Dockerjev demon preveri, ali ima vse datoteke, ki jih potrebuje za ustvarjanje slike. V Dockerjevi terminologiji se to imenuje »kontekst«.
Nato poiščemo sliko docker/whalesay z oznako :latest:
Če je potrebno okolje za ustvarjanje slike že v celoti pripravljeno, demon Docker v začasnem kontejnerju zažene sliko, ki je bila dodana prek ukaza FROM, in preide na naslednji ukaz v datoteki Dockerfile. V tem primeru je to ukaz RUN, ki poskrbi za namestitev programa fortunes.
Na koncu vsakega koraka pri ustvarjanju slike vam Docker dodeli identifikacijsko številko za ustrezno plast, ki je bila ustvarjena v tem koraku. To pomeni, da vsaka vrstica v ustreznem datoteki Dockerfile ustreza plasti slike, ki je bila na tej podlagi zgrajena.
Ko se ukaz RUN zaključi, Dockerjev demon ustavi kontejner, ki je bil ustvarjen zanj, ga odstrani in za sloj iz ukaza CMD zažene nov začasni kontejner. Ob koncu postopka ustvarjanja se tudi ta začasni kontejner ustavi in odstrani. Docker vam prikaže ID nove slike:
Successfully built a8f2048c9ab8
Novo ustvarjeno sliko najdete pod imenom docker-whale v pregledu lokalno shranjenih slik.
sudo docker imagesbash
Če želite zagnati kontejner iz novo ustvarjene slike, uporabite ukazno vrstico sudo docker run v kombinaciji z imenom slike:
sudo docker run docker-whalebashČe je bila slika pravilno ustvarjena iz datoteke Dockerfile, naj bi vas vaš kit zdaj navdihoval z bolj ali manj modrimi besedami. Opomba: Vsakič, ko ponovno zaženete kontejner, se ustvari nov stavek.

Označite slike Dockerja in jih naložite na Docker Hub
Če želite svojo lastno sliko docker-whale naložiti v hub in jo dati na voljo skupnosti ali delovni skupini, jo morate najprej povezati z repozitorijem z enakim imenom v svojem osebnem imenskem prostoru. V terminologiji Dockerja se ta korak imenuje označevanje.
Če želite objaviti sliko v Docker Hubu, ravnajte na naslednji način:
- Ustvarite repozitorij: Prijavite se v Docker Hub z vašim Docker ID-jem in osebnim geslom ter ustvarite javni repozitorij z imenom docker-whale.

- Ugotovite ID slike: Ugotovite ID vaše prilagojene slike »docker-whale« z uporabo ukazne vrstice
docker images.

V našem primeru je ID slike a8f2048c9ab8. To potrebujemo za označevanje v naslednjem koraku.
- Označite sliko: Označite sliko »docker-whale« s pomočjo programa za ukazno vrstico
docker tagna naslednji način:
sudo docker tag [Image-ID][Docker-ID]/[Image-Name]:[TAG]bashV tem primeru se ukazna vrstica za označevanje glasi:
sudo docker tag a8f2048c9ab8 [Namespace]/docker-whale:latestbashV pregledu docker images lahko preverite, ali ste sliko pravilno označili. Ime repozitorija naj bi zdaj vsebovalo vašo Docker ID.

- Naložite sliko: Da bi sliko naložili, se morate najprej prijaviti v Docker Hub. To lahko storite z ukazom
docker login.
sudo docker loginbashNato vas terminal pozove, da vnesete svoje uporabniško ime (Docker ID) in geslo.

Če se je prijava uspela, uporabite ukazno vrstico docker push za naložitev slike v novo ustvarjeno repozitorij.
sudo docker push [Namespace]/docker-whalebashNalaganje naj bi trajalo le nekaj sekund. Trenutno stanje je prikazano v terminalu.

Prijavite se v Docker Hub prek brskalnika, da si ogledate naloženo sliko.
![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/sl-si/digitalguide/fileadmin/_processed_/5/e/csm_docker-hub-push-result_56530d8ebc.webp)
Če želite v posamezno repozitorij naložiti več kot eno sliko, uporabite različne oznake, da slike ponudite v različnih različicah. Na primer:
[Namespace]/docker-whale:latest
[Namespace]/docker-whale:version1
[Namespace]/docker-whale:version2Pregled različnih različic slike je na voljo v repozitoriju Docker Hub pod zavihkom »Oznake«.

Slike različnih projektov pa bi morale biti na voljo v ločenih repozitorijih.
Če je bilo nalaganje uspešno, bo vaša prilagojena slika zdaj na voljo v javnem repozitoriju vsem uporabnikom Dockerja po vsem svetu.
- Preizkus: Preverite, ali je prenos uspel, tako da poskusite sliko prenesti.
Upoštevajte, da je treba najprej izbrisati lokalno različico slike, da lahko prenesete novo kopijo z istim oznako. V nasprotnem primeru bo Docker sporočil, da želeni sliki v trenutni različici že obstaja.

Če želite izbrisati lokalno sliko Dockerja, uporabite ukazno vrstico docker rmi v kombinaciji z ustreznim ID-jem slike. Ta se, kot običajno, določi prek docker images. Če Docker zabeleži konflikt, npr. ker se ID slike uporablja v več repozitorijih ali v kontejnerju, ponovite ukaz z možnostjo --force (skrajšano*-f* ), da prisilite izbris.
sudo docker rmi -f a8f2048c9ab8bash
Ponovno prikaži pregled vseh lokalnih slik:
sudo docker ImagesbashIzbrisani elementi se v izpisu terminala ne bi smeli več prikazovati. Sedaj uporabite ukaz »pull«, ki je naveden v repozitoriju, da prenesete novo kopijo slike iz Docker Hub.
sudo docker pull [Namespace]/docker-whalebash
Dodatne teme in vodiči o Dockerju
Svet Dockerja je obsežen in sčasoma se je iz Dockerjevih orodij razvil živahen ekosistem. Docker je še posebej koristen za skrbnike, predvsem če upravljajo zapletene aplikacije z več kontejnerji, ki delujejo vzporedno na različnih sistemih. Docker ponuja raznolike funkcije za usklajevanje takšnih grozdov. Več informacij o tem najdete v našem članku o usklajevanju Dockerja s Swarmom in Composeom.
Digitalni vodnik vsebuje dodatna navodila za delo z Dockerjem:
- Nastavitev repozitorija Docker
- Volumi kontejnerjev Docker
- Docker: Varnostno kopiranje in obnovitev
- Namestitev in zagon Dockerja na strežniku Linux
- Vodnik po Docker Compose
Docker je primeren za različne scenarije uporabe. V digitalnem vodniku najdete naslednje vodiče:
- Namestitev WordPressa v Dockerjevih kontejnerjih
- Zagon VPN v Docker kontejnerju z uporabo SoftEther
- Namestitev Nextclouda z Dockerjem
- Namestitev Portainerja v Dockerju
- Redis v Docker kontejnerjih
- Valheim Docker strežnik
Docker ni vedno najboljša izbira za vsako aplikacijo. V enem od naših člankov smo predstavili najbolj priljubljene alternative za Docker. Poleg tega imamo na voljo še številne druge članke, v katerih primerjamo Docker z drugimi platformami:
- Kubernetes proti Dockerju
- Openshift proti Dockerju
- Podman proti Dockerju