Windowsi serveri konteinerid. Kuidas rakendust Dockeri konteinerisse pakkida? SQL serveri konteinerid

Microsoft Windows Server 2016 konteinerid on klientide jaoks mõeldud tehnoloogia laiendus. Microsoft kavandab arendusprotsessi osana klientide arendamist, juurutamist ja nüüd konteinerites rakenduste hostimist.

Kuna rakenduste juurutamise määr kasvab jätkuvalt ja kliendid kasutavad rakenduse versiooni juurutusi igapäevaselt või isegi tunnipõhiselt, on ettevõtte edu saavutamiseks ülioluline võimalus arendaja klaviatuuri valideerimisrakendusi kiiresti tootmisse juurutada. Seda protsessi kiirendavad konteinerid.

Kuigi VM-idel on võimalus teisaldada rakendusi andmekeskustes ning pilve ja sealt välja, avavad virtualiseerimisressursid veelgi konteinerite abil OS-i virtualiseerimise (süsteemitarkvara) kaudu. See otsus tänu virtualiseerimisele võimaldab rakenduste kiiret tarnimist.

Windows Technology Container sisaldab kahte erinevat tüüpi konteinerid, Windows Server Container ja Hyper-V konteinerid. Mõlemat tüüpi konteinerid luuakse, hallatakse ja toimivad samal viisil. Nad toodavad ja tarbivad isegi sama konteineripilti. Need erinevad üksteisest konteineri, hosti operatsioonisüsteemi ja kõigi teiste hostis töötavate konteinerite vahel loodud isolatsioonitaseme poolest.

Windows Serveri konteinerid: nimeruumi, ressursside haldamise ja protsesside eraldamise tehnoloogiate kaudu tagatud isolatsiooniga hostis saab samaaegselt töötada mitu konteineri eksemplari. Windows Serveri konteinerid jagavad sama, hostitud tuuma.

Hyper-V konteinerid: Hostis saab samaaegselt töötada mitu konteineri eksemplari. Iga konteiner on aga rakendatud spetsiaalses virtuaalmasinas. See tagab tuumataseme isolatsiooni iga Hyper-V konteineri ja hosti konteineri vahel.

Microsoft lisas konteinerisse Dockeri tööriistade komplekti, et hallata mitte ainult Linuxi konteinereid, vaid ka Windows Serveri ja Hyper-V konteinereid. Osana koostööst Linuxi ja Windowsi kogukondades on Dockeri kasutuskogemust laiendatud, luues Dockeri jaoks PowerShelli mooduli, mis on nüüd avatud lähtekoodiga. PowerShelli moodul saab hallata Linuxi ja Windows Serveri konteinereid kohapeal või eemalt, kasutades Dockeri REST API-t. Arendajad on rahul klientide jaoks uuendustega meie platvormi avatud lähtekoodiga arenduse kaudu. Edaspidi plaanime oma klientideni tuua tehnoloogia koos selliste uuendustega nagu Hyper-V.

Ostke Windows Server 2016

Pakume teile Windows Server 2016 allahindlust osta alates Ametlik partner Microsoft Venemaal – ANDMESÜSTEEMI ettevõtted. Teil on võimalus saada nõu ja testimiseks tasuta alla laadida Windows Server 2016, võttes ühendust meie tehnilise toe spetsialistidega. Windows Server 2016 hind nõudmisel. Kommertspakkumine Windows Server 2016 ostmisel osalemiseks saate soovi korral e-posti teel:

Konteinerite tehnoloogia uurimine
Windows Server 2016

Üks Windows Server 2016 uutest märkimisväärsetest funktsioonidest on konteinerite tugi. Õpime teda paremini tundma

Kaasaegsed süsteemid on juba ammu eemaldunud põhimõttest üks OS - üks server. Virtualiseerimistehnoloogiad võimaldavad serveriressursse tõhusamalt kasutada, võimaldades käitada mitut operatsioonisüsteemi, eraldades need üksteisest ja lihtsustades haldust. Siis olid olemas mikroteenused, mis võimaldavad teil eraldada rakendusi eraldi hõlpsasti hallatava ja skaleeritava komponendina. Docker on kõike muutnud. Rakenduse koos keskkonnaga tarnimise protsess on muutunud nii lihtsaks, et see ei saanud muud kui lõppkasutajat huvitada. Konteiner sees olev rakendus töötab nii, nagu kasutaks täisväärtuslikku OS-i. Kuid erinevalt virtuaalmasinatest ei laadi nad oma OS-i, teekide, süsteemifailide jms koopiaid. Konteinerid saavad eraldatud nimeruumi, kus kõik vajalikud ressursid on rakendusele saadaval, kuid millest ei saa väljuda. Kui teil on vaja sätteid muuta, salvestatakse ainult erinevused peamise OS-iga. Seetõttu käivitub konteiner erinevalt virtuaalmasinatest väga kiiresti ja laadib süsteemi vähem. Konteinerid kasutavad serveriressursse tõhusamalt.

