Praktikum 15 - Docker konteinerid
Enne tänase praktikumi juurde asumist lahendage kindlasti ära Praktikum 14.
Olete kunagi kuulnud kedagi ütlemas, see töötas minu arvutis. Olete te kunagi näinud tüütult palju vaeva, et saada enda arvutis käima arenduskeskkond mingile projektile. Olete kunagi teinud serveris mingeid muudatusi nii, et nendest muudatustest enam tagasi liikuda ei saa. Tänase praktikumi eesmärk on need probleemid elimineerida või vähemalt selliste probleemide hulka võimalikult palju vähendada.
Tänase praktikumi teema on Docker, Visual Studio Code, Visual Studio Code devcontainers, ja Azures Container Instances. Vastavaid teemasid käsitleti põhjalikult kursuse loengutes, seega juhendis me teooriateemasid pigem ei kajasta ning vajadusel otsige ise internetist täiendavat materjali ja seletusi kui midagi jääb endiselt segaseks (loomulikult võite küsida ka aine õppejõududelt, kui nad oskavad vastata).
Azure pilvemasina suuruse muutmine
Tänases praktikumis vajame täiendavaid ressursse Azure pilvemasinalt. Nagu virtualiseerimise loengus mainiti, on üheks virtuaalmasinate (eriti pilvemasinate) eripäraks võimalus neile ajutiselt anda täiendavaid ressursse. Selleks külastage Azure pilve Portaali kodu https://portal.azure.com ja muutke Azure pilvemasina perenimi-vm
riistvara profiili D2s_v3
asemel D4s_v3
-ks. See võimaldab meil mitmeid tänase praktikumi tegevusi eeldatavasti kiiremini sooritada ning vähendab võimalikke tekkivaid erroreid.
Järgnevalt lülitage enda Azure pilvemasin sisse Start
ja ühendage ennast RDP abil Azure Windows 11 pilvemasinaga. Valdav enamik tänasest praktikumist toimub jällegi Azure pilvemasinas.
Installime Visual Studio Code
Järgnevalt paigaldame Visual Studio Code
, mida kasutame tarkvaraarenduse näidiskeskkonnana.
- Minge leheküljele https://code.visualstudio.com/ ja laadige sealt alla
Visual Studio Code Windows 11 System Installer x64
süsteemi jaoks. - Paigaldage Visual Sudio Code Azure pilvemasinasse. (Oodake kuni paigaldus on lõpule jõudnud enne järgmise sammu tegemist).
- Paigaldage Azure pilvemasinasse Visual Studio Code Remote Development Extension Pack. Seda saate teha Visual Studio Code
Extensions
alamlehelt või lingilt https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack - Pärast edukat paigaldust sulgege
Visual Studio Code
ja kõikWSL
aknad. - Avage WSL ja kloonige endale WSLis kodukausta repo https://github.com/AndresNamm/dockertest.git
- Mine kloonitud Githubi kausta
cd dockertest
- Sisestage
code .
Peaksite saame veateate ERROR: Failed to download the VS Code server. 'wget' not installed. - Paigaldage WSLi soovitatud puuduolev moodul
sudo apt-get install wget
- Proovige uuesti
code .
. Peaks avanemaVisual Studio Code
must aken. VajutageDOCKERTEST [WSL:DEBIAN]
ja nõustuge hoiatusegaYES, I trust the authors
- Avage fail
README.md
ja kirjutage sinna kolmandale reale enda nimi. SalvestageREADME.md
- Sulgege
Visual Studio Code
- Kontrollige
WSLi
käsurealdockertest
repositooriumi kaustas, et failREADME.md
sisaldab teie nime.
Docker konteinerite loomine ja käivitamine
- Paigaldage Docker järgmise juhendi järgi: https://docs.docker.com/desktop/install/windows-install/
- Valige
Use WSL 2 backend instead of Hyper-V
- Paigaldus võtab 5-15 minutit aega. Varuge kannatust.
- Kuni ootate soovitame lugeda dockeri kohta lähemalt siit: https://www.guru99.com/docker-tutorial.html
- Pärast paigaldust tehke Azure virtuaalmasinale taaskäivitus.
- Valige
- Käivitage
Docker Desktop
Windowsi stardimenüüst-> Nõustuge tingimustega.
Testime Dockerit
- Avage nüüd uuesti WSLi aken
- Sisestage käsk
docker ps docker images
- PS, kui saate
Got Permission Denied while trying to connect to the docker daemon...
, siis sulgege oma Ubuntu/WSL terminal ja avage see uuesti. Vajadusel tehke kogu arvutile restart.
- PS, kui saate
- Nüüd sisestage käsk
docker run -d -p 80:80 docker/getting-started
- Kontrollige jooksvaid dockeri konteinereid käsuga
docker ps
- Kontrollige oma alla laetud dockeri image'id
docker images
- Edasi minge aadressile http://localhost/tutorial/ - seal asub teie käivitatud Docker image
- Järgige nüüd sealt avanenud juhendit (tutorialit) ning tehke läbi osad
Getting Started
,Our Application
,Updating our App
,Sharing our app
, "Persisting our DB"- Järgnevalt paneme iga alamosa kohta ka mõned õppejõu vihjed ja soovitused kuidas Dockeri juhendit / harjutusi täita.
Our application
: peate esmalt alla laadimaapp.zip
faili. Seda on soovitatav teha Azure Windows 11 veebilehitsejast, kust juhendit näete. Edasi on vaja seeapp.zip
fail saada WSLi. Selleks on mitmeid variante kuid õppejõud soovitavad kasutada WSLi kodukasutas käskucp /mnt/c/Users/perenimi-admin/Downloads/app.zip .
- Nüüd on vaja ZIP fail lahti pakkida, liikuda lahti pakitud failide kasuta ja seal Visual studio code käivitada
sudo apt install unzip unzip app.zip cd app/ code .
- Muutke avanenud
Visual Studio code
aknasapp [WSL:DEBIAN]
->src
->static
->index.html
failistitle
rida nii et see sisaldaks teieperenime
. - Edasi järgige
Our application
juhendit kuni lõpuni, mis võiks olla piisava detailsusega. Updating our App
muutke nii, et muudetav rida sisaldaks kuvatava teksti alguses teieeesnimele
.
- Ülesanne 1: Esitage ekraanivaade
Dockeri näidis ToDo rakendusest
, kus veebilehe pealkiri sisaldab teieperenime
ja hoiatusteadet, et pole ühtegi ToDo kirjet teieeesnime
- Edasi vaatame
Sharing our app
.- Looge endale
Docker Hub
kasutaja või kasutage olemasolevat. - Järgige juhendit
enda nimelise custom
dockeri konteineri ülesaadimiseks. Play with Docker
keskkonnas saad enda värskelt loodudpublic
konteinerit katsetada.
- Looge endale
- Tehke läbi ka
Persisting our DB
. - Ülesanne 2: Tehke ekraanivaade
Persisting our DB
viimase harjutusedocker volume inspect todo-db
WSLi käsureal nii, et teie nimi oleks käsureal nähtav.
Azure Container Instances
- Mäletatavasti tegite endale eelmises praktikumis Azure konto. Tänases praktikumis kasutame seda jälle.
- Selgitage välja oma Ülikooli Subscription ID selle juhendi järgi https://learn.microsoft.com/en-us/azure/azure-portal/get-subscription-tenant-id
- Eelnevalt tuleb teil endal
resource group
luua. Kasutame selleks azure cli-d (Command Line Interface). Selleks, et seda kasutada, tuleb ta WSLi installida selle juhendi järgi. https://learn.microsoft.com/en-us/cli/azure/install-azure-cli-linux?source=recommendations&pivots=aptcurl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
käsk ei tee esmapilgul midagi, sest kui proovime käskucurl -sL https://aka.ms/InstallAzureCLIDeb
saame veateate, etcurl
on puudu. Paigaldame selle käsugasudo apt install curl
ja proovime Azure CLI paigalduse käsku uuesti.
- Kui olete endal Azure CLI installinud, siis kõigepealt logige oma ülikooli kontoga enda Azure-sse sisse. Avaneb prompt, kus teil tuleb oma Azure kontoga sisse logida.
az login
- Valige endale active Azure Subscription mille te enne üles otsisite.
AZURE_SUBSCRIPTION="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" az account set --subscription $AZURE_SUBSCRIPTION
- Pärast sisselogimist saate endal luua uue resource groupi.
az group create --location norwayeast --name <perenimi>-ci
- Logi dockeriga Azure sisse
docker login azure
- Peate käsitsi minema viidatud aadressile Azure Windows 11 veebilehitsejas ja sisestama autentimise koodi. Logige seal oma Azure kontoga sisse.
- Hetkel ignoreerime hoiatust, et
docker compose
integratsioon ECS-i ja ACI-ga lõpetab töö pärast novembrit 2023.
- Hetkel ignoreerime hoiatust, et
- Nüüd saate endal Dockeri konteksti luua.
RESOURCE_GROUP=<perenimi>-ci docker context create aci --subscription-id $AZURE_SUBSCRIPTION --resource-group $RESOURCE_GROUP --location norwayeast <perenimi>-aci
- Jooksuta nüüd test dockeri imaget Azure pilves
docker context use <perenimi>-aci docker run -p 3000:3000 registry.hub.docker.com/alop372/getting-started
- See samm võtab nüüd aega. Ärge seda praegu pooleli jätke ega katkestage.
- Sisestage
docker ps
mis aadressi näetePORTS
tulbas? - Külastage eelpool viidatud aadressi ja leidke õppejõu dockeri konteineri versioon sealt.
- Sisestage
- Peatage ja kustutage eelnev proovikonteiner.
docker stop <CONATINER ID> docker rm <CONATINER ID>
- Korrage nüüd
docker run -d -p 3000:3000 registry.hub.docker.com/.../getting-started
käsku uuesti, kus...
asemel on teie praktikumi varasemas punktisSharing our app
loodud teie nime sisaldavToDo
rakendus.
Ülesanne 3: Esitage ekraanivaade, kus Azure pilves jookseb teie harjutuse ToDo
konteiner rakendus, mis sisaldab teie nime.
- Proovige dockeri konteiner üles leida ka Azure veebiportaalist.
- Vihje: otsige
perenimi-ci
nimeliseresource group
alt.
- Vihje: otsige
- Nüüd uuesti WSL käsureal sisestage
docker stop <CONATINER ID> docker rm <CONATINER ID>
- Kontrollige nüüd Azure veebiportaalist, kas Dockeri konteiner on seal ikka alles või on sealt eemaldatud?
- Vahetage nüüd dockeri kontekst tagasi enda masina Dockeri konteksti peale peale.
docker context list docker context use default
Pilvetehnoloogia kulude analüüs
Azure ja teised pilveteenused peavad väga täpset kasutuse ja kulude arvestust kasutatud ressurside üle. Leidke Azure keskkonnast üles, kui palju raha (EUR
, USD
) millisele ressursile kulus praktikumide 14 ja 15 sooritamisel. IT professionaalil on vaja tihti hinnata hinnata pilvelahenduse kasutamise kulu võrreldes kohaliku lahendusega.
- Ülesanne 4a: Esitage ekraanivaade (või mitu) Azure keskkonnast, kus on näha palju eurosid ja millistele alamressurssidele kulus Azure teenuste kasutamiseks praktikumide 14 ja 15 sooritamiseks.
- Ülesanne 4b: Esitage arvutuskäik ja rahaline hinnang kui palju maksaks Windows 11 ja Ubuntu virtuaalmasinate hoiustamine ja jooksutamine Azure pilves 4 kuulise operatsioonisüsteemid kursuse raames? Teisisõnu, kui Virtualbox asemel oleksime kõik praktikumid sooritanud Azure või sarnasel pilveteenusel, siis kui palju oleks see ühe tudengi kohta maksma läinud?
- Võite eeldada, et kasutame sarnaste riistvaraliste parameetritega virtuaalmasinaid nagu kasutasime operatsioonisüsteemid kursuse raames.
Ressurside vabastamine
- Kui teil on praktikumid 14 ja 15 edukalt lahendatud, siis vabastage ka kõik ressursid.
- Minge nüüd https://portal.azure.com. Otsige oma resource grupid üles ja eemaldage kõik loodud ressursid.
- Valige kõik ressursid. Ning eemaldage need.
- Vajutage mõlema resource groupi puhul
Delete Resource Group
. - Soovitatav on ka jaanuaris pärast aine eksamit
Virtualbox
virtuaalmasinad eemalda, et vabastaksite enda arvutis aine jaoks kasutusel olnud kohaliku andmemahu. - Aine õppejõud soovitavad kõigile
operatsioonisüsteemid
aine kuulajaile osaleda jätkukursusena kevadsemestril ainesLTAT.06.002 Andmeturve
, millel on erinev loengupidaTarmo Oja
, kuid praktikume koostan ja ainet korraldan peamiselt minaAlo Peets
.- Kui operatsioonisüteemid kursusel õppisime peamiselt kuidas arvutis X tegevusi teha, siis andmeturve keskendub erinevate IT süsteemide tegevuste Y turvalisele kasutuse õpetamisele ja küberturvalisuse nüansside tutvustamisele. Ehk jätkame sealt, kus operatsioonisüsteemid kursusega oskustega lõpetasime nii, et kindlasti aitab andmeturve kursus veelgi teie arvutikasutuse oskusi kinnistada ja parandada.
- Hajussüsteemide õppetoolist soovitaksin bakalaureusele veel:
LTAT.06.008 Pilvetehnoloogia
kursust ja pärast andmeturve läbimist kaLTAT.06.003 Süsteemihaldus
.
Esitada
- Ülesanne 1: Esitage ekraanivaade
Dockeri näidis ToDo rakendusest
, kus veebilehe pealkiri sisaldab teieperenime
ja hoiatusteadet, et pole ühtegi ToDo kirjet teieeesnimele
. - Ülesanne 2: Tehke ekraanivaade
Persisting our DB
viimase harjutusedocker volume inspect todo-db
WSLi käsureal nii et teie nimi oleks käsureal nähtav. - Ülesanne 3: Esitage ekraanivaade kus, Azure pilves jookseb teie harjutuse
ToDo
konteiner rakendus, mis sisaldab teie nime. - Ülesanne 4a: Esitage ekraanivaade (või mitu) Azure keskkonnast, kus on näha palju eurosid ja millistele alamressurssidele kulus Azure teenuste kasutamiseks praktikumide 14 ja 15 sooritamiseks.
- Ülesanne 4b: Esitage arvutuskäik ja rahaline hinnang kui palju maksaks Windows 11 ja Ubuntu virtuaalmasinate hoiustamine ja jooksutamine Azure pilves 4 kuulise operatsioonisüsteemid kursuse raames? Teisisõnu, kui Virtualbox asemel oleksime kõik praktikumid sooritanud Azure või sarnasel pilveteenusel, siis kui palju oleks see ühe tudengi kohta maksma läinud?
Kui teil on Github/Gitlab valmis, siis lisage link esitusele moodle keskkonda, kust me teie lahenduse leiame. Moodle esitamise otselink: https://moodle.ut.ee/mod/assign/view.php?id=1230396
(Tähtaeg 2 nädalat)