Windows poslužiteljski spremnici. Kako pakirati aplikaciju u Docker kontejner? Kontejneri SQL poslužitelja

Spremnici u sustavu Microsoft Windows Server 2016 proširenje su mogućnosti tehnologije za kupce. Microsoft planira korisnički razvoj, implementaciju i sada hosting aplikacija u spremnicima kao dio svojih razvojnih procesa.

Kako se tempo implementacije aplikacija nastavlja ubrzavati, a korisnici koriste implementacije inačica aplikacije na dnevnoj ili čak satnoj bazi, mogućnost brze implementacije aplikacija potvrđenih s tipkovnice razvojnog programera u proizvodnju ključna je za poslovni uspjeh. Ovaj proces se ubrzava pomoću spremnika.

Dok virtualni strojevi imaju funkciju migracije aplikacija u podatkovnim centrima iu oblak i izvan njega, virtualizacijski resursi dodatno se otključavaju spremnicima koji koriste virtualizaciju OS-a (System Software). Ova odluka, zahvaljujući virtualizaciji, omogućit će brzu isporuku aplikacija.

Windows tehnološki spremnik uključuje dva različite vrste spremnici, Windows Server Container i Hyper-V Containers. Obje vrste spremnika kreiraju se, upravljaju i funkcioniraju na identičan način. Oni čak proizvode i konzumiraju istu sliku spremnika. Međusobno se razlikuju po razini izolacije stvorene između spremnika, glavnog operativnog sustava i svih ostalih spremnika koji se izvode na glavnom računalu.

Windows Server kontejneri: Višestruke instance spremnika mogu se izvoditi istovremeno na glavnom računalu uz izolaciju koja se osigurava kroz imenski prostor, upravljanje resursima i tehnologije izolacije procesa. Windows Server Containers imaju istu jezgru koja se nalazi na hostu.

Hyper-V spremnici: Više instanci spremnika može se izvoditi istovremeno na glavnom računalu. Međutim, svaki je spremnik implementiran unutar namjenskog virtualnog stroja. To osigurava izolaciju na razini jezgre između svakog Hyper-V spremnika i glavnog spremnika.

Microsoft je u značajku spremnika uključio skup Docker alata za upravljanje ne samo Linux spremnicima, već i Windows Server i Hyper-V spremnicima. Kao dio suradnje u Linux i Windows zajednicama, Docker iskustvo je prošireno stvaranjem PowerShell modula za Docker, koji je sada otvoren izvor za. PowerShell modul može upravljati Linux i Windows Sever kontejnerima lokalno ili daljinski koristeći Docker REST API tehnologiju. Programeri su zadovoljni inovacijama za klijente koji koriste otvoreni kod za razvoj naše platforme. U budućnosti planiramo našim klijentima donijeti tehnologije zajedno s inovacijama poput Hyper-V.

Kupite Windows Server 2016

Nudimo vam da kupite Windows Server 2016 uz popust od službeni partner Microsoft u Rusiji – tvrtka DATASYSTEMS. Imat ćete priliku dobiti savjet, kao i besplatno preuzeti Windows Server 2016 za testiranje kontaktiranjem naših stručnjaka za tehničku podršku. Windows Server 2016 cijena na upit. Komercijalna ponuda Za sudjelovanje u kupnji Windows Servera 2016 možete na zahtjev primiti na e-mail:

Proučavanje kontejnerske tehnologije
Windows Server 2016

Jedna od značajnih novih značajki predstavljenih u sustavu Windows Server 2016 je podrška za spremnike. Upoznajmo je bolje

Moderni sustavi odavno su se udaljili od principa jedan OS - jedan poslužitelj. Tehnologije virtualizacije omogućuju učinkovitije korištenje resursa poslužitelja, omogućujući vam da pokrenete nekoliko operativnih sustava, podijelite ih među sobom i pojednostavite administraciju. Zatim su se pojavile mikrousluge koje su dopuštale da se izolirane aplikacije postave kao zasebna, lako upravljiva i skalabilna komponenta. Docker je promijenio sve. Proces isporuke aplikacije zajedno s okruženjem postao je toliko jednostavan da nije mogao a da ne zainteresira krajnjeg korisnika. Aplikacija unutar spremnika radi kao da koristi punopravni OS. Ali za razliku od virtualnih strojeva, oni ne učitavaju vlastite kopije OS-a, biblioteka, sistemskih datoteka itd. Kontejneri dobivaju izolirani prostor imena u kojem aplikacija ima pristup svim potrebnim resursima, ali ne može ići izvan njih. Ako trebate promijeniti postavke, spremaju se samo razlike s glavnim OS-om. Stoga se spremnik, za razliku od virtualnih strojeva, vrlo brzo pokreće i manje opterećuje sustav. Kontejneri učinkovitije koriste resurse poslužitelja.

