Windows serverio konteineriai. Trumpas „Windows“ konteinerių įvadas

2013 m. kovą Soloman Hikes paskelbė apie atvirojo kodo projekto, kuris vėliau tapo žinomas kaip Docker, pradžią. Vėlesniais mėnesiais ji sulaukė didelio Linux bendruomenės palaikymo, o 2014 m. rudenį Microsoft paskelbė apie planus įdiegti konteinerius sistemoje Windows Server 2016. WinDocks, kompanija, kurią įkūriau kartu, išleido nepriklausomą atvirojo kodo Docker versiją. „Windows“ 2016 m. pradžioje, daugiausia dėmesio skiriant pirmos klasės konteinerių palaikymui SQL Server. Konteineriai greitai tampa pramonės dėmesio centru. Šiame straipsnyje apžvelgsime konteinerius ir jų naudojimą SQL serverio kūrėjams ir DBA

Konteinerių organizavimo principai

Konteineriai apibrėžia naujas metodas taikomųjų programų pakuotė, kartu su vartotojo ir proceso izoliacija, skirta daugiabučiams programoms. Įvairūs įgyvendinimai„Linux“ ir „Windows“ konteineriai buvo naudojami daugelį metų, tačiau išleidę „Windows Server 2016“ turime de facto „Docker“ standartą. Šiandien Docker API ir konteinerio formatas palaikomos viešosiose paslaugose AWS, Azure, Google Cloud ir visose Linux platinimai ir Windows. Elegantiška Docker struktūra turi svarbių privalumų.

  • Perkeliamumas. Konteineriuose yra taikomosios programinės įrangos priklausomybės ir jie nepakeisti kūrėjo nešiojamajame kompiuteryje, bendrame bandymo serveryje ir bet kurioje viešojoje paslaugoje.
  • Konteinerių ekosistema. „Docker“ API yra pramonės naujovių su stebėjimo, registravimo, duomenų saugojimo, grupių orkestravimo ir valdymo sprendimais.
  • Suderinamas su viešosiomis paslaugomis. Sudėtiniai rodiniai skirti mikro paslaugų architektūroms, mastelio mažinimui ir trumpalaikiams darbo krūviams. Konteineriai suprojektuoti taip, kad, jei pageidaujama, juos būtų galima išimti ir pakeisti, o ne pataisyti ar atnaujinti.
  • Greitis ir taupymas. Sukurti konteinerius užtrunka kelias sekundes; teikiama efektyvi kelių abonementų parama. Daugumai vartotojų virtualių mašinų skaičius sumažėja nuo trijų iki penkių kartų (1 pav.).

SQL serverio konteineriai

SQL Server dešimt metų palaiko daugialypės nuomos pavadinimus, tad kokia yra SQL serverio konteinerių vertė?

Faktas yra tas, kad SQL serverio konteineriai yra praktiškesni dėl savo greičio ir automatizavimo. SQL serverio konteineriai yra pavadinti egzemplioriais, kurių duomenys ir nustatymai pateikiami per kelias sekundes. Galimybė sukurti, ištrinti ir pakeisti SQL serverio konteinerius per kelias sekundes daro juos praktiškesnius plėtrai, kokybės užtikrinimui ir kitiems toliau aptartiems naudojimo atvejams.

Dėl SQL serverio konteinerių greičio ir automatizavimo jie idealiai tinka gamybos plėtrai ir kokybės užtikrinimo aplinkoms. Kiekvienas komandos narys naudoja atskirus konteinerius bendroje virtualioje mašinoje, sumažindamas virtualių mašinų skaičių nuo trijų iki penkių kartų. Dėl to sutaupome daug virtualių mašinų priežiūros ir Microsoft licencijų išlaidų. Konteinerius galima lengvai integruoti į saugyklos tinklo (SAN) masyvus, naudojant saugyklos kopijas ir duomenų bazių klonus (2 pav.).

