Windows-serverbehållare. Hur paketerar man en applikation i en Docker-behållare? SQL Server-behållare

Behållare i Microsoft Windows Server 2016 är en förlängning av teknikens möjligheter för kunder. Microsoft planerar kundutveckling, driftsättning och nu hosting av applikationer i containrar som en del av deras utvecklingsprocesser.

Eftersom takten i implementeringen av applikationer fortsätter att öka och kunderna använder applikationsversioner dagligen eller till och med varje timme, är möjligheten att snabbt distribuera applikationer som validerats från utvecklarens tangentbord till produktion avgörande för affärsframgång. Denna process påskyndas av containrar.

Medan virtuella maskiner har funktionen att migrera applikationer i datacenter och till molnet och utanför, låses virtualiseringsresurser upp ytterligare av behållare som använder OS-virtualisering (systemprogramvara). Detta beslut, tack vare virtualisering, möjliggör snabb leverans av applikationer.

Windows-teknikbehållare innehåller två olika typer containrar, Windows Server Container och Hyper-V Containers. Båda typerna av behållare skapas, hanteras och fungerar identiskt. De producerar och konsumerar till och med samma containerbild. De skiljer sig från varandra i nivån av isolering som skapas mellan behållaren, värdoperativsystemet och alla andra behållare som körs på värden.

Windows Server-behållare: Flera containerinstanser kan köras samtidigt på en värd med isolering som tillhandahålls genom namnutrymme, resurshantering och processisoleringsteknik. Windows Server Containers har samma kärna som finns på värden.

Hyper-V-behållare: Flera containerinstanser kan köras samtidigt på en värd. Varje behållare är dock implementerad i en dedikerad virtuell maskin. Detta ger isolering på kärnnivå mellan varje Hyper-V-behållare och värdbehållaren.

Microsoft har inkluderat en uppsättning Docker-verktyg i containerfunktionen för att hantera inte bara Linux-containrar utan även Windows Server- och Hyper-V-containrar. Som en del av samarbetet i Linux- och Windows-gemenskaperna utökades Docker-upplevelsen genom att skapa PowerShell-modulen för Docker, som nu är öppen källkod för. PowerShell-modulen kan hantera Linux- och Windows Server-behållare lokalt eller på distans med hjälp av Docker REST API-teknik. Utvecklare är nöjda med att förnya för kunder som använder öppen källkod för att utveckla vår plattform. I framtiden planerar vi att ge våra kunder teknologier tillsammans med innovationer som Hyper-V.

Köp Windows Server 2016

Vi erbjuder dig att köpa Windows Server 2016 med rabatt från officiella partner Microsoft i Ryssland – DATASYSTEMS Company. Du kommer att ha möjlighet att få råd, samt ladda ner Windows Server 2016 gratis för testning genom att kontakta våra tekniska supportspecialister. Windows Server 2016 pris på begäran. Kommersiellt erbjudande För att delta i köpet av Windows Server 2016 kan du på begäran få via e-post:

Studerar containerteknik
Windows Server 2016

En av de anmärkningsvärda nya funktionerna som introduceras i Windows Server 2016 är stöd för behållare. Låt oss lära känna henne bättre

Moderna system har länge gått bort från principen om ett OS - en server. Virtualiseringstekniker gör det möjligt att använda serverresurser mer effektivt, vilket gör att du kan köra flera operativsystem, dela upp dem mellan sig och förenkla administrationen. Sedan dök det upp mikrotjänster som gjorde att isolerade applikationer kunde distribueras som en separat, lätthanterlig och skalbar komponent. Docker ändrade allt. Processen att leverera en applikation tillsammans med miljön har blivit så enkel att den inte kunde låta bli att intressera slutanvändaren. Applikationen inuti behållaren fungerar som om den skulle använda ett fullfjädrat OS. Men till skillnad från virtuella maskiner laddar de inte sina egna kopior av OS, bibliotek, systemfiler etc. Behållare får ett isolerat namnområde där applikationen har tillgång till alla nödvändiga resurser, men inte kan gå längre än dem. Om du behöver ändra inställningarna sparas endast skillnader med huvudoperativsystemet. Därför startar behållaren, till skillnad från virtuella maskiner, mycket snabbt och belastar systemet mindre. Behållare använder serverresurser mer effektivt.

Behållare på Windows

