Windows och containrar
Gäller för: Windows Server 2025, Windows Server 2022, Windows Server 2019, Windows Server 2016
Containrar är en teknik för att paketera och köra Windows- och Linux-program i olika miljöer lokalt och i molnet. Containrar ger en enkel, isolerad miljö som gör appar enklare att utveckla, distribuera och hantera. Containrar startar och stoppas snabbt, vilket gör dem idealiska för appar som snabbt behöver anpassas till föränderlig efterfrågan. Containrarnas lätta natur gör dem också till ett användbart verktyg för att öka infrastrukturens densitet och användning.
Microsofts containerekosystem
Microsoft tillhandahåller ett antal verktyg och plattformar som hjälper dig att utveckla och distribuera appar i containrar:
Kör Windows-baserade eller Linux-baserade containrar på Windows 10 för utveckling och testning med hjälp av Docker Desktop, som använder containrar som är inbyggda i Windows. Du kan också köra containrar inbyggt på Windows Server.
Utveckla, testa, publicera och distribuera Windows-baserade containrar med hjälp av kraftfullt containerstöd i Visual Studio och Visual Studio Code, som omfattar stöd för Docker, Docker Compose, Kubernetes, Helm och andra användbara tekniker.
Publicera dina appar som containeravbildningar till den offentliga DockerHub så att andra kan använda eller till en privat Azure Container Registry- för organisationens egen utveckling och distribution, genom att push-överföra och hämta direkt från Visual Studio och Visual Studio Code.
Distribuera containrar i stor skala i Azure eller andra moln:
- Hämta din app (containeravbildning) från ett containerregister, som Azure Container Registry, och distribuera och hantera den sedan i stor skala med hjälp av en orkestrator som Azure Kubernetes Service (AKS).
- Azure Kubernetes Service distribuerar containrar till virtuella Azure-datorer och hanterar dem i stor skala, oavsett om det är dussintals containrar, hundratals eller till och med tusentals. De virtuella Azure-datorerna kör antingen en anpassad Windows Server-avbildning (om du distribuerar en Windows-baserad app) eller en anpassad Ubuntu Linux-avbildning (om du distribuerar en Linux-baserad app).
Distribuera containrar lokalt med hjälp av AKS på Azure Stack HCI, Azure Stack med AKS Engineeller Azure Stack med OpenShift. Du kan också konfigurera Kubernetes själv på Windows Server (se Kubernetes i Windows), och vi arbetar med stöd för att köra Windows-containrar på RedHat OpenShift Container Platform också.
Så här fungerar containrar
En container är ett isolerat, lättviktspaket för att köra ett program på värdoperativsystemet. Containrar bygger ovanpå värdoperativsystemets kernel (som kan betraktas som operativsystemets nedgrävda VVS), enligt diagrammet nedan.
En container delar värdoperativsystemets kernel, men containern får inte obegränsad åtkomst till den. I stället får containern en isolerad och i vissa fall virtualiserad vy över systemet. En container kan till exempel komma åt en virtualiserad version av filsystemet och registret, men eventuella ändringar påverkar endast containern och tas bort när den stoppas. För att spara data kan containern montera in persistent lagring, till exempel en Azure Disk-, eller en fildelning som Azure Files.
En container bygger ovanpå kerneln, men kerneln tillhandahåller inte alla API:er och tjänster som en app behöver köra. De flesta av dessa tillhandahålls av systemfiler (bibliotek) som körs ovanför kerneln i användarläge. Eftersom en container är isolerad från värdens användarlägesmiljö behöver containern en egen kopia av dessa användarläges systemfiler, som paketeras till något som kallas en basavbild. Basavbildningen fungerar som det grundläggande lager på vilket containern skapas, vilket ger den operativsystemtjänster som inte tillhandahålls av kerneln. Men vi pratar mer om containeravbildningar senare.
Containrar jämfört med virtuella datorer
Till skillnad från en container kör en virtuell dator (VM) ett fullständigt operativsystem – inklusive en egen kernel – som visas i det här diagrammet.
Containrar och virtuella datorer har varsin användning– i själva verket använder många distributioner av containrar virtuella datorer som värdoperativsystem i stället för att köras direkt på maskinvaran, särskilt när containrar körs i molnet.
Mer information om likheterna och skillnaderna mellan dessa kompletterande tekniker finns i Containers jämfört med virtuella datorer.
Containeravbildningar
Alla containrar skapas från containeravbildningar. En containerbild är ett paket med filer ordnade i ett lager som finns på den lokala datorn eller i ett fjärrcontainerregister. Containeravbildningen består av de operativsystemfiler i användarläge som behövs för att stödja din app, eventuella körningar eller beroenden för din app och alla andra olika konfigurationsfiler som appen måste köra korrekt.
Microsoft erbjuder flera avbildningar (kallas basavbildningar) som du kan använda som utgångspunkt för att skapa en egen containeravbildning:
- Windows – innehåller hela uppsättningen Windows-API:er och systemtjänster (minus serverroller).
- Windows Server- – innehåller den fullständiga uppsättningen Windows-API:er och systemtjänster.
- Windows Server Core – en mindre avbildning som innehåller en delmängd av Windows Server-API:erna– nämligen det fullständiga .NET-ramverket. Den innehåller även de flesta men inte alla serverroller (till exempel ingår inte faxservern).
- Nano Server – den minsta Windows Server-avbildningen och har stöd för .NET Core-API:er och vissa serverroller.
Containeravbildningar består av en serie lager. Varje lager innehåller en uppsättning filer som, när de läggs ihop, representerar containeravbildningen. På grund av containrarnas skiktade karaktär behöver du inte alltid rikta in dig på en basavbildning för att skapa en Windows-container. I stället kan du rikta in dig på en annan avbildning som redan har det ramverk som du vill använda. .NET-teamet publicerar till exempel en .NET Core-avbildning som innehåller .NET Core-körtid. Det sparar användare från att behöva duplicera processen för att installera .NET Core– i stället kan de återanvända skikten i den här containeravbildningen. Själva .NET Core-avbildningen bygger på Nano Server.
Mer information finns i Container Base Images.
Containeranvändare
Containrar för utvecklare
Containrar hjälper utvecklare att skapa och leverera appar av högre kvalitet, snabbare. Med containrar kan utvecklare skapa en containeravbildning som distribueras på några sekunder, identiskt i olika miljöer. Containrar fungerar som en enkel mekanism för att dela kod mellan team och för att starta en utvecklingsmiljö utan att påverka värdfilsystemet.
Containrar är portabla och mångsidiga, kan köra appar skrivna på valfritt språk och de är kompatibla med alla datorer som kör Windows 10, version 1607 eller senare eller Windows Server 2016 eller senare. Utvecklare kan skapa och testa en container lokalt på sin bärbara dator eller stationära dator och sedan distribuera samma containeravbildning till företagets privata moln, offentliga moln eller tjänstleverantör. Containrarnas naturliga flexibilitet stöder moderna apputvecklingsmönster i storskaliga, virtualiserade molnmiljöer. Den mest användbara fördelen för utvecklare är kanske möjligheten att isolera din miljö så att appen alltid får den version av bibliotek som du anger, vilket undviker konflikter med beroenden.
Containrar för IT-proffs
Containrar hjälper administratörer att skapa infrastruktur som är enklare att uppdatera och underhålla och som mer fullständigt använder maskinvaruresurser. IT-proffs kan använda containrar för att tillhandahålla standardiserade miljöer för sina utvecklings-, QA- och produktionsteam. Med hjälp av containrar abstraherar systemadministratörer bort skillnader i operativsysteminstallationer och den underliggande infrastrukturen.
Du kan också använda det interaktiva läget för containrar för att köra motstridiga instanser av ett kommandoradsverktyg i samma system.
Containerorkestrering
Orchestrators är en viktig del av infrastrukturen när du konfigurerar en containerbaserad miljö. Du kan hantera några containrar manuellt med Docker och Windows, men appar använder ofta fem, tio eller till och med hundratals containrar, vilket är där orkestreringarna kommer in.
Containerorkestrerare har skapats för att hantera containrar i stor skala och i produktion. Orchestrators tillhandahåller funktioner för:
Orchestrators hjälper dig att utöka containerbaserade appar i stor skala, vilket ger funktioner för:
- Distribuera i stor skala
- Schemaläggning av arbetsbelastningar
- Hälsoövervakning
- Redundansväxling när en nod misslyckas
- Skala upp eller ned
- Nätverkande
- Tjänstidentifiering
- Samordna appuppgraderingar
- Tillhörighet mellan klusternoder
Det finns många olika orkestratorer som du kan använda med Windows-containrar. här är de alternativ som Microsoft tillhandahåller:
- Azure Kubernetes Service (AKS) – använda en hanterad Azure Kubernetes-tjänst
- Azure Kubernetes Service (AKS) på Azure Stack HCI – använda Azure Kubernetes Service lokalt
Prova containers på Windows
Information om hur du kommer igång med containrar på Windows Server eller Windows 10 finns i följande:
Hjälp med att avgöra vilka Azure-tjänster som passar ditt scenario finns i Azure-containertjänster och Välja vilka Azure-tjänster som ska användas som värd för ditt program.
Resurser
Så här visar du resurser för att använda Windows Server-containrar:
För aktuella problem och planerade funktionsuppgraderingar, se GitHub-lagringsplatsen Windows-containrar.
Kolla in vår blogg: Windows Containers Blog.
Kontakta Windows Server-containerteamet genom att skicka e-post till gruppen Windows Containers-kunder.