# 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**.

[![Image: Virtual machines and software containers in comparison](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/f/9/csm_virtual-machines-compared-to-docker-containers_1216df397f.webp "Virtual machines and software containers in comparison")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Schaubilder/virtual-machines-compared-to-docker-containers.png) While each virtual machine launches its own operating system, Docker containers share the core of the host system 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.

Tip Docker-konteinerid ja -pildid on enamasti üldised, kuid neid saab vajaduse korral põhjalikult kohandada. Lisateavet leiate meie artiklist Docker-konteinerite kohta.

### 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*](https://hub.docker.com/ "Docker Hub website").

### 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.

Tip 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:

[![Image: Schematic representation of the Docker architecture](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/e/1/csm_docker-architecture-schematic_0cb6890f75.webp "Schematic representation of the Docker architecture")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Schaubilder/docker-architecture-schematic.png) 'The Docker architecture is based on the cooperation of the client (terminal'), server (Docker-daemon) ja registri (Docker Hub).“ 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.

Tip Kui soovid Dockerit installida mõnele teisele Linuxi distributsioonile või Windowsile, on järgmised juhised abiks:

- Dockeri installimine Debian 11-le
- Dockeri installimine Ubuntu 20.04-le
- Dockeri installimine CentOS 7-le
- Dockeri installimine Windows 10-le
- Dockeri installimine Windows 11-le
- Dockeri installimine Raspberry Pi-le

### Kuidas juhtida Docker-mootorit

Alates versioonist 16.04 on Ubuntu kasutanud protsesside haldamiseks **taustaprogrammi *systemd***(lühend sõnast „system daemon“).*Systemd on*algusprotsess, mida kasutatakse ka teistes Linuxi distributsioonides, nagu RHEL, CentOS või Fedora. Tavaliselt*antakse systemd-le*protsessi 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 taustaprogramm*upstart*.

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:

```bash
systemctl [OPTION] [COMMAND]
```

Mõ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:

```bash
sudo systemctl enable docker
sudo systemctl disable docker
```

Käsurea tööriist *systemctl* võimaldab teil kontrollida **üksuse seisundit**:

```bash
sudo systemctl status docker
```

Kui teie Ubuntu-süsteemis on Docker-mootor aktiivne, peaks terminali väljund nägema välja nagu järgneval pildil:

[![Image: The status query via systemctl shows: The Docker engine is active (running)](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/f/7/csm_docker-status-active-running_f52601bd11.webp "The status query via systemctl shows: The Docker engine is active (running)")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-status-active-running.png) Status query via systemctl: The Docker Engine is active (running) 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.

[![Image: The status query via systemctl shows: The Docker engine is inactive (dead)](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/d/a/csm_docker-status-inactive_cad5668ee9.webp "The status query via systemctl shows: The Docker engine is inactive (dead)")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-status-inactive.png) Status query via systemctl: The Docker engine is inactive (dead) 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`:

```bash
sudo systemctl start docker
```

Kui **soovid Docker-daemoni sulgeda**, kasuta selle asemel käsku `stop`:

```bash
sudo systemctl stop docker
```

**Mootori taaskäivitamine** käivitatakse käsuga `restart`:

```bash
sudo systemctl restart docker
```

### Kuidas 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**](https://github.com/docker/hub-feedback/issues "Docker’s GitHub website") on avatud foorum, kus kogukond pakub vastastikust tuge.

[![Image: The Docker hub: Registration](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/a/0/csm_docker-hub-login-page_d232488fe7.webp "The Docker hub: Registration")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-login-page.png) Create your personal Docker ID for free by registering / Source: hub.docker.com #### 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](https://www.docker.com/community/ "Docker Community forum").

Registreerimisprotsess koosneb viiest etapist:

1. **Vali oma Docker ID**: Taotluse esimeses osas vali kasutajanimi, mida kasutatakse hiljem sinu isikliku Docker ID-na.
2. **Sisesta e-posti aadress**: Sisesta oma praegune e-posti aadress. Pane tähele, et pead oma registreerimist Docker Hubis e-posti teel kinnitama.
3. **Vali parool**: Vali salajane parool.
4. **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.
5. **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.

[![Image: Dashboard of the Docker hub](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/f/a/csm_docker-hub-dashboard_1d08a8d15d.webp "Dashboard of the Docker hub")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-dashboard.png) Select and set repositories and workgroups via the Docker hub dashboard / Source: hub.docker.com Võite registreeruda ka otse oma operatsioonisüsteemi terminalis käsuga `*docker login`\*. Käsu üksikasjalik kirjeldus on toodud [Docker’i dokumentatsioonis](https://docs.docker.com/engine/reference/commandline/login/ "Docker documentation").

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:

1. **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.
2. **Märgista hoidla**: Sisesta äsja loodud hoidla nimi.
3. **Lisage kirjeldus**: Lisage oma repositooriumile lühikirjeldus.
4. **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”.

[![Image: The Docker hub: Input screen for creating a repository](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/a/d/csm_docker-hub-repository-creation_ac7984ce9d.webp "The Docker hub: Input screen for creating a repository")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-repository-creation.png) Your repositories are automatically created in the namespace of your Docker ID / Source: hub.docker.com #### 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](https://docs.docker.com/docker-hub/orgs/ "Workgroups - Docker documentation").

### 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* “.

[![Image: The search function in Docker hub](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/c/c/csm_docker-hub-whalesay-repos_eae5c60dab.webp "The search function in Docker hub")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-whalesay-repos.png) Search the Docker hub using the search bar or the ‘Explore’ button / Source: hub.docker.com 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*).

[![Image: Web view of a Docker repository](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/3/e/csm_docker-hub-official-whalesay-repo_2355257104.webp "Web view of a Docker repository")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-official-whalesay-repo.png) In the repository, users generally find all information that is needed to use an image / Source: hub.docker.com Iga Docker-hoidla pakub ka järgmisi infokaste:

1. **Kirjeldus**: üksikasjalik kirjeldus, mis sisaldab tavaliselt kasutusjuhiseid
2. **Docker pull-käsk**: käsurea käsk, mida kasutatakse pildi allalaadimiseks hoidlast (`pull`)
3. **Omanik**: Teave hoidla looja kohta
4. **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`:

```bash
docker pull [OPTIONS] NAME [:TAG|@DIGEST]
```

Kä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:

```bash
docker pull docker/whalesay
```

Ü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`:

```bash
docker run [OPTIONS] IMAGE [:TAG|@DIGEST] [CMD] [ARG...]
```

Kä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

```bash
docker run docker/whalesay cowsay boo
```

et laadida olemasolev Perl-skript alla kujutisena ja käivitada see konteineris. Sa näed, et *whalesay* erineb oluliselt algsest skriptist.

[![Image: Terminal output of the container docker/whalesay: The whale says ‘boo’](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/e/4/csm_docker-run-whalesay-boo-english_82f28f20b7.webp "Terminal output of the container docker/whalesay: The whale says ‘boo’")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-run-whalesay-boo-english.png) If docker/whalesay is run with the standard command, the Docker whale is limited to a short ‘boo’ 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.

```bash
sudo docker run docker/whalesay cowsay What did the shark say to the whale? What are you blubbering about?
```

[![Image: Terminal output of the container docker/whalesay: A whale with an individual message](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/8/6/csm_docker-run-whalesay-joke_6337d3f36a.webp "Terminal output of the container docker/whalesay: A whale with an individual message")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-run-whalesay-joke.png) Make your Docker whale say whatever you want by placing words in his speech bubble #### 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:

```bash
sudo docker image
```

Käsk `docker images` (või `docker image ls`) kuvab kõik kohalikud pildid, sealhulgas faili suuruse, sildid ja pildi ID.

[![Image: Overview of all images on the local system](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/3/9/csm_sudo-docker-images-empty_9806635619.webp "Overview of all images on the local system")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-images-empty.png) The overview displays the images hello-world and docker/whalesay 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`):

```bash
sudo docker ps -a
```

[![Image: Overview of all containers on the local system](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/5/a/csm_sudo-docker-ps-a-english_74f680383e.webp "Overview of all containers on the local system")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-ps-a-english.png) The overview shows all containers that have been launched on the Docker engine 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:

```bash
sudo docker ps
```

Praegu 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.

1. **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*:

```bash
mkdir mydockerbuild
```

[![Image: Ubuntu terminal: The command mkdir](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/4/8/csm_mkdir-mydockerbuild-english_b8f27a8820.webp "Ubuntu terminal: The command mkdir")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/mkdir-mydockerbuild-english.png) Create new directories with the command mkdir 2. **Liikumine uues kataloogis**: Kasutage käsku `cd`, et liikuda äsja loodud töökataloogis.

```bash
cd mydockerbuild
```

[![Image: Ubuntu terminal: The command cd](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/6/d/csm_cd-mydockerbuild-english_93ecadd291.webp "Ubuntu terminal: The command cd")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/cd-mydockerbuild-english.png) With the help of the cd command, switch to another working directory 3. **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*.

```bash
nano Dockerfile
```