I Windows Server 2016, förutom befintliga virtualiseringsteknologier - Hyper-V och Server App-V virtuella applikationer, har stöd för Windows Server Containers-behållare lagts till, implementerat genom Container Management-stackabstraktionslagret som implementerar alla nödvändiga funktioner. Tekniken tillkännagavs redan i Technical Preview 4, men sedan dess har mycket förändrats i riktning mot förenkling och du behöver inte ens läsa instruktionerna som skrivits tidigare. Samtidigt föreslogs två typer av "deras" behållare - Windows-behållare och Hyper-V-behållare. Och förmodligen är en annan viktig möjlighet att använda Docker-verktyg utöver PowerShell-cmdlets för att hantera behållare.

Windows-behållare liknar i princip FreeBSD Jail eller Linux OpenVZ; de använder en kärna med operativsystemet, som tillsammans med andra resurser (RAM, nätverk) delas sinsemellan. OS- och tjänstefiler projiceras i namnutrymmet för varje behållare. Den här typen av behållare använder resurser effektivt, vilket minskar omkostnader och gör att applikationer kan placeras tätare. Eftersom basbehållarbilderna "har" samma kärna som noden måste deras versioner matcha, annars garanteras inte driften.

Hyper-V-behållare använder en extra nivå av isolering och varje behållare tilldelas sin egen kärna och minne. Isolering, till skillnad från den tidigare typen, utförs inte av OS-kärnan, utan av Hyper-V-hypervisorn (Hyper-V-rollen krävs). Resultatet är lägre omkostnader än virtuella maskiner, men större isolering än Windows-behållare. I det här fallet, för att köra behållaren, ha samma OS-kärna. Dessa behållare kan också distribueras i Windows 10 Pro/Enterprise. Det är särskilt värt att notera att behållartypen inte väljs under skapandet, utan under driftsättningen. Det vill säga, vilken behållare som helst kan lanseras både som Windows och som Hyper-V-versionen.

Behållaren använder trimmad Server Core eller Nano Server som operativsystem. Den första dök upp i Windows Server 2008 och ger större kompatibilitet med befintliga applikationer. Den andra är ännu mer avskalad jämfört med Server Core och är designad att köras utan bildskärm, vilket gör att du kan köra servern i minsta möjliga konfiguration för användning med Hyper-V, filserver (SOFS) och molntjänster, vilket kräver 93 % mindre utrymme. Innehåller endast de mest nödvändiga komponenterna (.Net med CoreCLR, Hyper-V, Clustering, etc.).

Bildformatet används för lagring hårddisk VHDX. Behållare, som i fallet med Docker, sparas i bilder i förvaret. Dessutom sparar var och en inte hela uppsättningen data, utan bara skillnaderna skapad bild från basic. Och i startögonblicket projiceras all nödvändig data i minnet. Virtual Switch används för att hantera nätverkstrafik mellan containern och det fysiska nätverket.

Hur paketerar man en applikation i en Docker-behållare?

Jag har en ansökan skriven i NodeJS. Hur kan jag paketera den i en Docker-bild för att köras som en behållare?

Docker är ett containerhanteringssystem för POSIX-kompatibla operativsystem (stöds för närvarande av Linux). En speciell egenskap hos Docker är möjligheten att paketera en applikation med all nödvändig miljö på ett sådant sätt att den kan köras på ett annat system utan långa och komplexa procedurer för att installera beroenden eller bygga från källor. En paketerad applikation som är redo för distribution kallas en "image". Docker-bilder är baserade på "mallar" - förkonfigurerade arbetsmiljöer. Du kan tänka på dessa som operativsystemdistributioner, även om detta inte är helt sant. Du kan också skapa din egen mall genom att granska Docker-dokumentationen. Fördelen med detta tillvägagångssätt är att bilden av din applikation endast kommer att innehålla själva applikationen, och den miljö som krävs för den kommer att laddas ner automatiskt från mallförrådet. Docker påminner lite om chroot eller bsd jail, men fungerar annorlunda.

Det är viktigt att skilja mellan begreppen "container" och "image". Behållaren är en löpande kopia av din applikation, och bilden är filen där applikationen är lagrad och från vilken behållaren skapas.

Låt oss säga att du har en NodeJS-applikation som du vill behålla. Låt oss anta att filen som kör din applikation heter server.js, och applikationen lyssnar på port 8000 för att fungera. Vi kommer att använda "node:carbon" som mall. För att behålla din applikation måste du skapa en "Dockerfile"-fil i katalogen där dina applikationsfiler finns, som kommer att beskriva parametrarna för bildförberedelse:

$ tryck på Dockerfile

Innehållet i filen kan vara ungefär så här:

# Ange mallen som ska användas FROM node:carbon # Skapa programmets arbetskatalog inuti behållaren WORKDIR /usr/src/app # Installera programberoenden med npm # Både package.json och package-lock.json-filerna kopieras, om de finns COPY paket*. json ./ KÖR npm installation # Kopiera dina programfiler till bilden COPY . . # Öppna port 8000 så att den är tillgänglig från utsidan av EXPOSE 8000-behållaren # Kör kommandot för att köra applikationen inuti behållaren CMD [ "npm", "start" ]

För att utesluta onödiga filer från bilden kan du lista deras namn i en ".dockerignore"-fil. Du kan använda en mask (*.log).

Bilden är byggd med följande kommando:

$ docker build -t användarnamn/nod-webb-app .

$ docker-bilder # Exempel FÖRVARINGSTAG-ID SKAPT nod carbon 1934b0b038d1 5 dagar sedan användarnamn/node-web-app senaste d64d3505b0d2 1 minut sedan

Behållaren startas från bilden med följande kommando:

$ docker run -p 49160:8000 -d användarnamn/nod-webb-app

Det här exemplet skapar en behållare från bilden "användarnamn/nod-webb-app" och kör den omedelbart. Applikationsport 8000 finns tillgänglig på den lokala maskinen (localhost) och för att den ska vara tillgänglig ”utanför” ”vidarebefordras” den till port 49160. Du kan välja valfri ledig port, dessutom går det att vidarebefordra applikationen port "som den är" genom att ange alternativet " -p 8000:8000".

Du kan se att din behållare körs genom att ange kommandot:

$ docker ps # Exempel ID BILDKOMMAND ... PORTAR ecce33b30ebf användarnamn/node-web-app: senaste npm start ... 49160->8000

En behållare kan hanteras med olika kommandon genom att ange ID:t för denna behållare:

$ docker paus ecce33b30ebf - pausa behållaren med ID ecce33b30ebf
$ docker CV ecce33b30ebf - återuppta behållaren med ID ecce33b30ebf
$ docker stop ecce33b30ebf - stop container med ID ecce33b30ebf
$ docker rm ecce33b30ebf - ta bort behållaren (detta tar bort all data som skapats av applikationen inuti behållaren)

Det är avslutat! Antingen hjälpte böner eller uppoffringar, men nu kan du köra Docker-containrar med Windows inuti. Goda nyheter kom tillsammans med lanseringen av Windows Server 2016. Och vi pratar inte om någon smart gömd virtuell maskin, eller Windows-emulering på en Linux-kärna - riktiga Windows körs i riktig Docker, med en körande Dockerfile, docker-compose och annan Docker grejer.

Restriktioner

Men det betyder inte att du nu kan köra vilken container som helst var som helst. På grund av det faktum att Docker-behållare "lånar ut" operativsystemkärnan från sin värd (annars skulle de behöva ha ett eget OS och förvandlas till en virtuell maskin), kan Windows-behållare endast köras på den senaste Windows 10 Pro Anniversary Update och Windows Server 2016.

Den andra punkten är att det fortfarande är omöjligt att köra en inbyggd Linux-behållare på Windows. Jubileumsuppdateringen har ett eget Linux-undersystem (med vilket du till exempel kan köra riktig Bash), men den håller inte för en fullfjädrad Linux-kärna, så samma behållare med Ubuntu på Windows behöver fortfarande en dold virtuell maskin.

Slutligen kan du köra båda behållarna på en Windows-maskin samtidigt, men med viss svårighet. Om du kör det här kommandot på Windows Server 2016 med Docker installerat (för ett år sedan skulle jag ha kallat det här häxkonsten), kommer det att fungera:

Men om du efter detta kommando försöker starta en Ubuntu-behållare, kommer Docker att bli ledsen:

Problemet är att Windows- och Linux-behållare betjänas av olika Docker-demoner, som dock använder samma kanal för att kommunicera med kommandoraden. Det vill säga, vid varje given tidpunkt kan endast en demon vara aktiv. Det finns en betaversion av "Docker for Windows" på den officiella Docker-webbplatsen som försöker lösa problemet (endast på Windows 10 Pro och Enterprise för närvarande). Men även med det, för att byta från Windows till Linux-behållare, måste du antingen gå till inställningsmenyn eller kommunicera med kommandoraden:

PowerShell

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

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

Windows-bilder

Hittills finns det bara två grundläggande bilder med containeriserade Windows:

Du kan inte göra din egen grundbild (skrapbild).

