Docker paigaldamine ja kasutamine Ubuntu-s: Samm-sammult juhend algajatele ja edasijõudnutele

目次

1. Mis on Docker? Seos Ubuntu-ga

Docker on virtualiseerimistehnoloogia, mis pakendab rakenduse käituskeskkonna konteineriteks, võimaldades rakendusi identse keskkonnaga käivitada igas serveris või arvutis. Erinevalt traditsioonilistest virtuaalmasinatest käivitab Docker konteinerid otse host-operatsioonisüsteemi peal, pakkudes seetõttu kergemat ja kiiremat keskkonda.

Eriti Ubuntu ja teised Linuxi-põhised süsteemid sobivad Dockeriga väga hästi. Seda kasutavad nii ettevõtted kui ka üksikarendajad ja serverihaldurid. Põhjuseks on Ubuntu avatud lähtekood, laialdane kasutamine serverites, mugav paketihaldus ja tugev ametlik tugi.

Dockeriga saad lahti probleemist “see töötab ainult ühes keskkonnas”. Kasutatagu seda arendusarvutis või tootmisserveris – Docker-konteinerid võimaldavad kiiresti taastada identse keskkonna kõikjal. Ubuntu on ka Dockeris ametlikult toetatud, nii et paigaldusjuhiseid ja infot leidub rohkesti.

Selles artiklis selgitame samm-sammult, kuidas paigaldada Docker Ubuntu-le ja käivitada Ubuntu konteinerit. Sisu sobib nii neile, kes kasutavad Dockerit esimest korda, kui ka kogenumatele, kes soovivad põhitõed üle korrata.

2. Vajalikud tingimused ja eeltingimused

Et kasutada Dockerit Ubuntu peal, pead täitma mõned eeltingimused ja tegema ettevalmistusi. Sujuva paigalduse ja käivitamise nimel toome siin välja vajalikud keskkonnad ja kontrollpunktid.

Ubuntu versioonist

Dockerit soovitatakse kasutada Ubuntu 18.04 LTS või uuemate versioonidega. Eriti hästi on toetatud LTS-versioonid, näiteks “Ubuntu 20.04 LTS”, “Ubuntu 22.04 LTS” ja “Ubuntu 24.04 LTS”. Vanemate versioonidega võivad tekkida probleemid vajalike pakettide või sõltuvustega, seega kasuta võimalusel uusimat LTS-versiooni.

Süsteeminõuded

Docker ise on kerge konteinertehnoloogia, kuid mitme konteineri samaaegsel kasutamisel või arenduseks vajab süsteem siiski piisavalt ressursse. Soovitame vähemalt järgmisi nõudeid:

  • 64-bitine Ubuntu (32-bit pole toetatud)
  • CPU: soovitatavalt vähemalt 2 tuuma
  • Mälu: vähemalt 2GB (4GB või rohkem on parem)
  • Vaba kettaruumi: minimaalselt 10GB

Internetiühendus

Dockeri paigalduseks ja piltide allalaadimiseks on vajalik internetiühendus. Eriti esmakordsel kasutamisel võib olla vaja palju andmeid alla laadida, seega kasuta stabiilset ühendust.

Kasutajaõigused

Dockeri paigaldamiseks ja haldamiseks on vaja “sudo” ehk administraatoriõigusi. Kui sul neid pole, küsi need administraatorilt või lase endale ajutiselt õigused anda.

Vana Dockeri paketi eemaldamine

Kui oled varem käsitsi installinud “docker” või “docker.io” pakette, siis eemaldage need, et vältida konflikte ja tõrkeid.

sudo apt-get remove docker docker-engine docker.io containerd runc

Nii ennetad probleeme, mis võivad tekkida vanade pakettide koos kasutamisel.

Kokkuvõte

Enne edasiste paigaldus- ja seadistusetappidega alustamist veendu, et kõik tingimused on täidetud. Kui ettevalmistused on tehtud, on Dockeri paigaldus väga sujuv.

3. Docker Engine’i paigaldamine ja seadistamine

Järgnevalt selgitame, kuidas paigaldada Ubuntu-le Docker Engine ja teha esmased seadistused. Kasutades ametlikku repositooriumi, saad paigaldada kõige uuema ja stabiilse Dockeri.