1 TB prijungta duomenų bazė konteinerio egzemplioriuje sukuriama greičiau nei per vieną minutę. Tai yra reikšmingas patobulinimas, palyginti su serveriais su specialiais pavadintais egzemplioriais arba kiekvieno kūrėjo virtualiosiomis mašinomis. Viena įmonė naudoja aštuonių branduolių serverį, kad aptarnautų iki 20 400 GB talpos SQL serverio konteinerių. Anksčiau kiekvienai virtualiai mašinai paruošti prireikdavo daugiau nei valandos, o konteinerių egzemplioriai – per dvi minutes. Taigi pavyko 20 kartų sumažinti virtualių mašinų skaičių, 5 kartus sumažinti procesoriaus branduolių skaičių ir smarkiai sumažinti mokėjimo už Microsoft licencijas išlaidas. Be to, padidėjo verslo lankstumas ir reagavimas.

SQL serverio konteinerių naudojimas

Sudėtiniai rodiniai apibrėžiami naudojant Dockerfile scenarijus, kurie pateikia konkrečius konteinerio kūrimo veiksmus. 1 paveiksle parodytame Docker faile nurodoma SQL Server 2012 su duomenų bazėmis, nukopijuotomis į konteinerį, ir SQL serverio scenarijumi, skirtu užmaskuoti pasirinktas lenteles.

Kiekviename konteineryje gali būti dešimtys duomenų bazių su palaikymo ir žurnalo failais. Duomenų bazes galima nukopijuoti ir paleisti konteineryje arba prijungti naudojant MOUNTDB komandą.

Kiekviename konteineryje yra privati ​​failų sistema, atskirta nuo pagrindinio kompiuterio išteklių. 2 paveiksle parodytame pavyzdyje konteineris sukurtas naudojant MSSQL-2014 ir venture.mdf. Sugeneruojamas unikalus konteinerio ID ir konteinerio prievadas.


2 ekranas. Konteineris, pagrįstas SQL Server 2014 ir venture.mdf

SQL serverio konteineriai suteikia naujas lygis našumas ir automatizavimas, tačiau jų elgsena yra lygiai tokia pati kaip įprastų pavadintų erdvių. Išteklių valdymas gali būti įgyvendintas naudojant SQL serverio įrankius arba naudojant konteinerio išteklių apribojimus (3 pav.).

Kitos programos

Konteineriai yra labiausiai paplitusi kūrimo ir kokybės užtikrinimo aplinkų organizavimo priemonė, tačiau atsiranda ir kitų naudojimo būdų. Testavimas atkūrimas nelaimės atveju- paprastas, bet daug žadantis naudojimo atvejis. Tarp kitų – konteinerizavimas vidinė aplinka SQL serveris, skirtas senoms programoms, tokioms kaip SAP arba Microsoft Dynamics. Konteinerių užpakalinis komponentas naudojamas siekiant sukurti gamybos aplinką palaikymui ir nuolatinei priežiūrai. Vertinimo konteineriai taip pat naudojami gamybos aplinkoms palaikyti su nuolatinėmis duomenų saugyklomis. Būsimame straipsnyje išsamiai kalbėsiu apie nuolatinius duomenis.