Kontejneri u sustavu Windows

U sustavu Windows Server 2016, uz postojeće virtualizacijske tehnologije - Hyper-V i Server App-V virtualne aplikacije, dodana je podrška za Windows Server Containers kontejnere, implementirane kroz sloj apstrakcije stogova Container Management koji implementira sve potrebne funkcije. Tehnologija je najavljena još u Technical Preview 4, no od tada se puno toga promijenilo u smjeru pojednostavljenja i ne morate čak ni čitati upute koje su prije napisane. Istodobno su predložene dvije vrste "njihovih" spremnika - Windows spremnici i Hyper-V spremnici. Vjerojatno je još jedna glavna prilika korištenje Docker alata uz PowerShell cmdlete za upravljanje spremnicima.

Windows spremnici načelno su slični FreeBSD Jail-u ili Linux OpenVZ-u; koriste jednu jezgru s OS-om, koju zajedno s drugim resursima (RAM, mreža) dijele međusobno. OS i servisne datoteke projiciraju se u imenski prostor svakog spremnika. Ova vrsta spremnika učinkovito koristi resurse, smanjujući opterećenje i stoga omogućuje gušće postavljanje aplikacija. Budući da slike osnovnog spremnika "imaju" istu jezgru kao i čvor, njihove se verzije moraju podudarati, inače rad nije zajamčen.

Hyper-V spremnici koriste dodatnu razinu izolacije i svakom spremniku dodijeljena je vlastita jezgra i memorija. Izolaciju, za razliku od prethodne vrste, ne provodi jezgra OS-a, već hipervizor Hyper-V (potrebna je uloga Hyper-V). Rezultat su manji troškovi od virtualnih strojeva, ali veća izolacija od Windows spremnika. U ovom slučaju, da biste pokrenuli spremnik, morate imati istu jezgru OS-a. Ovi spremnici također se mogu implementirati u Windows 10 Pro/Enterprise. Posebno je vrijedno napomenuti da se vrsta spremnika ne odabire tijekom izrade, već tijekom postavljanja. To jest, bilo koji spremnik može se pokrenuti i kao Windows i kao Hyper-V verzija.

Spremnik koristi skraćeni Server Core ili Nano Server kao OS. Prvi se pojavio u Windows Severu 2008 i pruža veću kompatibilnost s postojećim aplikacijama. Drugi je još više ogoljen u usporedbi s Server Core i dizajniran je za rad bez monitora, što vam omogućuje da pokrenete poslužitelj u minimalnoj mogućoj konfiguraciji za korištenje s Hyper-V, poslužiteljem datoteka (SOFS) i uslugama u oblaku, zahtijevajući 93% manje prostora. Sadrži samo najpotrebnije komponente (.Net s CoreCLR, Hyper-V, Clustering itd.).

Za pohranu se koristi format slike tvrdi disk VHDX. Spremnici se, kao u slučaju Dockera, spremaju u slike u repozitoriju. Štoviše, svaki od njih ne sprema cijeli skup podataka, već samo razlike stvorena slika od osnovnog. A u trenutku pokretanja svi potrebni podaci se projiciraju u memoriju. Virtualni prekidač se koristi za upravljanje mrežnim prometom između spremnika i fizičke mreže.

Kako pakirati aplikaciju u Docker kontejner?

Imam aplikaciju napisanu u NodeJS. Kako ga mogu upakirati u Docker sliku da se pokreće kao spremnik?