Ametliku repositooriumi lisamine ja ettevalmistused

Esmalt lisa Dockeri ametlik repositoorium apt’ile. Kõik sammud toimuvad terminalis. Järgi järgmisi samme:

  1. Vajalike pakettide paigaldamine
sudo apt-get update
sudo apt-get install 
    ca-certificates 
    curl 
    gnupg 
    lsb-release
  1. GPG-võtme lisamine
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  1. Dockeri repositooriumi lisamine
echo 
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu 
  $(lsb_release -cs) stable" | 
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Dockeri Engine’i paigaldamine

Pärast repositooriumi lisamist installi Dockeri Engine.

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

Pärast paigaldamist kontrolli Dockeri versiooni järgmise käsuga:

docker --version

Näiteks kui ilmub “Docker version 25.0.3, build 1234567”, siis paigaldus õnnestus.

Docker Desktopist (täiendus)

Ubuntu puhul kasutatakse peamiselt “Docker Engine”-it, kuid viimasel ajal on saadaval ka “Docker Desktop for Linux”. Kui vajad graafilist haldust, võib see sobida. Kuid CLI (käsurea) jaoks piisab Docker Engine’ist.

Kui esineb probleeme

Kui tekib viga nagu “paketti ei leitud”, siis kontrolli repositooriumi seadistust või GPG-võtme lisamist. Kui süsteemis on vanad Dockeri paketid, võivad tekkida konfliktid – vaata 2. peatükki ja eemalda need.

4. Dockeri käskude kasutamine ilma sudo-ta

Vaikimisi saab Dockerit kasutada ainult administraatori õigustega (sudo). Iga kord sudo kirjutamine on tülikas ning vea korral võib süsteemi kogemata muuta.
Soovitatav on lisada kasutaja “docker” gruppi, et Dockerit saaks turvaliselt ja mugavalt ilma sudo-ta kasutada.

Kasutaja lisamine docker-gruppi

  1. Kasutaja lisamine docker-gruppi
    Järgmine käsk lisab aktiivse kasutaja docker-gruppi.
    ($USER asendub automaatselt jooksva kasutajanimega)
sudo usermod -aG docker $USER
  1. Muudatuste rakendamine
    Gruppi lisamise jõustumiseks logi korraks välja ja uuesti sisse.

Võid kasutada kohe ka järgmist käsku:

newgrp docker
  1. Kontroll
    Kui “docker version” töötab ilma sudo-ta, siis on kõik korras.
docker version

Täiendus: turvalisus

docker-gruppi lisamine annab kasutajale laialdased õigused. Mitmekasutaja süsteemides ole ettevaatlik ja järgi asutuse poliitikat. Arendus- või kodukeskkonnas pole tavaliselt ohtu.

Pärast seda on Dockeri kasutamine oluliselt lihtsam.

5. Dockeri deemoni käivitamine ja automaatkäivitus

Docker töötab taustal “daemonina” (dockerd).
Vaikimisi käivitub Docker automaatselt, kuid vajadusel saad seda käsitsi alustada, peatada või muuta käivitussätteid. Selgitame põhikäske Ubuntu jaoks.

Dockeri käivitamine, peatamine, taaskäivitamine

Kasuta “systemctl” käsku järgmiselt:

  • Käivitamine
sudo systemctl start docker
  • Peatamine
sudo systemctl stop docker
  • Taaskäivitamine
sudo systemctl restart docker
  • Olekukontroll
sudo systemctl status docker

See käsk näitab Dockeri hetkeolekut ja võimalikke vigu.

Automaatkäivituse seadmine (bootimisel lubamine/keelamine)

Ubuntu võimaldab seadistada, et Docker käivituks automaatselt serveri taaskäivitamisel.
Paigalduse käigus on see tavaliselt juba lubatud, kuid saad seda ise muuta.

  • Automaatkäivitus lubatud
sudo systemctl enable docker
  • Automaatkäivitus keelatud
sudo systemctl disable docker

Arendus- või testkeskkonnas võid automaatkäivituse välja lülitada.