Konteinerid Windowsis

Windows Server 2016-s on lisaks olemasolevatele virtualiseerimistehnoloogiatele - Hyper-V ja Server App-V virtuaalrakendustele lisatud Windows Server Containers konteinerite tugi, mis on realiseeritud kõiki vajalikke funktsioone rakendava Container Management pinu abstraktsioonikihi kaudu. Tehnoloogiast teatati tagasi tehnilises eelvaates 4, kuid sellest ajast alates on palju muutunud lihtsustamise suunas ja varem kirjutatud juhiseid ei saa isegi lugeda. Samal ajal pakuti välja kahte tüüpi "oma" konteinerid - Windowsi konteinerid ja Hyper-V konteinerid. Ja ilmselt veel üks peamine võimalus on Dockeri tööriistade kasutamine konteinerite haldamiseks lisaks PowerShelli cmdlet-käskudele.

Windowsi konteinerid meenutavad põhimõtteliselt FreeBSD Jaili või Linux OpenVZ-d, kasutavad OS-iga ühte tuuma, mis koos muude ressurssidega (RAM, võrk) jagatakse omavahel ära. OS-i failid ja teenused on vastendatud iga konteineri nimeruumiga. Seda tüüpi konteinerid kasutavad ressursse tõhusalt, vähendades üldkulusid ja võimaldavad seetõttu rakendusi tihedamalt paigutada. Kuna konteineri baaskujutistel "on" üks tuum koos sõlmega, peavad nende versioonid ühtima, vastasel juhul pole toimimine garanteeritud.

Hyper-V konteinerid kasutavad täiendavat isolatsioonikihti ja igale konteinerile eraldatakse oma tuum ja mälu. Erinevalt eelmisest tüübist ei teosta isoleerimist mitte OS-i kernel, vaid Hyper-V hüperviisor (vajab Hyper-V rolli). Tulemuseks on vähem üldkulusid kui virtuaalmasinad, kuid suurem isolatsioon kui Windowsi konteinerid. Sel juhul on konteineri käitamiseks sama OS-i kernel. Neid konteinereid saab juurutada ka operatsioonisüsteemis Windows 10 Pro/Enterprise. Eriti väärib märkimist, et konteineri tüüpi ei valita mitte loomise, vaid juurutamise ajal. See tähendab, et mis tahes konteinerit saab käivitada nii Windowsi kui ka Hyper-V variandina.

Konteineris oleva operatsioonisüsteemina kasutatakse kärbitud Server Core või Nano Serverit. Esimene ilmus Windows Sever 2008-s ja pakub paremat ühilduvust olemasolevate rakendustega. Teine on veelgi nõrgem kui Server Core ja on loodud töötama ilma monitorita, võimaldades serverit käitada väikseimas võimalikus konfiguratsioonis kasutamiseks koos Hyper-V, failiserveri (SOFS) ja pilveteenustega, nõudes 93% vähem ruumi. Sisaldab ainult kõige vajalikumaid komponente (.Net with CoreCLR, Hyper-V, Clustering jne).

Salvestamiseks kasutatakse pildivormingut. kõvaketas vhdx. Konteinerid, nagu Dockeri puhul, salvestatakse hoidlas piltidena. Milles igaüks ei salvesta täielikku andmekogumit, vaid ainult erinevusi loodud pilt alusest. Ja käivitamise ajal projitseeritakse kõik vajalikud andmed mällu. Virtuaalset lülitit kasutatakse võrguliikluse haldamiseks konteineri ja füüsilise võrgu vahel.

Kuidas rakendust Dockeri konteinerisse pakkida?

Mul on NodeJS-is kirjutatud rakendus. Kuidas ma saan selle pakkida Dockeri kujutisesse, et seda konteinerina käitada?