Docker je sustav za upravljanje spremnikom za operativne sustave kompatibilne s POSIX-om (trenutačno podržava Linux). Posebna značajka Dockera je mogućnost pakiranja aplikacije sa svim potrebnim okruženjem na takav način da se može pokrenuti na drugom sustavu bez dugih i složenih procedura za instaliranje ovisnosti ili izgradnju iz izvora. Zapakirana aplikacija spremna za implementaciju naziva se "slika". Docker slike temelje se na "predlošcima" - unaprijed konfiguriranim radnim okruženjima. Možete ih zamisliti kao distribucije operacijskog sustava, iako to nije sasvim točno. Također možete izraditi vlastiti predložak pregledom Docker dokumentacije. Prednost ovog pristupa je u tome što će slika vaše aplikacije sadržavati samo samu aplikaciju, a okruženje potrebno za nju automatski će se preuzeti iz repozitorija predložaka. Docker pomalo podsjeća na chroot ili bsd zatvor, ali radi drugačije.

Važno je razlikovati pojmove "spremnik" i "slika". Spremnik je pokrenuta kopija vaše aplikacije, a slika je datoteka u kojoj je aplikacija pohranjena i iz koje se kreira spremnik.

Recimo da imate NodeJS aplikaciju koju želite kontejnerizirati. Pretpostavimo da se datoteka koja pokreće vašu aplikaciju zove server.js, a aplikacija radi na portu 8000. Koristit ćemo "node:carbon" kao predložak. Da biste svoju aplikaciju pretvorili u kontejnere, morate stvoriti datoteku “Dockerfile” u direktoriju gdje se nalaze vaše aplikacijske datoteke, koja će opisati parametre pripreme slike:

$ dodirnite Dockerfile

Sadržaj datoteke mogao bi biti otprilike ovakav:

# Navedite predložak za korištenje FROM node:carbon # Kreirajte radni direktorij aplikacije unutar spremnika WORKDIR /usr/src/app # Instalirajte ovisnosti aplikacije pomoću npm # Kopiraju se i package.json i package-lock.json datoteke, ako postoje KOPIRAJTE package*.json ./ RUN npm install # Kopirajte datoteke svoje aplikacije na sliku COPY . . # Otvorite port 8000 tako da mu se može pristupiti izvan spremnika EXPOSE 8000 # Izvršite naredbu za pokretanje aplikacije unutar spremnika CMD [ "npm", "start" ]

Da biste isključili nepotrebne datoteke sa slike, možete navesti njihova imena u datoteci ".dockerignore". Možete koristiti masku (*.log).

Slika se gradi sljedećom naredbom:

$ docker build -t korisničko ime/web-aplikacija čvora.

$ docker slike # Primjer SPREMIŠTA OZNAKE ID IZRAĐEN node carbon 1934b0b038d1 prije 5 dana korisničko ime/čvor-web-aplikacija najnovije d64d3505b0d2 prije 1 minutu

Spremnik se pokreće iz slike pomoću sljedeće naredbe:

$ docker run -p 49160:8000 -d korisničko ime/web-aplikacija-čvora

Ovaj primjer stvara spremnik iz slike "username/node-web-app" i odmah ga pokreće. Aplikacijski port 8000 dostupan je na lokalnom računalu (localhost) i kako bi mu se moglo pristupiti “vani”, “prosljeđuje” se na port 49160. Možete odabrati bilo koji slobodni port, osim toga, moguće je proslijediti aplikaciju port “kakav jest” navođenjem opcije " -p 8000:8000".

Možete vidjeti da vaš spremnik radi unosom naredbe:

$ docker ps # ID primjera SLIKA NAREDBA ... PORTS ecce33b30ebf korisničko ime/čvor-web-app: najnoviji npm početak ... 49160->8000

Spremnikom se može upravljati pomoću različitih naredbi navođenjem ID-a ovog spremnika:

$ docker pause ecce33b30ebf - pauziraj spremnik s ID-om ecce33b30ebf
$ docker resume ecce33b30ebf - nastavi spremnik s ID-om ecce33b30ebf
$ docker stop ecce33b30ebf - spremnik za zaustavljanje s ID-om ecce33b30ebf
$ docker rm ecce33b30ebf - brisanje spremnika (ovo briše sve podatke koje je kreirala aplikacija unutar spremnika)