Täiendus: service käsk ka toetatud

Vanematel Ubuntu versioonidel või harjumuspärastel kasutajatel toimib ka service docker start. Kuid soovitatav on kasutada systemctl-i.

Vigade kontrollpunktid

  • Kui deemon ei käivitu, kontrolli sudo systemctl status docker abil vigu.
  • Vead võivad tekkida puuduvate sõltuvuspakettide või tuumaseadete tõttu.
  • Logisid näeb käsuga journalctl -u docker.

Sellega on Dockeri deemonihaldus selge.

6. Ubuntu konteineri käivitamine

Nüüd selgitame, kuidas käivitada Ubuntu konteinerit Ubuntu süsteemis.
Pärast Dockeri paigaldamist pole ühtegi konteinerit veel töös. Pead alla laadima soovitud konteineripildi ja selle käivitama. Näites kasutame Ubuntu ametlikku pilti.

1. Ubuntu pildi allalaadimine (pull)

Tõmba Ubuntu pilt Docker Hubist. Võid määrata versiooni (nt “22.04”), kuid vaikimisi tõmmatakse kõige uuem (latest).

docker pull ubuntu:22.04

Või lihtsalt

docker pull ubuntu

Soovitame alati määrata konkreetse versiooni.

2. Ubuntu konteineri käivitamine (run)

Käivita konteiner allalaaditud pildi põhjal. Lihtsaim käsk on:

docker run -it --name myubuntu ubuntu:22.04 /bin/bash
  • -it: interaktiivne režiim
  • --name myubuntu: nime andmine konteinerile (valikuline)
  • ubuntu:22.04: kasutatav pilt
  • /bin/bash: käivitamisel avatakse bash shell

Pärast käsku saad Ubuntu konteinerisse bash shelli kaudu sisse.

3. Taustal käivitamine

Serverikasutuseks või pidevaks tööks kasuta -d valikut:

docker run -d --name myubuntu ubuntu:22.04 tail -f /dev/null

See käsk jätab konteineri “aktiivsesse” olekusse.

4. Konteineri peatamine ja taaskäivitamine

  • Konteineri peatamiseks
docker stop myubuntu
  • Taaskäivitamiseks
docker start myubuntu

5. Olekukontroll

  • Käimasolevate konteinerite nimekiri
docker ps
  • Kõik konteinerid (sh peatatud)
docker ps -a

Kokkuvõte

Selles peatükis selgitasime Ubuntu pildi allalaadimist, konteineri käivitamist ja põhilist haldamist. Praktikas katsetades saad Dockeri mugavusest kiiresti aimu.

7. Konteinerite põhikäskude kokkuvõte

Dockeri suur eelis on konteinerite lihtne loomine, peatamine ja eemaldamine.
Selles peatükis toome välja Ubuntu konteinerite haldamiseks vajaliku baaskäskude komplekti.
Kõik need on igapäevatöös väga olulised – kasuta neid korduvalt, et harjuda.

Konteinerite nimekiri

  • Käimasolevad konteinerid
docker ps
  • Kõik konteinerid (sh peatatud)
docker ps -a

Konteinerite käivitamine, peatamine, taaskäivitamine

  • Käivita konteiner
docker start [konteineri_nimi_või_ID]
  • Peata konteiner
docker stop [konteineri_nimi_või_ID]
  • Taaskäivita konteiner
docker restart [konteineri_nimi_või_ID]

Ühendamine ja töötamine konteineris

  • Käivita käsk töötavas konteineris (exec)
docker exec -it [konteineri_nimi_või_ID] /bin/bash

Konteineri kustutamine

  • Kustuta konteiner
docker rm [konteineri_nimi_või_ID]
  • Sundkustutamine (ka töötav konteiner)
docker rm -f [konteineri_nimi_või_ID]

Piltide kustutamine

  • Kasutamata piltide nimekiri
docker images
  • Pildi kustutamine
docker rmi [pildi_nimi_või_ID]

Muud kasulikud käsud

  • Logide vaatamine
docker logs [konteineri_nimi_või_ID]
  • Kettakasutuse vaatamine
docker system df

