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 x64sü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
Extensionsalamlehelt või lingilt https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack - Pärast edukat paigaldust sulgege
Visual Studio Codeja kõikWSLaknad. - 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 Codemust aken. VajutageDOCKERTEST [WSL:DEBIAN]ja nõustuge hoiatusegaYES, I trust the authors - Avage fail
README.mdja kirjutage sinna kolmandale reale enda nimi. SalvestageREADME.md - Sulgege
Visual Studio Code - Kontrollige
WSLikäsurealdockertestrepositooriumi kaustas, et failREADME.mdsisaldab 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 DesktopWindowsi 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.zipfaili. Seda on soovitatav teha Azure Windows 11 veebilehitsejast, kust juhendit näete. Edasi on vaja seeapp.zipfail 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 codeaknasapp [WSL:DEBIAN]->src->static->index.htmlfailistitlerida nii et see sisaldaks teieperenime.
- Edasi järgige
Our applicationjuhendit kuni lõpuni, mis võiks olla piisava detailsusega. Updating our Appmuutke nii, et muudetav rida sisaldaks kuvatava teksti alguses teieeesnimele.
- Ülesanne 1: Esitage ekraanivaade
Dockeri näidis ToDo rakendusest, kus veebilehe pealkiri sisaldab teieperenimeja hoiatusteadet, et pole ühtegi ToDo kirjet teieeesnime
- Edasi vaatame
Sharing our app.- Looge endale
Docker Hubkasutaja või kasutage olemasolevat. - Järgige juhendit
enda nimelise customdockeri konteineri ülesaadimiseks. Play with Dockerkeskkonnas saad enda värskelt loodudpublickonteinerit katsetada.
- Looge endale
- Tehke läbi ka
Persisting our DB. - Ülesanne 2: Tehke ekraanivaade
Persisting our DBviimase harjutusedocker volume inspect todo-dbWSLi 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 groupluua. 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 bashkäsk ei tee esmapilgul midagi, sest kui proovime käskucurl -sL https://aka.ms/InstallAzureCLIDebsaame veateate, etcurlon puudu. Paigaldame selle käsugasudo apt install curlja 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 composeintegratsioon 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 psmis aadressi näetePORTStulbas? - 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-startedkäsku uuesti, kus...asemel on teie praktikumi varasemas punktisSharing our apploodud teie nime sisaldavToDorakendus.
Ü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-cinimeliseresource groupalt.
- 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
Virtualboxvirtuaalmasinad eemalda, et vabastaksite enda arvutis aine jaoks kasutusel olnud kohaliku andmemahu. - Aine õppejõud soovitavad kõigile
operatsioonisüsteemidaine 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 Pilvetehnoloogiakursust 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 teieperenimeja hoiatusteadet, et pole ühtegi ToDo kirjet teieeesnimele. - Ülesanne 2: Tehke ekraanivaade
Persisting our DBviimase harjutusedocker volume inspect todo-dbWSLi käsureal nii et teie nimi oleks käsureal nähtav. - Ülesanne 3: Esitage ekraanivaade kus, Azure pilves jookseb teie harjutuse
ToDokonteiner 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)