Gotovo je! Pomogle su ili molitve ili žrtve, ali sada možete pokrenuti Docker spremnike s Windowsima unutra. Sjajne vijesti stigle su zajedno s izdanjem Windows Servera 2016. I ne govorimo o nekom vješto skrivenom virtualnom stroju ili Windows emulaciji na Linux kernelu - pravi Windows radi u pravom Dockeru, s pokrenutim Dockerfileom, docker-compose i drugim Dockerom stvari .

Ograničenja

Ali to ne znači da sada možete pokrenuti bilo koji spremnik bilo gdje. Zbog činjenice da Docker spremnici "posuđuju" jezgru operativnog sustava sa svog glavnog računala (inače bi morali imati vlastiti OS i pretvoriti se u virtualni stroj), Windows spremnici se mogu pokrenuti samo na najnovijem Windows 10 Pro Anniversary Update i Windows Server 2016.

Druga stvar je da je još uvijek nemoguće pokrenuti izvorni Linux spremnik na Windowsima. Anniversary Update ima svoj vlastiti Linux podsustav (s kojim možete pokrenuti pravi Bash, na primjer), ali ne drži do potpunog Linux kernela, tako da isti spremnik s Ubuntuom na Windowsima i dalje treba skriveni virtualni stroj.

Konačno, možete pokrenuti oba spremnika na Windows računalu u isto vrijeme, ali uz određene poteškoće. Ako pokrenete ovu naredbu na Windows Serveru 2016 s instaliranim Dockerom (prije godinu dana ovo bih nazvao čarobnjaštvom), radit će:

Ali ako nakon ove naredbe pokušate pokrenuti Ubuntu kontejner, Docker će se rastužiti:

Problem je u tome što Windows i Linux spremnike poslužuju različiti Docker demoni, koji, međutim, koriste isti kanal za komunikaciju s naredbenim redkom. To jest, u bilo kojem trenutku samo jedan demon može biti aktivan. Postoji beta "Docker za Windows" na službenoj web stranici Docker koja pokušava riješiti problem (za sada samo na Windows 10 Pro i Enterprise). Ali čak i s njim, da biste se prebacili s Windows na Linux spremnike, morate otići u izbornik postavki ili komunicirati s naredbenim redom:

PowerShell

& "C:\Programske datoteke\Docker\Docker\DockerCli.exe" -SwitchDaemon

& "C:\Programske datoteke\Docker\Docker\DockerCli.exe"-SwitchDaemon

Windows slike

Do sada postoje samo dvije osnovne slike s kontejnerskim Windowsima:

Ne možete napraviti vlastitu osnovnu sliku (scratch sliku).

Windows Server Core image ima čak 10 giga i uglavnom se ponaša kao puni Windows Server 2016. Tu se, primjerice, bez problema instalira MS SQL i puni .NET Framework. Ako vaša aplikacija ne ovisi uvelike o korisničkom sučelju, bit će instalirana.

Nano Server je malo zanimljiviji. To je visoko optimiziran i ogoljen Windows Server koji teži manje od jednog koncerta. Ali ima i dovoljno ograničenja: nema 32-bitnih aplikacija, korisničkog sučelja, RDP-a, isjeckanog PowerShell-a itd. Ali to vas ne sprječava da instalirate isti IIS, .NET Core, pa čak i neki MySQL na Nano Server.

I tko je mogao zamisliti prije nekoliko godina da u Dockerfileu možete pronaći "Microsoft", "Windows" i "PowerShell" odjednom?

IZ microsoft/windowsservercore RUN powershell -Command....

OD microsoft/windowsservercore

POKRENI powershell - Naredba . . . .

To je Windows u Dockeru! Još uvijek zvuči apsurdno.

Stupnjevi izolacije

Windows spremnici mogu se izvoditi u dva načina izolacije:

  • Windows Server kontejneri
  • Hyper-V spremnici

U prvom Windows načinu rada spremnici se ponašaju isto kao i svi ostali spremnici u Dockeru: dijele zajedničku jezgru s operativnim sustavom, procesi spremnika su izolirani, ali još uvijek vidljivi u stablu procesa glavnog računala itd. Ovo je zadana i većina brz način pokrenite spremnik u sustavu Windows.

U drugom slučaju, spremnici padaju u poseban Hyper-V virtualni stroj. To, naravno, loše utječe na brzinu pokretanja, ali izolacija je potpuna.

Zaključak