[![Image: Ubuntu terminal: Create text files with Nano](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/2/4/csm_nano-dockerfile-empty_b2b1b6195b.webp "Ubuntu terminal: Create text files with Nano")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/nano-dockerfile-empty.png) The text editor Nano is preinstalled on all Ubuntu versions 4. **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.

```none
FROM docker/whalesay:latest
```

Seni 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*:

```none
RUN apt-get -y update && apt-get install -y fortunes
```

Seejä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:

```none
CMD /usr/games/fortune -a | cowsay
```

Teie Dockerfile peaks välja nägema järgmine:

```none
FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsay
```

Mä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.

[![Image: The text editor Nano in the Ubuntu terminal](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/b/b/csm_nano-dockerfile-full_bd1796f06d.webp "The text editor Nano in the Ubuntu terminal")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/nano-dockerfile-full.png) Control the text editor Nano via the key combinations given in the footer 1. **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\].
2. **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 on `name:tag`.

Käesolevas näites tuleks luua pilt nimega *docker-whale*:

```bash
docker build -t docker-whale .
```

Viimane **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:

```none
Successfully built a8f2048c9ab8
```

[![Image: Ubuntu terminal: Status message during image creation](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/f/6/csm_sudo-docker-build-whale-english_d6b1eb3cf7.webp "Ubuntu terminal: Status message during image creation")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-build-whale-english.png) Docker images are created in multiple layers Teie äsja loodud pilt on teie kohalikult salvestatud piltide ülevaates leitav nime *docker-whale* all.

```bash
sudo docker images
```

[![Image: Ubuntu terminal: Overview of all images](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/3/9/csm_docker-images-new-docker-whale_4a46337253.webp "Ubuntu terminal: Overview of all images")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-images-new-docker-whale.png) The newly created image in the image overview Et käivitada konteiner äsja loodud pildi põhjal, kasuta käsurea käsku `sudo docker run` koos pildi nimega:

```bash
sudo docker run docker-whale
```

Kui 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.

[![Image: Container based on docker-whale: Text output in the terminal](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/1/1/csm_sudo-run-docker-whale-fortunes-english_3bfb9d5385.webp "Container based on docker-whale: Text output in the terminal")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-run-docker-whale-fortunes-english.png) Thanks to fortunes, the ASCII whale now provides witty or wise phrases  Tip Docker-piltide loomise kohta saate veelgi põhjalikumalt lugeda meie eraldi artiklist, mis on pühendatud sellele teemale.

#### 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:

1. **Loo hoidla**: logi Docker Hubisse sisse oma Docker ID ja isikliku parooliga ning loo avalik hoidla nimega *docker-whale*.

[![Image: The Docker hub: Entry form for creating a repository](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/3/3/csm_docker-hub-create-docker-whale-repo_1266f7d9ea.webp "The Docker hub: Entry form for creating a repository")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-create-docker-whale-repo.png) Create a repository for your custom image / Source: hub.docker.com 2. **Määra pildi ID**: Määra oma kohandatud pildi *„docker-whale”* ID käsurea käsu `docker images` abil.

[![Image: Overview of all local images in the Ubuntu terminal](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/5/a/csm_sudo-docker-images-id-english_265f2f9d16.webp "Overview of all local images in the Ubuntu terminal")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-images-id-english.png) The command docker images lists all images that are saved on your system Meie puhul on pildi ID *a8f2048c9ab8*. Seda on vaja järgmises etapis märgistamiseks.

3. **Pildi märgistamine**: Märgista *docker-whale-pilt* käsureaprogrammi `docker tag` abil järgmiselt:

```bash
sudo docker tag [Image-ID][Docker-ID]/[Image-Name]:[TAG]
```

Käesoleva näite puhul on märgistamise käsurea käsk järgmine:

```bash
sudo docker tag a8f2048c9ab8 [Namespace]/docker-whale:latest
```

Saad kontrollida, kas oled oma pildi õigesti märgistanud, kasutades ülevaadet `docker images`. Repositooriumi nimi peaks nüüd sisaldama sinu Docker-ID-d.

[![Image: Ubuntu terminal: Image overview before and after tagging](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/6/e/csm_sudo-docker-tag-docker-whale-english_d2345804e2.webp "Ubuntu terminal: Image overview before and after tagging")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-tag-docker-whale-english.png) Link images with your Docker ID using the command docker tag 4. **Pildi üleslaadimine**: Pildi üleslaadimiseks peate esmalt sisse logima Docker Hubi. Seda saab teha käsuga `docker login`.

```bash
sudo docker login
```