Windows Server Core-avbildningen väger så mycket som 10 gig och beter sig generellt som en fullfjädrad Windows Server 2016. Där installeras till exempel MS SQL och ett fullfjädrat .NET Framework utan problem. Om din applikation inte är starkt beroende av användargränssnittet kommer den att installeras.

Nano Server är lite mer intressant. Det är en mycket optimerad och avskalad Windows-server som väger mindre än en spelning. Men det finns också tillräckligt med begränsningar: inga 32-bitars applikationer, UI, RDP, hackad PowerShell, etc. Men detta hindrar dig inte från att installera samma IIS, .NET Core och till och med lite MySQL på Nano Server.

Och vem kunde ha föreställt sig för ett par år sedan att man i en Dockerfile kunde hitta "Microsoft", "Windows" och "PowerShell" på en gång?

FRÅN microsoft/windowsservercore KÖR powershell -Kommando....

FRÅN microsoft/windowsservercore

KÖR powershell - Kommando . . . .

Det är Windows i Docker! Det låter fortfarande absurt.

Grader av isolering

Windows-behållare kan köras i två isoleringslägen:

  • Windows Server-behållare
  • Hyper-V-behållare

I det första Windows-läget beter sig containrar på samma sätt som alla andra containrar i Docker: de delar en gemensam kärna med operativsystemet, containerprocesser är isolerade men fortfarande synliga i värdprocessträdet, etc. Detta är standard och de flesta snabbt sätt kör behållaren på Windows.

I det andra fallet faller behållarna i en speciell virtuell Hyper-V-maskin. Detta har naturligtvis en dålig effekt på starthastigheten, men isoleringen är komplett.

Slutsats

Windows på Docker är fantastiska nyheter. Även om du inte har bråttom att paketera dina produkter i containrar är detta ett utmärkt verktyg för att isolera dina enhetstester, produktionsmaskiner, demoservrar, sandlådor – allt som du tidigare behövt skapa en virtuell maskin för. Om Microsoft fortfarande lyckas lansera nanoserver på Linux, då kommer jag att förlåta dem för det nyligen avvecklade Microsoft Band 2, som jag oklokt köpte två månader tidigare.

*nix system implementerar initialt multitasking och erbjuder verktyg som låter dig isolera och kontrollera processer. Teknologier som chroot(), som ger isolering på filsystemnivå, FreeBSD Jail, som begränsar åtkomst till kärnstrukturer, LXC och OpenVZ, har länge varit kända och flitigt använt. Men drivkraften för utvecklingen av tekniken var Docker, som gjorde det möjligt att enkelt distribuera applikationer. Nu har samma sak kommit till Windows.

Behållare på Windows

Moderna servrar har överkapacitet och applikationer använder ibland inte ens delar av dem. Som ett resultat "står systemen inaktiva" under en tid och värmer luften. Lösningen var virtualisering, som låter dig köra flera operativsystem på en server, garanterat att separera dem sinsemellan och allokera den erforderliga mängden resurser till var och en. Men framstegen står inte stilla. Nästa steg är mikrotjänster, när varje del av applikationen distribueras separat, som en självförsörjande komponent som enkelt kan skalas till önskad belastning och uppdateras. Isolering förhindrar att andra applikationer stör mikrotjänsten. Med tillkomsten av Docker-projektet, som förenklade processen att paketera och leverera applikationer tillsammans med miljön, fick mikrotjänsters arkitektur ytterligare en impuls i utvecklingen.

Behållare är en annan typ av virtualisering som tillhandahåller en separat miljö för att köra applikationer, kallad OS Virtualization. Behållare implementeras genom användning av ett isolerat namnområde, som inkluderar alla resurser som behövs för driften (virtualiserade namn), som du kan interagera med (filer, nätverksportar, processer, etc.) och som du inte kan lämna. Det vill säga, operativsystemet visar endast behållaren vad som är tilldelat. Applikationen inuti behållaren tror att den är den enda och körs i ett fullfjädrat OS utan några begränsningar. Om det är nödvändigt att ändra en befintlig fil eller skapa en ny, tar behållaren emot kopior från huvudvärdens OS och sparar endast de ändrade avsnitten. Därför är det mycket effektivt att distribuera flera behållare på en enda värd.