Docker on konteinerihaldussüsteem POSIX-ühilduvate operatsioonisüsteemide jaoks (Linux on praegu toetatud). Dockeri eripäraks on võimalus pakendada rakendus koos kogu vajaliku keskkonnaga selliselt, et seda teises süsteemis käivitada ilma pikkade ja keeruliste protseduurideta sõltuvuste installimiseks või allikast ehitamiseks. Pakendatud rakendust, mis on juurutamiseks valmis, nimetatakse "pildiks". Dockeri kujutised põhinevad "mallidel" – eelkonfigureeritud töökeskkondadel. Neid võib pidada operatsioonisüsteemi distributsioonideks, kuigi see pole täiesti tõsi. Saate luua ka oma malli, lugedes Dockeri dokumentatsiooni. Selle lähenemisviisi eeliseks on see, et teie rakenduse pilt sisaldab ainult rakendust ennast ja selle jaoks vajalik keskkond laaditakse mallihoidlast automaatselt alla. Docker on natuke nagu chroot või bsd jail, kuid see töötab erinevalt.

Oluline on eristada mõisteid "konteiner" ja "kujutis". Konteiner on teie rakenduse töötav koopia ja pilt on fail, mis salvestab rakenduse ja millest konteiner luuakse.

Oletame, et teil on NodeJS-i rakendus, mille soovite konteinerisse pakkida. Oletame, et teie rakendust käivitava faili nimi on server.js ja rakendus kuulab käivitamist pordil 8000. Kasutame mallina "node:carbon". Rakenduse konteinerisse paigutamiseks peate kataloogis, kus teie rakenduse failid asuvad, looma "Dockerfile" faili, mis kirjeldab pildi ettevalmistamise parameetreid:

$ puudutage Dockerfile

Faili sisu võib välja näha umbes selline:

# Määrake kasutatav mall FROM node:carbon # Looge rakenduse töökataloog konteineris WORKDIR /usr/src/app # Installige rakenduse sõltuvused npm abil # Kopeerige nii package.json kui ka package-lock.json, kui need on olemas COPY package*.json ./ RUN npm install # Kopeerige oma rakenduse failid. . # Avage port 8000, et see oleks juurdepääsetav väljaspool EXPOSE 8000 konteinerit # Käivitage käsk rakenduse käivitamiseks CMD konteineris [ "npm", "start" ]

Ebavajalike failide pildilt väljajätmiseks saate loetleda nende nimed failis ".dockerignore". Võite kasutada maski (*.log).

Pilt luuakse järgmise käsuga:

$ docker build -t kasutajanimi/node-web-app .

$ docker images # Näide REPOSITOORIUMI Märgendi ID LÕITU sõlme süsinik 1934b0b038d1 5 päeva tagasi kasutajanimi/sõlme-veebirakenduse viimane versioon d64d3505b0d2 1 minut tagasi

Konteineri käivitamine pildist toimub järgmise käsuga:

$ docker run -p 49160:8000 -d kasutajanimi/sõlme-veebirakendus

See näide loob konteineri pildist "kasutajanimi/sõlm-veebirakendus" ja käivitub kohe. Rakenduse port 8000 on kohalikus masinas (localhost) olemas ja selleks, et see oleks "väljaspool", "suunatakse edasi" porti 49160. Valida saab suvalise vaba pordi, lisaks on võimalik edasi saata rakenduse port "nagu on" määrates valiku "-p 8000:8000".

Näete, et teie konteiner töötab, kui annate käsu:

$ docker ps # Näidis ID PILDIDE KÄSK ... PORTS ecce33b30ebf kasutajanimi/sõlme-veebirakendus: uusim npm algus ... 49160->8000

Konteinerit saab hallata erinevate käskudega, määrates selle konteineri ID:

$ docker peata ecce33b30ebf – peata konteiner ID-ga ecce33b30ebf
$ docker CV ecce33b30ebf – CV konteineri ID ecce33b30ebf
$ docker stop ecce33b30ebf - stop konteiner ID-ga ecce33b30ebf
$ docker rm ecce33b30ebf - eemaldage konteiner (see eemaldab kõik rakenduse poolt konteineris loodud andmed)