Olulised punktid

  • Olulised on docker ps, docker start, docker stop, docker exec jne – need võimaldavad igapäevast haldust ja probleemide lahendamist.
  • Eemalda regulaarselt mittevajalikud konteinerid ja pildid, et hoida kettaruumi kontrolli all.

8. Tõrkeotsing / KKK

Dockerit ja Ubuntu konteinereid kasutades võib ette tulla ootamatuid vigu. Siin peatükis selgitame levinumaid “ubuntu docker käivitamine” probleeme ja lahendusi.

Levinud vead ja lahendused

1. “Cannot connect to the Docker daemon” viga

See viga tekib, kui Dockeri deemon (dockerd) pole käivitatud või puuduvad õigused.

  • Lahendus:
  1. Kontrolli kas Docker deemon töötab
    sudo systemctl status docker
  2. Käivita deemon vajadusel
    sudo systemctl start docker
  3. Kui vaja, kasuta sudo või lisa end docker-gruppi nagu peatükis 4 selgitatud.

2. Vanad Dockeri paketid ja konfliktid

Kui on varem paigaldatud “docker”, “docker.io” või “docker-engine”, võib tekkida konflikte.

  • Lahendus:
    Eemalda vanad paketid:
  sudo apt-get remove docker docker-engine docker.io containerd runc

3. Konteiner ei käivitu

Viga võib olla vales pildinimes või käsus, samuti ressursside puuduses.

  • Lahendus:
  • Kontrolli käsus kirjapandut
  • Kasuta docker images, et vaadata, kas pilt eksisteerib
  • Kontrolli serveri vaba kettaruumi ja mälu

4. Pordikonfliktid

Kui konteiner kasutab juba hõivatud porti, tekib viga.

  • Lahendus:
  • Määra teine pordinumber
  • Peata olemasolev protsess

5. Rootless režiimi tähelepanekud

Viimastel aastatel toetab Docker ka ilma root-õigusteta kasutamist (“rootless”), kuid on piiranguid – vaata ametlikku dokumentatsiooni.

Praktiline kontrollnimekiri

  • Kasuta docker ps -a konteinerite oleku vaatamiseks
  • docker logs [konteineri_nimi] annab vea detaile
  • journalctl -u docker näitab Dockeri süsteemiloge

Kokkuvõte

Enamus Dockeri vigu on seotud õiguste, versioonikonfliktide või seadistuste vigadega.
Loe veateated hoolikalt läbi, vajadusel paigalda Docker uuesti või muuda seadistusi.

9. Kokkuvõte ja järgmised sammud

Selles artiklis selgitasime põhjalikult, kuidas paigaldada Docker Ubuntu-le ja käivitada Ubuntu konteinerit.
Võtame kokku põhipunktid ja anname mõned vihjed edasiseks kasutuseks.

Artikli kokkuvõte

  • Dockeri ülevaade ja eelised
    Tugev ühilduvus Ubuntu-ga, kiire identse keskkonna loomine kõikjal.
  • Eeltingimused ja ettevalmistused
    Ubuntu versioon, riistvaranõuded, õigused, vanade pakettide eemaldamine.
  • Dockeri Engine’i paigaldusmeetod
    Ametliku repositooriumi kasutamine turvaliseks ja värskeks Dockeri paigalduseks.
  • Kasutamine ilma sudo-ta, deemonihaldus
    Kasutaja lisamine gruppi, systemctl abil automaatkäivitamine ja peatamine.
  • Ubuntu konteineri käivitamine ja põhilised käsud
    Konteinerite loomine, haldus ja igapäevased toimingud.
  • Levinud probleemid ja lahendused
    Õiguste probleemid, versioonikonfliktid, seadistusvead – kõik igapäevases töös.

Järgmised sammud

Dockeri valdamise esimene samm on konteinerite käivitamine ja põhikäskude õppimine. Kui see on selge, proovi ka edasijõudnumaid kasutusviise.

  • Oma Dockerfile põhine konteineri loomine
    Tee endale sobiv pilt, mitte ainult valmiskujul piltide kasutamine.
  • Mitme konteineri haldus Docker Compose-ga
    Näiteks Web+DB teenuste käivitamine ja haldus korraga.
  • Mahud ja võrgufunktsioonid
    Andmete säilitamine, konteineritevaheline suhtlus.
  • Kubernetes ja muu orkestrimine
    Suurem skaleerimine, automaatjuhtimine – järgmine tase pilves.