Windows on Docker je sjajna vijest. Čak i ako ne žurite pakirati svoje proizvode u kontejnere, ovo je izvrstan alat za izolaciju vaših jediničnih testova, proizvodnih strojeva, demo poslužitelja, sandboxova - svega za što ste prethodno morali izraditi virtualni stroj. Ako Microsoft ipak uspije pokrenuti nanoserver na Linuxu, onda ću im oprostiti nedavno ukidanje Microsoft Band 2, koji sam nerazborito kupio dva mjeseca prije.

*nix sustavi u početku implementiraju multitasking i nude alate koji vam omogućuju izolaciju i kontrolu procesa. Tehnologije kao što su chroot(), koja osigurava izolaciju na razini datotečnog sustava, FreeBSD Jail, koji ograničava pristup strukturama kernela, LXC i OpenVZ, odavno su poznate i široko korištene. Ali poticaj za razvoj tehnologije bio je Docker, koji je omogućio prikladnu distribuciju aplikacija. Sada je ista stvar stigla i do Windowsa.

Kontejneri u sustavu Windows

Moderni poslužitelji imaju višak kapaciteta, a aplikacije ponekad niti ne koriste njihove dijelove. Kao rezultat toga, sustavi neko vrijeme "stoje u stanju mirovanja", zagrijavajući zrak. Rješenje je bila virtualizacija, koja vam omogućuje da pokrenete nekoliko operativnih sustava na jednom poslužitelju, zajamčeno ih razdvojite i svakom dodijelite potrebnu količinu resursa. Ali napredak ne stoji mirno. Sljedeća faza su mikroservisi, kada se svaki dio aplikacije postavlja zasebno, kao samodostatna komponenta koja se lako može skalirati na potrebno opterećenje i ažurirati. Izolacija sprječava druge aplikacije da ometaju mikroservis. Pojavom projekta Docker, koji je pojednostavio proces pakiranja i isporuke aplikacija zajedno s okruženjem, arhitektura mikroservisa dobila je dodatni poticaj u razvoju.

Kontejneri su još jedna vrsta virtualizacije koja pruža zasebno okruženje za pokretanje aplikacija, a zove se OS virtualizacija. Spremnici su implementirani korištenjem izoliranog imenskog prostora, koji uključuje sve resurse potrebne za rad (virtualizirana imena), s kojima možete komunicirati (datoteke, mrežni priključci, procesi itd.) i koje ne možete napustiti. Odnosno, OS prikazuje spremniku samo ono što je dodijeljeno. Aplikacija unutar spremnika vjeruje da je jedina i radi u potpunom OS-u bez ikakvih ograničenja. Ako je potrebno promijeniti postojeću datoteku ili stvoriti novu, spremnik prima kopije od glavnog OS-a hosta, spremajući samo promijenjene odjeljke. Stoga je postavljanje više spremnika na jednom hostu vrlo učinkovito.

Razlika između spremnika i virtualnih strojeva je u tome što spremnici ne učitavaju vlastite kopije OS-a, biblioteka, sistemskih datoteka itd. operacijski sustav kao da se dijeli s kontejnerom. Jedina dodatna stvar koja je potrebna su resursi potrebni za pokretanje aplikacije u spremniku. Kao rezultat toga, spremnik se pokreće za nekoliko sekundi i opterećuje sustav manje nego kada se koriste virtualni strojevi. Docker trenutno nudi 180 tisuća aplikacija u repozitoriju, a format je unificirao Open Container Initiative (OCI). Ali ovisnost o kernelu znači da spremnici neće raditi na drugom OS-u. Linux spremnici zahtijevaju Linux API, tako da Windows neće raditi na Linuxu.

Donedavno su Windows programeri nudili dvije virtualizacijske tehnologije: virtualne strojeve i virtualne aplikacije Server App-V. Svaki ima svoju nišu primjene, svoje prednosti i nedostatke. Sada je raspon postao širi - spremnici su najavljeni u sustavu Windows Server 2016. I iako u vrijeme TP4 razvoj još nije bio dovršen, već je sasvim moguće vidjeti novu tehnologiju na djelu i izvući zaključke. Treba napomenuti da su, sustižući i imajući pri ruci gotove tehnologije, MS programeri otišli malo dalje u nekim pitanjima, tako da je korištenje spremnika postalo lakše i univerzalnije. Glavna razlika je u tome što se nude dvije vrste spremnika: Windows spremnici i Hyper-V spremnici. U TP3 samo su prvi bili dostupni.