Skillnaden mellan behållare och virtuella maskiner är att behållare inte laddar sina egna kopior av OS, bibliotek, systemfiler, etc. operativ system som om de delas med behållaren. Det enda ytterligare som krävs är de resurser som krävs för att köra programmet i behållaren. Som ett resultat startar behållaren på några sekunder och laddar systemet mindre än när du använder virtuella maskiner. Docker erbjuder för närvarande 180 tusen applikationer i förvaret, och formatet är förenat av Open Container Initiative (OCI). Men beroende av kärnan innebär att behållare inte fungerar på ett annat operativsystem. Linux-behållare kräver Linux API, så Windows fungerar inte på Linux.

Fram till nyligen erbjöd Windows-utvecklare två virtualiseringstekniker: virtuella maskiner och Server App-V virtuella applikationer. Var och en har sin egen nisch av applikationer, dess för- och nackdelar. Nu har utbudet blivit bredare – containrar har annonserats i Windows Server 2016. Och även om utvecklingen ännu inte hade slutförts vid tidpunkten för TP4, är det redan fullt möjligt att se den nya tekniken i aktion och dra slutsatser. Det bör noteras att MS-utvecklare, efter att ha kommit ikapp och ha färdiga teknologier till hands, gick lite längre i vissa frågor, så att användningen av behållare blev enklare och mer universell. Den största skillnaden är att det finns två typer av behållare som erbjuds: Windows-behållare och Hyper-V-behållare. I TP3 var bara de första tillgängliga.

Windows-behållare använder en kärna med operativsystemet, som delas dynamiskt sinsemellan. Distributionsprocessen (CPU, RAM, nätverk) tas över av operativsystemet. Om det behövs kan du begränsa de maximala tillgängliga resurserna som allokeras till behållaren. OS-filer och körande tjänster mappas till varje containers namnområde. Den här typen av behållare använder resurser effektivt, vilket minskar omkostnader och gör att applikationer kan placeras tätare. Det här läget påminner lite om FreeBSD Jail eller Linux OpenVZ.

Hyper-V-behållare ger en ytterligare nivå av isolering med Hyper-V. Varje behållare tilldelas sin egen kärna och minne; isolering utförs inte av OS-kärnan, utan av Hyper-V-hypervisorn. Resultatet är samma nivå av isolering som virtuella maskiner, med mindre overhead än virtuella datorer, men mer overhead än Windows-behållare. För att använda den här typen av behållare måste du installera Hyper-V-rollen på värden. Windows-behållare är mer lämpade för användning i en pålitlig miljö, till exempel när du kör applikationer från samma organisation på en server. När en server används av flera företag och en högre grad av isolering behövs, är Hyper-V-behållare sannolikt mer meningsfulla.

En viktig egenskap hos behållare i Win 2016 är att typen väljs inte vid tidpunkten för skapandet, utan vid tidpunkten för distributionen. Det vill säga att vilken behållare som helst kan startas både som Windows och som Hyper-V.

I Win 2016 är Container Management stackabstraktionslagret, som implementerar alla nödvändiga funktioner, ansvarigt för behållare. VHDX-hårddiskens bildformat används för lagring. Behållare, som i fallet med Docker, sparas i bilder i förvaret. Dessutom sparar var och en inte en komplett uppsättning data, utan bara skillnaderna mellan den skapade bilden och basen, och vid lanseringen projiceras all nödvändig data i minnet. En virtuell switch används för att hantera nätverkstrafik mellan behållaren och det fysiska nätverket.

Server Core eller Nano Server kan användas som OS i behållaren. Den första är i allmänhet inte ny på länge och ger hög nivå kompatibilitet med befintliga applikationer. Den andra är en ännu mer avskalad version för att arbeta utan bildskärm, vilket gör att du kan köra servern i minsta möjliga konfiguration för användning med Hyper-V, filserver (SOFS) och molntjänster. Naturligtvis finns det inget grafiskt gränssnitt. Innehåller endast de mest nödvändiga komponenterna (.NET med CoreCLR, Hyper-V, Clustering och så vidare). Men i slutändan tar det upp 93 % mindre utrymme och kräver färre kritiska korrigeringar.

En annan intressant punkt. För att hantera behållare, förutom traditionell PowerShell, kan du också använda Docker. Och för att ge möjligheten att köra icke-inbyggda verktyg på Win, har MS samarbetat för att utöka Docker API och verktygslåda. Alla utvecklingar är öppna och tillgängliga på den officiella GitHub för Docker-projektet. Docker-hanteringskommandon gäller för alla behållare, både Win och Linux. Även om det naturligtvis är omöjligt att köra en behållare skapad på Linux på Windows (liksom vice versa). För närvarande är PowerShell begränsad i funktionalitet och låter dig bara arbeta med ett lokalt arkiv.