Seejärel palub terminal teil sisestada oma kasutajanimi (Docker ID) ja parool.

[![Image: Log in to the Docker hub via the Ubuntu terminal](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/3/3/csm_sudo-docker-login-english_77fe04ede0.webp "Log in to the Docker hub via the Ubuntu terminal")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-login-english.png) Before you can upload an image to the Docker hub, you first need to log in Kui sisselogimine õnnestus, kasuta käsurea käsku `docker push`, et laadida oma pilt üles äsja loodud hoidlasse.

```bash
sudo docker push [Namespace]/docker-whale
```

Üleslaadimine peaks võtma vaid paar sekundit. Praegune staatus kuvatakse terminalis.

[![Image: Ubuntu terminal: Status message of the image upload](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/c/a/csm_sudo-docker-push-whale-english_44b31ef5fd.webp "Ubuntu terminal: Status message of the image upload")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-push-whale-english.png) After uploading, the image is available under the set tag latest in the Docker hub Logi brauseri kaudu Docker Hubisse sisse, et vaadata üleslaaditud pilti.

[![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 "Docker hub: The repository [Namespace]/docker-whale in the detailed view")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-push-result.png) The latest update of your repository is shown in the detailed view / Source: hub.docker.com Kui soovid üles laadida rohkem kui ühe pildi ühe hoidla kohta, kasuta erinevaid sildid, et pakkuda oma pilte erinevates versioonides. Näiteks:

```none
[Namespace]/docker-whale:latest
[Namespace]/docker-whale:version1
[Namespace]/docker-whale:version2
```

Ülevaade erinevatest pildiversioonidest on leitav Docker Hubi hoidlas vahekaardil „Tags”.

[![Image: Docker hub: The ‘Tags’ tab](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/3/9/csm_docker-hub-multiple-versions-tags_e6c43a478d.webp "Docker hub: The ‘Tags’ tab")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-multiple-versions-tags.png) In the ‘Tags’ tab, you’ll find all versions of an image / Source: hub.docker.com 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.

1. **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.

[![Image: The Image is up to date](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/f/0/csm_sudo-docker-pull-docker-whale-english_84e2e758c4.webp "The Image is up to date")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-pull-docker-whale-english.png) If an image exists locally, the pull command is cancelled 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**.

```bash
sudo docker rmi -f a8f2048c9ab8
```

[![Image: Command docker rmi in combination with the option -f (force)](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/b/f/csm_sudo-docker-rmi-remove-image_75b679b119.webp "Command docker rmi in combination with the option -f (force)")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-rmi-remove-image.png) Use the command docker rmi in combination with the option -f to force a deletion Kuva uuesti ülevaade kõigist kohalikest piltidest:

```bash
sudo docker Images
```

Kustutatud elemendid ei tohiks enam terminali väljundis ilmuda. Lae nüüd repositooriumis olevat pull-käsku kasutades Docker Hubist alla **pildi uus koopia**.

```bash
sudo docker pull [Namespace]/docker-whale
```

[![Image: Ubuntu terminal: Download from the Docker hub](https://www.ionos.com/et-ee/digitalguide/fileadmin/_processed_/4/8/csm_sudo-docker-pull-image-redownload_3dfb6af27f.webp "Ubuntu terminal: Download from the Docker hub")](https://www.ionos.com/et-ee/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-pull-image-redownload.png) The previously published image is successfully downloaded ## Muud Dockeriga seotud teemad ja õpetused

Dockeri maailm on lai ning aja jooksul [on Docker-tööriistadest kujunenud](https://www.ionos.com/et-ee/digitalguide/server/oskusteave/docker-toeoeriistad-konteinerplatvormi-oekosuesteem/) elav [ökosüsteem](https://www.ionos.com/et-ee/digitalguide/server/oskusteave/docker-toeoeriistad-konteinerplatvormi-oekosuesteem/). 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](https://www.ionos.com/et-ee/digitalguide/server/oskusteave/wordpress-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](https://www.ionos.com/et-ee/digitalguide/server/oskusteave/dockeri-alternatiivid-luehidalt/). Lisaks on meil palju artikleid, milles võrreldakse Dockeri teiste platvormidega:

- Kubernetes vs. Docker
- Openshift vs. Docker
- Podman vs. Docker


This is a markdown version of: [https://www.ionos.com/et-ee/digitalguide/server/seadistused/dockeri-juhend-paigaldamine-ja-esimesed-sammud/](https://www.ionos.com/et-ee/digitalguide/server/seadistused/dockeri-juhend-paigaldamine-ja-esimesed-sammud/) for AI/LLM consumption.