„WinDocks“ siekia dar lengviau naudoti konteinerius naudojant žiniatinklio sąsają. Kitas projektas yra skirtas SQL serverio konteinerių perkėlimui DevOps arba nuolatinio integravimo procese su CI / CD vamzdynais, pagrįsta Jenkins arba Team City. Šiandien galite susipažinti su konteinerių naudojimu visuose „Windows“ leidimai 8 ir Windows 10, Windows Server 2012 arba Windows Server 2016 su visų leidimų palaikymu, pradedant nuo SQL Server 2008, naudojant jūsų WinDocks Community Edition kopiją (https://www.windocks.com/community-docker-windows).

Konteineriai viduje Microsoft Windows Serveris 2016 tapo klientų technologijų galimybių išplėtimu. „Microsoft“ planuoja klientų kūrimą, diegimą ir dabar talpyklų talpinimą kaip jų kūrimo procesų dalį.

Kadangi taikomųjų programų diegimo tempas ir toliau spartėja, o klientai naudoja programos versijų diegimą kasdien ar net kas valandą, galimybė greitai įdiegti programas, patvirtintas iš kūrėjo klaviatūros į gamybą, yra labai svarbi verslo sėkmei. Šį procesą pagreitina konteineriai.

Nors virtualiosios mašinos gali perkelti programas duomenų centruose, debesyje ir už jos ribų, virtualizacijos išteklius toliau atrakina konteineriai, naudojant OS virtualizavimą (sistemos programinę įrangą). Šis sprendimas, dėka virtualizacijos, leis greitai pristatyti programas.

„Windows“ technologijos konteinerį sudaro du įvairių tipų konteineriai, „Windows Server Container“ ir „Hyper-V“ konteineriai. Abiejų tipų konteineriai yra sukurti, valdomi ir veikia vienodai. Jie netgi gamina ir naudoja tą patį konteinerio vaizdą. Jie skiriasi vienas nuo kito izoliacijos lygiu, sukurtu tarp konteinerio, pagrindinio kompiuterio operacinės sistemos ir visų kitų pagrindiniame kompiuteryje veikiančių konteinerių.

„Windows Server“ konteineriai: vienu metu pagrindiniame kompiuteryje gali veikti keli konteinerių egzemplioriai, kai izoliacija suteikiama naudojant vardų erdvę, išteklių valdymą ir proceso izoliavimo technologijas. „Windows Server“ konteineriuose yra tas pats branduolys, esantis pagrindiniame kompiuteryje.

Hyper-V konteineriai: vienu metu pagrindiniame kompiuteryje gali veikti keli konteinerio egzemplioriai. Tačiau kiekvienas konteineris yra įdiegtas tam skirtoje virtualioje mašinoje. Tai užtikrina branduolio lygio izoliaciją tarp kiekvieno Hyper-V konteinerio ir pagrindinio konteinerio.

„Microsoft“ į konteinerio funkciją įtraukė „Docker“ įrankių rinkinį, skirtą valdyti ne tik „Linux“ konteinerius, bet ir „Windows Server“ bei „Hyper-V“ konteinerius. Bendradarbiaujant „Linux“ ir „Windows“ bendruomenėse, „Docker“ patirtis buvo išplėsta sukuriant „PowerShell“ modulį, skirtą „Docker“, kuris dabar yra atvirojo kodo. „PowerShell“ modulis gali valdyti „Linux“ ir „Windows“ serverio konteinerius vietoje arba nuotoliniu būdu, naudodamas „Docker REST“ API technologiją. Kūrėjai patenkinti naujovėmis klientams, naudojantiems atvirojo kodo kodą mūsų platformai kurti. Ateityje planuojame pristatyti technologijas savo klientams kartu su naujovėmis, tokiomis kaip Hyper-V.

Pirkite Windows Server 2016

Siūlome įsigyti Windows Server 2016 su nuolaida nuo oficialus partneris„Microsoft“ Rusijoje – DATASYSTEMS įmonė. Turėsite galimybę gauti patarimų, taip pat nemokamai parsisiųsti Windows Server 2016 testavimui susisiekę su mūsų techninio palaikymo specialistais. Windows Server 2016 kaina pagal pageidavimą. Komercinį pasiūlymą dalyvauti įsigyjant Windows Server 2016 galite gauti pateikę prašymą el. paštu:

*nix sistemos iš pradžių įgyvendina daugiafunkcinį darbą ir siūlo įrankius, leidžiančius izoliuoti ir valdyti procesus. Tokios technologijos kaip chroot(), kurios užtikrina sluoksnio lygio izoliaciją failų sistema, FreeBSD Jail, ribojantis prieigą prie branduolio struktūrų, LXC ir OpenVZ, jau seniai žinomos ir plačiai naudojamos. Tačiau technologijų plėtros impulsas buvo „Docker“, kuris leido patogiai platinti programas. Dabar tas pats atėjo ir į Windows.

„Windows“ konteineriai

Šiuolaikiniai serveriai turi perteklinę talpą, o programos kartais net nenaudoja jų dalių. Dėl to sistemos kurį laiką „stovėjo nenaudojamos“, šildydamos orą. Sprendimas buvo virtualizacija, leidžianti paleisti kelias operacines sistemas viename serveryje, garantuotai atskirti jas vieną nuo kitos ir paskirstyti kiekvieną reikalingas kiekis išteklių. Tačiau pažanga nestovi vietoje. Kitas etapas – mikropaslaugos, kai kiekviena aplikacijos dalis diegiama atskirai, kaip savarankiškas komponentas, kurį galima nesunkiai padidinti iki reikiamos apkrovos ir atnaujinti. Izoliavimas neleidžia kitoms programoms trukdyti mikro paslaugai. Atsiradus Docker projektui, kuris supaprastino programų pakavimo ir pristatymo procesą kartu su aplinka, mikropaslaugų architektūra gavo papildomą impulsą plėtrai.

Konteineriai yra dar vienas virtualizacijos tipas, suteikiantis atskirą aplinką programoms paleisti, vadinamą OS virtualizavimu. Konteineriai įgyvendinami naudojant izoliuotą vardų erdvę, kurioje yra visi veiklai reikalingi ištekliai (virtualizuoti pavadinimai), su kuriais galite sąveikauti (failai, tinklo prievadai, procesai ir kt.) ir iš kurios negalite išeiti. Tai yra, OS rodo konteineriui tik tai, kas yra skirta. Konteinerio viduje esanti programa mano, kad ji yra vienintelė ir veikia visavertėje OS be jokių apribojimų. Jei reikia pakeisti esamą failą arba sukurti naują, konteineris gauna kopijas iš pagrindinės kompiuterio OS, išsaugodamas tik pakeistas dalis. Todėl kelių konteinerių diegimas viename pagrindiniame kompiuteryje yra labai efektyvus.

Skirtumas tarp konteinerių ir virtualių mašinų yra tas, kad konteineriai neįkelia savo OS, bibliotekų, sistemos failų ir kt. kopijų. operacinė sistema tarsi būtų dalijamasi su konteineriu. Vienintelis papildomas dalykas, kurio reikia, yra ištekliai, reikalingi programai paleisti konteineryje. Dėl to konteineris paleidžiamas per kelias sekundes ir mažiau apkrauna sistemą nei naudojant virtualias mašinas. Šiuo metu „Docker“ saugykloje siūlo 180 tūkstančių programų, o formatą suvienija „Open Container Initiative“ (OCI). Tačiau priklausomybė nuo branduolio reiškia, kad konteineriai neveiks kitoje OS. „Linux“ konteineriams reikalinga „Linux“ API, todėl „Windows“ neveiks „Linux“.

Dar visai neseniai Windows kūrėjai siūlė dvi virtualizacijos technologijas: virtualiąsias mašinas ir virtualios programos Serverio programa-V. Kiekvienas turi savo taikymo nišą, savo privalumus ir trūkumus. Dabar asortimentas tapo platesnis – „Windows Server 2016“ paskelbti konteineriai. Ir nors TP4 metu plėtra dar nebuvo baigta, žiūrėti jau galima nauja technologija veiksme ir padaryti išvadas. Pažymėtina, kad pasiviję ir turėdami po ranka paruoštas technologijas MS kūrėjai kai kuriais klausimais nuėjo šiek tiek toliau, todėl konteinerių naudojimas tapo paprastesnis ir universalesnis. Pagrindinis skirtumas yra tas, kad siūlomi dviejų tipų konteineriai: Windows konteineriai ir Hyper-V konteineriai. TP3 buvo prieinami tik pirmieji.

„Windows“ konteineriai naudoja vieną branduolį su OS, kuris dinamiškai bendrinamas tarpusavyje. Platinimo procesą (CPU, RAM, tinklą) perima OS. Jei reikia, galite apriboti didžiausius turimus konteineriui skirtus išteklius. OS failai ir veikiančios paslaugos susietos su kiekvieno sudėtinio rodinio vardų erdve. Šio tipo konteineriai efektyviai naudoja išteklius, sumažindami pridėtines išlaidas, todėl programas galima dėti tankiau. Šis režimas šiek tiek primena FreeBSD Jail arba Linux OpenVZ.

„Hyper-V“ konteineriai suteikia papildomą izoliacijos lygį naudojant „Hyper-V“. Kiekvienam konteineriui yra skirtas atskiras branduolys, o atmintį izoliuoja ne OS branduolys, o Hyper-V hipervizorius. Rezultatas yra toks pat izoliacijos lygis, kaip ir virtualios mašinos, su mažesnėmis sąnaudomis nei VM, bet daugiau nei „Windows“ konteineriuose. Norėdami naudoti šio tipo konteinerį, pagrindiniame kompiuteryje turite įdiegti „Hyper-V“ vaidmenį. „Windows“ konteineriai labiau tinka naudoti patikimoje aplinkoje, pavyzdžiui, kai serveryje veikia tos pačios organizacijos programos. Kai kelios įmonės dalijasi serveriu ir turi užtikrinti didesnį izoliacijos lygį, Hyper-V konteineriai greičiausiai bus prasmingesni.

Svarbi „Win 2016“ konteinerių savybė yra ta, kad tipas pasirenkamas ne kūrimo, o diegimo metu. Tai reiškia, kad bet kurį konteinerį galima paleisti kaip „Windows“ ir kaip „Hyper-V“.

Win 2016 už konteinerius atsakingas Container Management stack abstrakcijos sluoksnis, kuris įgyvendina visas reikiamas funkcijas. Vaizdo formatas naudojamas saugojimui kietasis diskas VHDX. Konteineriai, kaip ir „Docker“ atveju, saugykloje išsaugomi į vaizdus. Be to, visi išsaugo ne visą duomenų rinkinį, o tik skirtumus sukurtas vaizdas nuo bazinio, o paleidimo metu visi reikalingi duomenys projektuojami į atmintį. Virtualusis jungiklis naudojamas tinklo srautui tarp konteinerio ir fizinio tinklo valdyti.

Kaip konteinerio OS gali būti naudojamas Server Core arba Nano Server. Pirmasis, apskritai, nėra naujiena ilgą laiką ir suteikia aukšto lygio suderinamumas su esamomis programomis. Antroji yra dar labiau sumažinta versija, skirta darbui be monitoriaus, leidžianti paleisti serverį minimalia įmanoma konfigūracija, skirta naudoti su Hyper-V, failų serveriu (SOFS) ir debesies paslaugomis. Žinoma, grafinės sąsajos nėra. Yra tik būtiniausi komponentai (.NET su CoreCLR, Hyper-V, Clustering ir pan.). Tačiau galiausiai jis užima 93 % mažiau vietos ir reikalauja mažiau svarbių pataisymų.

Daugiau įdomus taškas. Norėdami valdyti konteinerius, be tradicinės „PowerShell“, taip pat galite naudoti „Docker“. Siekdama suteikti galimybę paleisti nevietines programas „Win“, MS bendradarbiauja siekdama išplėsti „Docker“ API ir įrankių rinkinį. Visi pakeitimai yra atviri ir pasiekiami oficialiame „Docker“ projekto „GitHub“. Docker valdymo komandos taikomos visiems konteineriams, tiek Win, tiek Linux. Nors, žinoma, „Linux“ sukurto konteinerio paleisti „Windows“ sistemoje neįmanoma (taip pat ir atvirkščiai). Šiuo metu „PowerShell“ funkcionalumas yra ribotas ir leidžia dirbti tik su vietine saugykla.

Montavimo konteineriai

„Azure“ turi reikiamą „Windows Server 2016 Core with Containers Tech Preview 4“ vaizdą, kurį galite įdiegti ir naudoti konteineriams naršyti. Kitu atveju viską reikia sukonfigūruoti patiems. Vietiniam diegimui reikia „Win 2016“, o kadangi „Hyper-V“ sistemoje „Win 2016“ palaiko įdėtą virtualizaciją, tai gali būti fizinis arba virtualus serveris. Pats komponentų diegimo procesas yra standartinis. Pasirinkite atitinkamą elementą vaidmenų ir funkcijų įtraukimo vedlyje arba naudodami „PowerShell“ išduokite komandą

PS> Įdiegti-WindowsFeature konteineriai

Proceso metu taip pat bus įdiegtas Virtual Switch tinklo valdiklis, jis turi būti nedelsiant sukonfigūruotas, kitaip tolesni veiksmai sugeneruos klaidą. Pažvelkime į tinklo adapterių pavadinimus:

PS> Get-NetAdapter

Norėdami dirbti, mums reikia išorinio tipo valdiklio. „New-VMSwitch“ cmdlet turi daug parametrų, tačiau dėl šio pavyzdžio apsieisime su minimaliais nustatymais:

PS> Naujas-VMSwitch -Pavadinimas Išorinis -NetAdapterName Ethernet0

Mes tikriname:

PS> Get-VMSwitch | kur ($_.SwitchType –eq "Išorinis")

„Windows“ užkarda blokuos ryšius su konteineriu. Todėl būtina sukurti leidimo taisyklę, bent jau norint nuotoliniu būdu prisijungti naudojant PowerShell nuotolinį ryšį, mes leisime TCP/80 ir sukursime NAT taisyklę:

PS> Nauja-NetFirewallRule -Pavadinimas "TCP80" -Rodymo pavadinimas "HTTP ant TCP/80" -Protokolas tcp -LocalPort 80 -Veiksmas Leisti -Įgalintas Tikrasis PS> Add-NetNatStaticMapping -NatName "ContainerNat" -NatName "ContainerNat" -0.0Protocol TCP -0External IPAddress0.0. Vidinis IP adresas 192.168.1.2 – vidinis prievadas 80 – išorinis prievadas 80

Yra dar viena paprasto diegimo galimybė. Kūrėjai paruošė scenarijų, leidžiantį automatiškai įdiegti visas priklausomybes ir sukonfigūruoti pagrindinį kompiuterį. Jei norite, galite jį naudoti. Scenarijaus viduje esantys parametrai padės suprasti visus mechanizmus:

PS> https://aka.ms/tp4/Install-ContainerHost -OutFile C:\Install-ContainerHost.ps1 PS> C:\Install-ContainerHost.ps1

Yra ir kita galimybė – įdiegti paruoštą virtualią mašiną su konteinerio palaikymu. Norėdami tai padaryti, tame pačiame šaltinyje yra scenarijus, kuris automatiškai sukuria viską būtinas operacijas. Išsamios instrukcijosįtrauktas į MSDN. Atsisiųskite ir paleiskite scenarijų:

PS> wget -uri https://aka.ms/tp4/New-ContainerHost -OutFile c:\New-ContainerHost.ps1 PS> C:\New-ContainerHost.ps1 –VmName WinContainer -WindowsImage ServerDatacenterCore

Pavadinimą nustatome savavališkai, o -WindowsImage nurodo renkamo vaizdo tipą. Parinktys gali būti NanoServer, ServerDatacenter. „Docker“ taip pat įdiegiamas nedelsiant, už jo nebuvimą arba buvimą atsakingi „SkipDocker“ ir „IncludeDocker“ parametrai. Po paleidimo vaizdas bus įkeliamas ir konvertuojamas proceso metu. Norėdami prisijungti prie VM, turėsite nurodyti slaptažodį. Pats ISO failas yra gana didelis, beveik 5 GB. Jei kanalas lėtas, failą galima atsisiųsti į kitą kompiuterį, tada pervadinti į WindowsServerTP4 ir nukopijuoti į C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks. Galime prisijungti prie įdiegtos virtualios mašinos, nurodę surinkimo metu nurodytą slaptažodį ir dirbti.

Dabar galite pereiti tiesiai prie konteinerių naudojimo.

Konteinerių naudojimas su PowerShell

Konteinerių modulyje yra 32 „PowerShell“ cmdlet, kai kurie iš jų vis dar neužbaigti, nors paprastai jų pakanka, kad viskas veiktų. Tai lengva išvardyti:

PS> Get-Command -modulio konteineriai

Galite gauti galimų vaizdų sąrašą naudodami cmdlet Get-ContainerImage, konteinerius - Get-Container. Jei tai konteineris, stulpelyje Būsena bus rodoma dabartinė jo būsena: sustabdyta arba veikia. Tačiau kol technologija kuriama, MS saugyklos nepateikė ir, kaip minėta, PowerShell šiuo metu dirba su vietine saugykla, todėl eksperimentams turėsite ją susikurti patys.

Taigi, mes turime serverį su palaikymu, dabar mums reikia pačių konteinerių. Norėdami tai padaryti, įdiekite paketo tiekėją ContainerProvider.

Tęsinys prieinamas tik nariams

1 variantas. Prisijunkite prie „svetainės“ bendruomenės ir perskaitykite visą svetainėje esančią medžiagą

Narystė bendruomenėje per nurodytą laikotarpį suteiks prieigą prie VISOS „Hacker“ medžiagos, padidins asmeninę kaupiamą nuolaidą ir leis kaupti profesionalus įvertinimas Xakep rezultatas!

Šiandieninėje Užduokite klausimą administratoriui Parodysiu, kaip įdiegti vaizdą į konteinerį sistemoje „Windows Server 2016“, sukurti naują vaizdą ir įkelti jį į „Docker“.

Viena iš pagrindinių naujų „Windows Server 2016“ funkcijų yra konteinerių ir „Docker“ palaikymas. Sudėtiniai konteineriai suteikia lengvas ir lanksčias virtualizacijos galimybes, kurias kūrėjai gali naudoti norėdami greitai įdiegti ir atnaujinti programas, nereikalaujant virtualių mašinų. Kartu su Docker, konteinerių valdymo sprendimu, konteinerių technologija per pastaruosius kelerius metus smarkiai išaugo.

Tai atnaujintas straipsnis, kuriame pateikiama informacija, kuri anksčiau buvo įtraukta į „Windows Server“ konteinerių diegimą ir tvarkymą naudojant „Docker“, skirtą „Windows Server 2016“ techninei peržiūrai 3. Norėdami gauti papildomos informacijos apie Docker, žr. Kas yra Docker? ir Ar „Docker“ konteineriai yra geresni už virtualias mašinas? įjungta Petri IT techninių žinių bazė.

Kad vykdytumėte šiame straipsnyje pateiktas instrukcijas, jums reikės prieigos prie fizinio arba virtualaus serverio „Windows“ valdymas Server 2016. Galite atsisiųsti įvertinimo kopiją iš „Microsoft“ svetainės arba nustatyti virtualią mašiną „Microsoft Azure“. Jums taip pat reikės nemokamo Docker ID, kurį galite gauti užsiregistravę.

Įdiekite „Docker Engine“.

Pirmasis žingsnis yra įdiegti „Docker“ palaikymą „Windows Server 2016“.

  • Prisijunkite prie „Windows Server“.
  • Spustelėkite Ieškoti užduočių juostos piktogramą ir įveskite PowerShell paieškos lange.
  • Dešiniuoju pelės mygtuku spustelėkite „Windows PowerShell“. paieškos rezultatuose ir pasirinkite Vykdyti kaip administratorius iš meniu.
  • Kai būsite paraginti, įveskite administratoriaus kredencialus.

Norėdami įdiegti Docker Windows Server, paleiskite šią PowerShell cmdlet. Būsite paraginti įdiegti „NuGet“, kuris atsisiunčia „Docker PowerShell“ modulį iš patikimos internetinės saugyklos.

Diegimo modulis - DockerMsftProvider pavadinimas - Force

Dabar naudok Įdiegti-Paketas cmdlet, skirtą „Docker“ varikliui įdiegti „Windows Server“. Atminkite, kad proceso pabaigoje reikia paleisti iš naujo.

Diegimo paketas - Docker pavadinimas - Teikėjo pavadinimas DockerMsftProvider - Priverstinis paleidimas - Kompiuteris - Priverstinė

Kai serveris bus paleistas iš naujo, dar kartą paleiskite „PowerShell“ užklausą ir įsitikinkite, kad „Docker“ yra įdiegta, vykdydami šią komandą:

Docker versija

Atsisiųskite vaizdą iš „Docker“ ir pradėkite konteinerio procesą

Dabar, kai įdiegtas „Docker“ variklis, išimkime numatytąjį „Windows Server Core“ vaizdą iš „Docker“:

Docker pull microsoft/windowsServerCore

Dabar, kai vaizdas įkeltas į vietinį serverį, pradėkite konteinerio procesą naudodami veikia dokininkas:

„Docker“ paleidžia „Microsoft /windowsServerCore“.

Sukurkite naują vaizdą

Dabar galime sukurti naują vaizdą naudodami anksčiau atsisiųstą „Windows Server“ vaizdą kaip pradžios tašką. Prieš pradedant jums reikės „Docker“ ID. Jei dar neturite, prisiregistruokite gauti Docker paskyrą.

Rėmėjai

„Docker“ vaizdai paprastai kuriami iš „Docker“ failų receptų, tačiau demonstravimo tikslais mes paleisime komandą atsisiųstame paveikslėlyje, sukursime naują vaizdą pagal pakeitimą ir atsisiųsime jį į „Docker“, kad jį būtų galima pasiekti iš debesies.

Atkreipkite dėmesį, kad į komandinė eilutėžemiau -t Parametras suteikia vaizdo žymą, leidžiančią lengvai atpažinti vaizdą. Taip pat atkreipkite dėmesį ypatingas dėmesysį brūkšnelį, esantį po žymos pavadinimo.

"IŠ Microsoft /windowsservercore `n CMD echo Hello World!" | docker build -t mydockerid /windows-test-image -

Kai „Docker“ baigs kurti naują vaizdą, patikrinkite galimų vaizdų sąrašą adresu vietinis serveris. Turėtumėte pamatyti abu Microsoft/windowsServerCore Ir mydockerid/windows-test-images sąraše.

dokerio vaizdas

Dabar konteineryje pradėkite naują vaizdą, nepamiršdami pakeisti mydockerid su savo Docker ID pavadinimu ir turėtumėte pamatyti Sveikas pasaulis! Pasirodo išvestyje:

Docker paleidžia mydockerid /windows-test-images

Įkelkite vaizdą į „Docker“.

Įkelkime ką tik sukurtą vaizdą į „Docker“, kad jį būtų galima pasiekti iš debesies. Prisijunkite naudodami savo Docker ID ir slaptažodį:

Prisijunkite prie docker -u mydockerid -p mypassword

naudojimas dokininko stūmimas Norėdami įkelti vaizdą, kurį sukūrėme atlikdami ankstesnius veiksmus, pakeisdami mydockerid su savo Docker ID pavadinimu:

Docker push mydockerid /windows-test-images