See on tehtud! Aitasid kas palved või ohverdamised, kuid nüüd saate käitada Dockeri konteinereid, mille sees on Windows. Suurepärane uudis tuli koos Windows Server 2016 väljalaskmisega. Ja me ei räägi mingist nutikalt peidetud virtuaalmasinast või Windowsi emulatsioonist Linuxi tuumal – päris Windows käivitatakse päris Dockeris koos töötava Dockerfile’i, docker-compose’i ja muude dockeri-tray’idega.

Piirangud

Kuid see ei tähenda, et nüüd saate mis tahes konteinerit kõikjal käivitada. Kuna Dockeri konteinerid "kolivad" oma hostist operatsioonisüsteemi tuuma (muidu peaks neil olema oma OS ja need muutuksid virtuaalseks masinaks), saab Windowsi konteinereid käivitada ainult Windows 10 Pro aastapäeva värskenduse ja Windows Server 2016 versiooniga.

Teine punkt on see, et Windowsis on endiselt võimatu käivitada oma Linuxi konteinerit. Anniversary Update'il on oma Linuxi alamsüsteem (millega saab käivitada näiteks päris Bashi), kuid täisväärtusliku Linuxi kerneli jaoks jääb see alla, nii et Windowsis on Ubuntuga sama konteineri jaoks siiski vaja peidetud virtuaalmasinat.

Lõpuks saate Windowsi masinas mõlemat konteinerit korraga käivitada, kuid tantsuga. Kui käivitate selle käsu Windows Server 2016-s, kus on installitud Docker (aasta tagasi oleksin seda nõidust kutsunud), töötab see:

Kuid kui proovite pärast seda käsku Ubuntu konteinerit käivitada, tunneb Docker kurbust:

Probleem on selles, et Windowsi ja Linuxi konteinereid teenindavad erinevad Dockeri deemonid, mis siiski kasutavad käsureaga suhtlemiseks sama kanalit. See tähendab, et korraga saab aktiivne olla ainult üks deemon. Dockeri ametlikul saidil on "Docker for Windows" beetaversioon, mis proovib probleemi lahendada (praegu ainult Windows 10 Pro ja Enterprise puhul). Kuid isegi sellega peate Windowsi konteineritelt Linuxi konteineritele üleminekuks ronima seadete menüüsse või suhtlema käsurealt:

PowerShell

& "C:\Program Files\Docker\Docker\DockerCli.exe" -SwitchDaemon

& "C:\Program Files\Docker\Docker\DockerCli.exe"- SwitchDaemon

Windowsi pildid

Siiani on konteineri Windowsiga ainult kaks põhipilti:

Sa ei saa teha oma põhipilti (kriimupilti).

Windows Server Core pilt kaalub tervelt 10 giga ja käitub üldiselt nagu täisväärtuslik Windows Server 2016. Näiteks MS SQL ja täisväärtuslik .NET Framework paigaldatakse sinna probleemideta. Kui teie rakendus ei sõltu suuresti kasutajaliidest, installitakse ka see.

Nano server on veidi huvitavam. See on väga optimeeritud ja mahajäetud Windows Server, mis kaalub vähem kui üks kontsert. Kuid piiranguid on piisavalt: pole 32-bitisi rakendusi, kasutajaliidest, RDP-d, PowerShelli lõikamist jne. Kuid see ei takista installimast sama IIS-i, .NET Core'i ja isegi mõnda MySQL-i nanoserverisse.

Ja kas keegi võis paar aastat tagasi ette kujutada, et Dockerfile'is on võimalik korraga kohtuda "Microsofti", "Windowsi" ja "PowerShelliga"?

microsoft/windowsservercore'ist RUN powershell - käsk....

ALAST microsoft/windowsservercore

KÄITA Powershell-Command . . . .

See on Windows Dockeris! Kõlab ikka absurdselt.

Isolatsiooniastmed

Windowsi konteinerid võivad töötada kahes isoleerimisrežiimis:

  • Windows Serveri konteinerid
  • Hyper-V konteinerid

Esimeses Windowsi režiimis käituvad konteinerid nagu kõik teised Dockeri konteinerid: neil on operatsioonisüsteemiga ühine tuum, konteineriprotsessid on isoleeritud, kuid siiski hostprotsessipuus nähtavad jne. See on vaikeseade ja enamik kiire tee käivitage konteiner akendel.

Teisel juhul satub konteiner spetsiaalsesse Hyper-V virtuaalmasinasse. See muidugi mõjub stardikiirusele halvasti, kuid isolatsioon on täielik.

Järeldus