Windows spremnici koriste jednu jezgru s OS-om, koja se dinamički dijeli među njima. Proces distribucije (CPU, RAM, mreža) preuzima OS. Ako je potrebno, možete ograničiti maksimalne dostupne resurse dodijeljene spremniku. Datoteke OS-a i pokrenute usluge preslikavaju se u prostor imena svakog spremnika. Ova vrsta spremnika učinkovito koristi resurse, smanjujući opterećenje i stoga omogućuje gušće postavljanje aplikacija. Ovaj način rada pomalo podsjeća na FreeBSD Jail ili Linux OpenVZ.

Hyper-V spremnici pružaju dodatnu razinu izolacije koristeći Hyper-V. Svakom spremniku dodijeljena je vlastita jezgra i memorija; izolaciju ne provodi jezgra OS-a, već hipervizor Hyper-V. Rezultat je ista razina izolacije kao i virtualni strojevi, s manjim opterećenjem od virtualnih strojeva, ali većim opterećenjem od Windows spremnika. Da biste koristili ovu vrstu spremnika, trebate instalirati Hyper-V ulogu na glavnom računalu. Windows spremnici su prikladniji za korištenje u pouzdanom okruženju, kao što je pokretanje aplikacija iz iste organizacije na poslužitelju. Kada poslužitelj koristi više tvrtki i potrebna je veća razina izolacije, Hyper-V spremnici će vjerojatno imati više smisla.

Važna značajka spremnika u Win 2016 je da se vrsta ne odabire u trenutku stvaranja, već u trenutku implementacije. To jest, bilo koji spremnik može se pokrenuti i kao Windows i kao Hyper-V.

U Win 2016, za spremnike je odgovoran sloj apstrakcije stoga upravljanja kontejnerima koji implementira sve potrebne funkcije. Za pohranu se koristi VHDX format slike tvrdog diska. Spremnici se, kao u slučaju Dockera, spremaju u slike u repozitoriju. Štoviše, svaki ne sprema kompletan skup podataka, već samo razlike između stvorene slike i osnovne, au trenutku pokretanja svi potrebni podaci projiciraju se u memoriju. Virtualni prekidač koristi se za upravljanje mrežnim prometom između spremnika i fizičke mreže.

Server Core ili Nano Server mogu se koristiti kao OS u spremniku. Prvi, općenito, dugo nije nov i pruža visoka razina kompatibilnost s postojećim aplikacijama. Druga je još skraćenija verzija za rad bez monitora, koja vam omogućuje pokretanje poslužitelja u minimalnoj mogućoj konfiguraciji za korištenje s Hyper-V, poslužiteljem datoteka (SOFS) i uslugama u oblaku. Naravno, nema grafičkog sučelja. Sadrži samo najnužnije komponente (.NET s CoreCLR, Hyper-V, klasteriranje i tako dalje). Ali na kraju zauzima 93% manje prostora i zahtijeva manje kritičnih popravaka.

Još jedna zanimljiva točka. Za upravljanje spremnicima, uz tradicionalni PowerShell, možete koristiti i Docker. A kako bi pružio mogućnost pokretanja ne-nativnih uslužnih programa na Win-u, MS se udružio u proširenju Docker API-ja i alata. Svi razvoji su otvoreni i dostupni na službenom GitHubu Docker projekta. Naredbe za upravljanje Dockerom primjenjuju se na sve spremnike, i Win i Linux. Iako je, naravno, nemoguće pokrenuti spremnik kreiran na Linuxu na Windowsima (kao i obrnuto). Trenutno je PowerShell ograničen u funkcionalnosti i omogućuje vam samo rad s lokalnim spremištem.

Instalacijski kontejneri

Azure ima potrebnu sliku Windows Server 2016 Core with Containers Tech Preview 4 koju možete implementirati i koristiti za istraživanje spremnika. U suprotnom, trebate sve sami konfigurirati. Za lokalnu instalaciju potreban vam je Win 2016, a budući da Hyper-V u Win 2016 podržava ugniježđenu virtualizaciju, može biti ili fizički ili virtualni poslužitelj. Sam proces instalacije komponente je standardan. Odaberite odgovarajuću stavku u čarobnjaku za dodavanje uloga i značajki ili, koristeći PowerShell, izdajte naredbu