Lõpetuseks

Docker on kasulik mitte ainult arendus- ja testkeskkonnas, vaid ka serverihalduses, teenuste avaldamisel ning õppimiseks.
Soovitame julgelt proovida – Docker on võimas ja paindlik. Kui tekib küsimusi, uuri ametlikku dokumentatsiooni ja osale kogukondades!

10. KKK (Korduma Kippuvad Küsimused)

Selles peatükis toome välja “ubuntu docker käivitamine” ja artikli teemade kohta kõige sagedamini küsitud küsimused ning vastused.
Keskendume algajatele ning ka igapäevatöö levinud kahtlustele.

K1. Kas Docker töötab nii Ubuntu Desktopil kui ka Ubuntu Serveril?

Vastus:
Jah, Docker töötab mõlemal. Käsud ja juhised on sisuliselt samad, kuid serveriversioonil puuduvad üleliigsed GUI komponendid ning seetõttu sobib see paremini tootmiskeskkonda.

K2. Kas Ubuntu-s on vaja Docker Desktop-i?

Vastus:
Ei, Ubuntu puhul piisab ainult Docker Engine’ist. Docker Desktop on graafiline haldustööriist, kuid Linuxis on CLI sagedamini kasutusel ja vähem tõrkeid. Kui tahad GUI-d, võid siiski proovida Docker Desktopi.

K3. Mis on rootless režiim?

Vastus:
Rootless-režiim tähendab Dockeri käitamist ilma administraatoriõigusteta. See parandab turvalisust ja sobib mitme kasutajaga süsteemidele, kuid kõiki funktsioone ei pruugi toetada. Vali vastavalt vajadusele.

K4. Kuidas teha konteineris andmete püsisalvestust?

Vastus:
Selleks kasutatakse mahte (“volumes”) või bind-mount-i, et konteineri kustutamisel andmed alles jääksid.

Näide:

docker run -v /host/path:/container/path ubuntu:22.04

Nii seotakse hosti kaust konteineri kaustaga.

K5. Kuidas seadistada konteinerite või Dockeri deemonite automaatkäivitust?

Vastus:
Dockeri deemonit saab automaatselt käivitada käsuga sudo systemctl enable docker.
Kindla konteineri automaatse käivituse jaoks kasuta --restart=unless-stopped valikut.

Näide:

docker run --restart=unless-stopped -d --name myubuntu ubuntu:22.04 tail -f /dev/null

K6. Kas Ubuntu peal saab käivitada ka teiste OS-ide Dockeri pilte?

Vastus:
Jah, kui pildid on sama CPU-arhitektuuriga Linuxile. Windowsi või teise arhitektuuri pildid ei tööta.

K7. Kuidas hallata liiga palju pilte või konteinereid?

Vastus:
Kustuta tarbetud konteinerid või pildid käskudega docker rm või docker rmi. Mitme objekti korraga eemaldamiseks kasuta:

  • Kõik peatatud konteinerid
  docker container prune
  • Kasutamata pildid
  docker image prune
  • Kõik mittevajalikud andmed
  docker system prune

K8. Kust leida tuge või infot probleemide korral?

Vastus:
Dockeri ametlik dokumentatsioon (https://docs.docker.com/) ning rahvusvahelised kogukonnad nagu Stack Overflow. Veateadete otsing on samuti väga efektiivne.

K9. Kuidas õppida Docker Compose-i ja mitme konteineri haldust?

Vastus:
Docker Compose võimaldab mitut konteinerit koos hallata. Õppimiseks uuri ametlikku dokumentatsiooni, õpituutoreid ning proovi näidis “docker-compose.yml” faile.

K10. Kas Docker töötab ka Ubuntu uusima versiooniga (nt 24.04)?

Vastus:
Jah, Docker toetab ametlikult ka uusimaid LTS versioone. Kasutades värskeid repositooriume ja pakette saad alati stabiilse lahenduse.

侍エンジニア塾