Windows Dockeris on lihtsalt suurepärane uudis. Isegi kui te ei kiirusta oma tooteid konteinerisse paigutama, on see suurepärane tööriist üksusetestide, tootmismasinate, demoserverite, liivakastide isoleerimiseks – kõigeks, mille jaoks pidite varem virtuaalmasina looma. Kui Microsoft ikka suudab Linuxis nanoserverit käivitada, siis ma annan neile andeks kaks kuud varem ettenägematult ostetud Microsoft Band 2 hiljutise tootmise katkestamise.

*nix süsteemid rakendavad natiivselt multitegumtöötlust ja pakuvad tööriistu protsesside isoleerimiseks ja juhtimiseks. Sellised tehnoloogiad nagu chroot(), mis tagab isolatsiooni failisüsteemi tasemel, FreeBSD Jail, mis piirab juurdepääsu kerneli struktuuridele, LXC ja OpenVZ, on ammu tuntud ja laialdaselt kasutusel. Kuid tehnoloogia arengu tõukejõuks oli Docker, mis võimaldas rakendusi mugavalt levitada. Nüüd on see jõudnud Windowsi.

Konteinerid Windowsis

Kaasaegsed serverid töötavad liiga hästi ja rakendused ei kasuta mõnikord isegi nende osi. Selle tulemusel töötavad süsteemid mõnda aega tühikäigul, soojendades õhku. Lahenduseks oli virtualiseerimine, mis võimaldab ühes serveris käitada mitut operatsioonisüsteemi, garanteerides nende omavahelist jagamist ja igaühele õige koguse ressursside eraldamise. Kuid areng ei seisa paigal. Järgmine etapp on mikroteenused, kui rakenduse iga osa juurutatakse eraldi, iseseisva komponendina, mida saab hõlpsasti soovitud koormusele skaleerida ja värskendada. Isolatsioon takistab teistel rakendustel mikroteenust segamast. Dockeri projekti tulekuga, mis lihtsustas rakenduste pakendamise ja tarnimise protsessi koos keskkonnaga, sai mikroteenuste arhitektuur arengule täiendava tõuke.

Konteinerid on teist tüüpi virtualiseerimine, mis pakub rakenduste käitamiseks eraldi keskkonda, mida nimetatakse OS-i virtualiseerimiseks. Konteinerid realiseeritakse isoleeritud nimeruumi abil, mis sisaldab kõiki tööks vajalikke ressursse (virtualiseeritud nimesid), millega saab suhelda (failid, võrgupordid, protsessid jne) ja millest kaugemale ei saa minna. See tähendab, et OS näitab konteinerile ainult seda, mis on valitud. Konteineris olev rakendus arvab, et see on ainuke ja töötab täisväärtuslikus OS-is ilma piiranguteta. Kui on vaja muuta olemasolevat faili või luua uus, saab konteiner koopiad peamisest host OS-ist, säilitades ainult muudetud osad. Seetõttu on mitme konteineri juurutamine ühel hostil väga tõhus.

Konteinerite ja virtuaalmasinate erinevus seisneb selles, et konteinerid ei laadi OS-i, teekide, süsteemifailide jms koopiaid. operatsioonisüsteem nagu oleks konteineriga jagatud. Ainus lisanõue on rakenduse konteineris käitamiseks vajalikud ressursid. Selle tulemusena käivitub konteiner mõne sekundiga ja laadib süsteemi vähem kui virtuaalmasinate puhul. Docker pakub praegu hoidlas 180 000 rakendust ja vormingut ühendab Open Container Initiative (OCI). Kuid sõltuvus tuumast tähendab, et konteinerid ei tööta teises OS-is. Linuxi konteinerid nõuavad Linuxi API-d, nii et Windows ei tööta Linuxis.

Kuni viimase ajani pakkusid Windowsi arendajad kahte virtualiseerimistehnoloogiat: virtuaalmasinaid ja Server App-V virtuaalrakendusi. Igal neist on oma rakendusnišš, plussid ja miinused. Nüüd on valik muutunud laiemaks – Windows Server 2016-s on välja kuulutatud konteinerid (Windows Server Containers). Ja kuigi TP4 ajal polnud arendus veel lõppenud, on juba täiesti võimalik uut tehnoloogiat töös näha ja järeldusi teha. Tuleb märkida, et järele jõudes ja valmistehnoloogiaid käepärast võttes läksid MS-i arendajad mõnes küsimuses veidi kaugemale, nii et konteinerite kasutamine muutus lihtsamaks ja mitmekülgsemaks. Peamine erinevus seisneb selles, et pakutakse kahte tüüpi konteinereid: Windowsi konteinereid ja Hyper-V konteinereid. TP3-s olid saadaval ainult esimesed.