Installationsbehållare

Azure har den nödvändiga Windows Server 2016 Core with Containers Tech Preview 4-avbildningen som du kan distribuera och använda för att utforska behållare. Annars måste du konfigurera allt själv. För lokal installation behöver du Win 2016, och eftersom Hyper-V i Win 2016 stöder kapslad virtualisering kan det vara antingen en fysisk eller virtuell server. Själva komponentinstallationsprocessen är standard. Välj lämpligt objekt i guiden Lägg till roller och funktioner eller, med PowerShell, utfärda kommandot

PS> Installera-WindowsFeature-behållare

Under processen kommer även Virtual Switch-nätverkskontrollern att installeras; den måste konfigureras omedelbart, annars kommer ytterligare åtgärder att generera ett fel. Låt oss titta på namnen på nätverkskort:

PS>Hämta-NetAdapter

För att fungera behöver vi en styrenhet av typen Extern. New-VMSwitch-cmdleten har många parametrar, men för det här exemplets skull nöjer vi oss med de minimala inställningarna:

PS> New-VMSwitch -Name External -NetAdapterName Ethernet0

Vi kontrollerar:

PS> Get-VMSwitch | där ($_.SwitchType –eq "Extern")

Windows-brandväggen kommer att blockera anslutningar till behållaren. Därför är det nödvändigt att skapa en tillåtande regel, åtminstone för att kunna ansluta på distans med hjälp av PowerShell-fjärrkontroll; för detta kommer vi att tillåta TCP/80 och skapa en NAT-regel:

PS> New-NetFirewallRule -Namn "TCP80" -Displaynamn "HTTP på TCP/80" -Protocol tcp -LocalPort 80 -Action Allow -Aktiverad True PS> Add-NetNatStaticMapping -NatName "ContainerNat" -Protokoll TCP -ExternalIPAddress.0 InternalIPAddress 192.168.1.2 -InternalPort 80 -ExternalPort 80

Det finns ett annat alternativ för enkel distribution. Utvecklarna har förberett ett skript som låter dig installera alla beroenden automatiskt och konfigurera värden. Du kan använda den om du vill. Parametrarna inuti skriptet hjälper dig att förstå alla mekanismer:

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

Det finns ett annat alternativ - att distribuera en färdig virtuell maskin med behållarstöd. För att göra detta finns det ett skript på samma resurs som automatiskt producerar allt nödvändiga operationer. detaljerade instruktioner listad på MSDN. Ladda ner och kör skriptet:

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

Vi ställer in namnet godtyckligt, och -WindowsImage anger vilken typ av bild som samlas in. Alternativ kan vara NanoServer, ServerDatacenter. Docker installeras också omedelbart; parametrarna SkipDocker och IncludeDocker är ansvariga för dess frånvaro eller närvaro. Efter lanseringen börjar nedladdningen och konverteringen av bilden, under processen måste du ange ett lösenord för att logga in på den virtuella datorn. Själva ISO-filen är ganska stor, nästan 5 GB. Om kanalen är långsam kan filen laddas ner på en annan dator, sedan bytas namn på WindowsServerTP4 och kopieras till C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks. Vi kan logga in på den installerade virtuella maskinen, ange lösenordet som anges under monteringen och arbeta.

Nu kan du gå direkt till att använda behållare.

Använda behållare med PowerShell

Containers-modulen innehåller 32 PowerShell-cmdlets, av vilka några fortfarande är ofullständiga, även om det i allmänhet är tillräckligt för att få allt att fungera. Det är lätt att lista:

PS> Get-Command -modul Behållare

Du kan få en lista över tillgängliga bilder med hjälp av Get-ContainerImage cmdlet, behållare - Get-Container. I fallet med en behållare kommer statuskolumnen att visa dess aktuella status: stoppad eller körs. Men medan tekniken är under utveckling har MS inte tillhandahållit något arkiv och, som nämnts, arbetar PowerShell för närvarande med ett lokalt arkiv, så för experiment måste du skapa det själv.

Så vi har en server med support, nu behöver vi själva behållarna. För att göra detta, installera paketleverantören ContainerProvider.

Fortsättning är endast tillgänglig för medlemmar

Alternativ 1. Gå med i "site"-gemenskapen för att läsa allt material på sajten

Medlemskap i communityn inom den angivna perioden ger dig tillgång till ALLT hackermaterial, ökar din personliga kumulativa rabatt och låter dig samla ett professionellt Xakep Score-betyg!