PS> Install-WindowsFeature Containers

Tijekom procesa instalirat će se i mrežni kontroler Virtual Switch; mora se odmah konfigurirati, inače će daljnje radnje generirati pogrešku. Pogledajmo nazive mrežnih adaptera:

PS>Get-NetAdapter

Za rad nam je potreban kontroler s vanjskim tipom. New-VMSwitch cmdlet ima mnogo parametara, ali za potrebe ovog primjera zadovoljit ćemo se minimalnim postavkama:

PS> New-VMSwitch -Name External -NetAdapterName Ethernet0

Provjeravamo:

PS> Get-VMSwitch | gdje ($_.SwitchType –eq "Vanjski")

Windows vatrozid blokirat će veze sa spremnikom. Stoga je potrebno izraditi dopuštajuće pravilo, barem kako bismo se mogli povezati na daljinu koristeći PowerShell remoting; za to ćemo dopustiti TCP/80 i izraditi NAT pravilo:

PS> New-NetFirewallRule -Name "TCP80" -DisplayName "HTTP on TCP/80" -Protocol tcp -LocalPort 80 -Action Allow -Enabled True PS> Add-NetNatStaticMapping -NatName "ContainerNat" -Protocol TCP -ExternalIPAddress 0.0.0.0 - InternalIPAddress 192.168.1.2 -InternalPort 80 -ExternalPort 80

Postoji još jedna opcija za jednostavnu implementaciju. Programeri su pripremili skriptu koja vam omogućuje da automatski instalirate sve ovisnosti i konfigurirate host. Možete ga koristiti ako želite. Parametri unutar skripte pomoći će vam da razumijete sve mehanizme:

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

Postoji još jedna mogućnost - implementacija gotovog virtualnog stroja s podrškom za spremnik. Da biste to učinili, postoji skripta na istom resursu koja automatski proizvodi sve potrebne operacije. detaljne upute naveden na MSDN-u. Preuzmite i pokrenite skriptu:

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

Naziv postavljamo proizvoljno, a -WindowsImage označava vrstu slike koja se prikuplja. Opcije mogu biti NanoServer, ServerDatacenter. Docker se također odmah instalira; parametri SkipDocker i IncludeDocker odgovorni su za njegovu odsutnost ili prisutnost. Nakon pokretanja počet će preuzimanje i konverzija slike, tijekom procesa morat ćete navesti lozinku za prijavu u VM. Sama ISO datoteka je prilično velika, gotovo 5 GB. Ako je kanal spor, datoteka se može preuzeti na drugo računalo, zatim preimenovati u WindowsServerTP4 i kopirati u C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks. Možemo se prijaviti na instalirani virtualni stroj, navodeći lozinku navedenu tijekom montaže i raditi.

Sada možete prijeći izravno na korištenje spremnika.

Korištenje spremnika s PowerShell-om

Modul Containers sadrži 32 PowerShell cmdleta, od kojih su neki još nedovršeni, iako su općenito dovoljni da sve funkcionira. Lako je nabrojati:

PS> Get-Command - kontejneri modula

Popis dostupnih slika možete dobiti pomoću cmdleta Get-ContainerImage, spremnici - Get-Container. U slučaju spremnika, stupac Status prikazat će njegov trenutni status: zaustavljen ili pokrenut. No dok je tehnologija u razvoju, MS nije osigurao repozitorij i, kao što je spomenuto, PowerShell trenutno radi s lokalnim repozitorijem, tako da ćete ga za eksperimente morati sami izraditi.

Dakle, imamo poslužitelj s podrškom, sada nam trebaju sami spremnici. Da biste to učinili, instalirajte dobavljača paketa ContainerProvider.

Nastavak je dostupan samo članovima

Opcija 1. Pridružite se zajednici "site" kako biste pročitali sve materijale na stranici

Članstvo u zajednici unutar navedenog razdoblja omogućit će vam pristup SVIM hakerskim materijalima, povećati vaš osobni kumulativni popust i omogućiti vam da skupite profesionalnu ocjenu Xakep Score!