Windowsi konteinerid kasutavad OS-iga sama tuuma, mida jagatakse omavahel dünaamiliselt. Jaotusprotsessi (CPU, RAM, võrk) võtab üle OS. Saate soovi korral piirata konteinerile eraldatud maksimaalset saadaolevat ressurssi. OS-failid ja töötavad teenused on vastendatud iga konteineri nimeruumiga. Seda tüüpi konteinerid kasutavad ressursse tõhusalt, vähendades üldkulusid ja võimaldavad seetõttu rakendusi tihedamalt paigutada. See režiim meenutab mõneti FreeBSD Jaili või Linux OpenVZ-i.

Hyper-V konteinerid pakuvad Hyper-V-ga täiendava isolatsioonikihi. Igale konteinerile eraldatakse oma kernel ja mälu, isoleerimist ei teosta mitte OS-i tuum, vaid Hyper-V hüperviisor. Tulemuseks on sama isolatsioonitase kui VM-idel, vähem üldkulusid kui VM-il, kuid rohkem kui Windowsi konteinerid. Seda tüüpi konteineri kasutamiseks peate installima hosti Hyper-V rolli. Windowsi konteinerid sobivad paremini kasutamiseks usaldusväärses keskkonnas, näiteks kui serveris töötavad sama organisatsiooni rakendused. Kui serverit kasutavad paljud ettevõtted ja vaja on rohkem isolatsiooni, on Hyper-V konteinerid tõenäoliselt mõistlikumad.

Win 2016 konteinerite oluline omadus on see, et tüüpi ei valita loomise, vaid juurutamise ajal. See tähendab, et mis tahes konteinerit saab käivitada nii Windowsi kui ka Hyper-V-na.

Win 2016-s vastutab konteinerite eest Container Management pinu abstraktsioonikiht, mis rakendab kõiki vajalikke funktsioone. Salvestamiseks kasutatakse VHDX kõvaketta kujutise vormingut. Konteinerid, nagu Dockeri puhul, salvestatakse hoidlas piltidena. Pealegi salvestab igaüks mitte täieliku andmekomplekti, vaid ainult erinevused loodud pildi ja põhipildi vahel ning käivitamise ajal projitseeritakse kõik vajalikud andmed mällu. Virtuaalset lülitit kasutatakse võrguliikluse haldamiseks konteineri ja füüsilise võrgu vahel.

Konteineris olev OS võib olla Server Core või Nano Server. Esimene, üldiselt ei ole uudsus pikka aega ja annab kõrge taseühilduvus olemasolevate rakendustega. Teine on veelgi nõrgem monitorita versioon, mis võimaldab serverit käitada väikseimas võimalikus konfiguratsioonis kasutamiseks koos Hyper-V, failiserveri (SOFS) ja pilveteenustega. Graafiline liides on loomulikult puudu. Sisaldab ainult kõige vajalikumaid komponente (.NET koos CoreCLR-iga, Hyper-V, Clustering ja nii edasi). Kuid lõpuks võtab see 93% vähem ruumi ja nõuab vähem olulisi parandusi.

Veel üks huvitav punkt. Konteinerite haldamiseks saate lisaks traditsioonilisele PowerShellile kasutada ka Dockerit. Ja selleks, et Win-is oleks võimalik käitada mitte-natiivseid utiliite, tegi MS koostööd Dockeri API ja tööriistakomplekti laiendamiseks. Kõik arendused on avatud ja saadaval Dockeri projekti ametlikus GitHubis. Dockeri halduskäsud kehtivad kõigile konteineritele, nii Win kui ka Linuxile. Kuigi loomulikult ei saa Linuxis loodud konteinerit Windowsis käivitada (nagu ka vastupidi). Praegu on PowerShelli funktsionaalsus piiratud ja võimaldab töötada ainult kohaliku hoidlaga.

Konteinerite paigaldamine

Azure'il on nõutav Windows Server 2016 Core with Containers Tech Preview 4 pilt, mida saate juurutada ja konteinerite uurimiseks kasutada. Vastasel juhul peate kõik ise konfigureerima. Kohaliku installi jaoks on vaja Win 2016 ja kuna Hyper-V in Win 2016 toetab pesastatud virtualiseerimist (Pesastatud virtualiseerimine), võib see olla kas füüsiline või virtuaalne server. Komponendi paigaldamise protsess on standardne. Valige rollide ja funktsioonide lisamise viisardis sobiv element või andke PowerShelli abil käsk

PS> Install - Windowsi funktsioonikonteinerid

Selle käigus paigaldatakse ka Virtual Switchi võrgukontroller, see tuleb kohe seadistada, vastasel juhul tekitavad edasised toimingud vea. Vaatame võrguadapterite nimesid:

PS> Get-NetAdapter

Töötamiseks vajame kontrollerit tüübiga Väline. New-VMSwitchi cmdletil on palju parameetreid, kuid näite huvides saame hakkama minimaalsete sätetega:

PS> Uus-VMSlüliti -Väline nimi -NetAdapteri nimi Ethernet0

Kontrollime:

PS> Hankige VMSwitch | kus ($_.SwitchType –eq "Väline")

Windowsi tulemüür blokeerib ühendused konteineriga. Seetõttu peate looma lubamisreegli, vähemalt selleks, et saaksite PowerShelli kaugjuhtimise abil kaugühenduse luua, selleks lubame TCP / 80 ja loome NAT-reegli:

PS> Uus-NetFirewallReegel -Nimi "TCP80" -Kuvanimi "HTTP on TCP/80" -Protokoll tcp -LocalPort 80 -Toiming Luba -Lubatud Tõeline ternalPort 80

On veel üks lihtne juurutamisvõimalus. Arendajad on ette valmistanud skripti, mis võimaldab teil kõik sõltuvused automaatselt installida ja hosti konfigureerida. Soovi korral saate seda kasutada. Skripti sees olevad parameetrid aitavad teil mõista kõiki mehhanisme:

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

On veel üks võimalus – juurutada konteineri toega valmis virtuaalmasin. Selleks on samal ressursil skript, mis täidab kõik automaatselt soovitud toimingud. üksikasjalikud juhised loetletud MSDN-is. Laadige alla ja käivitage skript:

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

Nimi on suvaline ja -WindowsImage näitab ehitatava pildi tüüpi. Valikud võivad olla NanoServer, ServerDatacenter. Ka Docker installitakse kohe, selle puudumise või olemasolu eest vastutab parameeter SkipDocker ja IncludeDocker. Pärast käivitamist alustatakse pildi laadimist ja teisendamist, protsessi käigus peate VM-i sisenemiseks määrama parooli. ISO-fail ise on üsna suur, peaaegu 5 GB. Kui kanal on aeglane, saab faili teise arvutisse alla laadida, seejärel ümber nimetada WindowsServerTP4-ks ja kopeerida kausta C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks . Saame installitud virtuaalmasinasse sisse logida, määrates kokkupanemisel määratud parooli, ja töötame.

Nüüd saate minna otse konteinerite kasutamise juurde.

Konteinerite kasutamine PowerShelliga

Konteinerite moodul sisaldab 32 PowerShelli cmdlet-käsku, millest mõne puhul on dokumentatsioon veel puudulik, kuigi üldiselt piisab sellest, et kõik toimiks. Nimekirja on lihtne hankida:

PS> Get-Command -moodul Konteinerid

Saadaolevate piltide loendi saate hankida cmdlet-käsuga Get-ContainerImage, konteinerid - Get-Container. Konteineri puhul kuvatakse veerus Olek selle praegune olek: peatatud või töötab. Kuid tehnoloogia arendamise ajal ei ole MS andnud hoidlat ja, nagu mainitud, samal ajal kui PowerShell töötab kohaliku hoidlaga, peate selle katsete jaoks ise looma.

Niisiis, meil on toega server, nüüd vajame konteinereid ise. Selleks määrame paketipakkuja ContainerProvider.

Jätkuvalt saadaval ainult liikmetele

Võimalus 1. Liituge saidi kogukonnaga, et lugeda kõiki saidil olevaid materjale

Kommuuni kuulumine määratud perioodi jooksul annab teile juurdepääsu KÕIGILE häkkerite materjalidele, suurendab teie isiklikku kumulatiivset allahindlust ja võimaldab teil koguda professionaalset Xakep Score reitingut!