Delen via


Windows en containers

Van toepassing op: Windows Server 2025, Windows Server 2022, Windows Server 2019, Windows Server 2016

Containers zijn een technologie voor het verpakken en uitvoeren van Windows- en Linux-toepassingen in verschillende omgevingen on-premises en in de cloud. Containers bieden een lichtgewicht, geïsoleerde omgeving waarmee apps eenvoudiger kunnen worden ontwikkeld, geïmplementeerd en beheerd. Containers starten en stoppen snel, waardoor ze ideaal zijn voor apps die zich snel moeten aanpassen aan veranderende vraag. De lichtgewicht aard van containers maken ze ook een handig hulpmiddel voor het verhogen van de dichtheid en het gebruik van uw infrastructuur.

Afbeelding waarin wordt getoond hoe containers kunnen worden uitgevoerd in de cloud of on-premises, waarbij monolithische apps of microservices worden ondersteund die in vrijwel elke taal zijn geschreven.

Het Microsoft-containerecosysteem

Microsoft biedt een aantal hulpprogramma's en platforms waarmee u apps in containers kunt ontwikkelen en implementeren:

  • Windows- of Linux-containers uitvoeren op Windows 10- voor ontwikkeling en testen met behulp van Docker Desktop-, die gebruikmaakt van de ingebouwde functionaliteit van containers in Windows. U kunt containers ook systeemeigen uitvoeren op Windows Server.

  • Ontwikkelen, testen, publiceren en implementeren van Windows-containers met behulp van de krachtige containerondersteuning van in Visual Studio en Visual Studio Code, waaronder ondersteuning voor Docker, Docker Compose, Kubernetes, Helm en andere nuttige technologieën.

  • Uw apps publiceren als containerinstallatiekopieën naar de openbare DockerHub, zodat anderen deze kunnen gebruiken, of naar een persoonlijke Azure Container Registry- voor de eigen ontwikkeling en implementatie van uw organisatie, waarbij ze rechtstreeks vanuit Visual Studio en Visual Studio Code worden gepusht en opgehaald.

  • Containers op schaal implementeren in Azure of andere clouds:

    • Haal uw app (containerinstallatiekopie) op uit een containerregister, zoals Azure Container Registry, en implementeer en beheer deze vervolgens op schaal met behulp van een orchestrator zoals Azure Kubernetes Service (AKS).
    • Azure Kubernetes Service implementeert containers op virtuele Azure-machines en beheert deze op schaal, of dat nu tientallen containers, honderden of zelfs duizenden zijn. Op de virtuele Azure-machines wordt een aangepaste Windows Server-installatiekopie uitgevoerd (als u een Windows-app implementeert) of een aangepaste Ubuntu Linux-installatiekopie (als u een Linux-app implementeert).
  • On-premises containers implementeren met behulp van AKS in Azure Stack HCI, Azure Stack met de AKS Engineof Azure Stack met OpenShift. U kunt Kubernetes ook zelf instellen op Windows Server (zie Kubernetes in Windows) en we werken ook aan ondersteuning voor het uitvoeren van Windows-containers op RedHat OpenShift Container Platform.

Hoe containers werken

Een container is een geïsoleerd, lichtgewicht pakket voor het uitvoeren van een toepassing op het hostbesturingssysteem. Containers bouwen voort op de kernel van het hostbesturingssysteem (die kan worden beschouwd als het onderliggende systeem van het besturingssysteem), zoals wordt weergegeven in het onderstaande diagram.

architectuurdiagram waarin wordt getoond hoe containers worden uitgevoerd boven op de kernel

Hoewel een container de kernel van het hostbesturingssysteem deelt, krijgt de container geen ongehinderde toegang tot het besturingssysteem. In plaats daarvan krijgt de container een geïsoleerde en in sommige gevallen gevirtualiseerde weergave van het systeem. Een container heeft bijvoorbeeld toegang tot een gevirtualiseerde versie van het bestandssysteem en het register, maar wijzigingen zijn alleen van invloed op de container en worden verwijderd wanneer deze stopt. Als u gegevens wilt opslaan, kan de container permanente opslag koppelen, zoals een Azure Disk of een bestandsshare zoals Azure Files.

Een container bouwt voort op de kernel, maar de kernel biedt niet alle API's en services die een app moet uitvoeren. De meeste hiervan worden geleverd door systeembestanden (bibliotheken) die boven de kernel in de gebruikersmodus worden uitgevoerd. Omdat een container is geïsoleerd van de gebruikersmodusomgeving van de host, heeft de container een eigen kopie nodig van deze systeembestanden in de gebruikersmodus, die zijn verpakt in een basisinstallatiekopie. De basisinstallatiekopie fungeert als de basislaag waarop uw container is gebouwd, zodat deze beschikt over besturingssysteemservices die niet door de kernel worden geleverd. Maar later bespreken we meer over containerafbeeldingen.

Containers versus virtuele machines

In tegenstelling tot een container voert een virtuele machine (VM's) een volledig besturingssysteem uit, inclusief een eigen kernel, zoals wordt weergegeven in dit diagram.

architectuurdiagram waarin wordt getoond hoe VM's een volledig besturingssysteem uitvoeren naast het hostbesturingssysteem

Containers en virtuele machines hebben elk hun gebruik: veel implementaties van containers gebruiken virtuele machines als het hostbesturingssysteem in plaats van rechtstreeks op de hardware uit te voeren, met name wanneer containers in de cloud worden uitgevoerd.

Zie Containers versus virtuele machinesvoor meer informatie over de overeenkomsten en verschillen van deze complementaire technologieën.

Containerafbeeldingen

Alle containers worden gemaakt van container-images. Een containerimage is een bundel bestanden die zijn ingedeeld in een stapel lagen die zich op uw lokale machine of in een externe containerregister bevinden. De containerimage bestaat uit de bestanden van het besturingssysteem in de gebruikersmodus die nodig zijn om uw app te ondersteunen, de runtimes of afhankelijkheden van uw app, en elk ander configuratiebestand dat uw app nodig heeft om goed uit te voeren.

Microsoft biedt verschillende installatiekopieën (basisinstallatiekopieën genoemd) die u als uitgangspunt kunt gebruiken om uw eigen containerinstallatiekopieën te bouwen:

  • Windows: bevat de volledige set Windows-API's en systeemservices (minus serverfuncties).
  • Windows Server-: bevat de volledige set Windows-API's en systeemservices.
  • Windows Server Core: een kleinere installatiekopie met een subset van de Windows Server-API's, namelijk de volledige .NET Framework. Het bevat ook de meeste, maar niet alle serverfuncties (bijvoorbeeld Faxserver is niet opgenomen).
  • Nano Server: de kleinste Windows Server-installatiekopieën en bevat ondersteuning voor de .NET Core-API's en sommige serverfuncties.

Containerafbeeldingen bestaan uit een serie lagen. Elke laag bevat een set bestanden die, wanneer ze over elkaar heen worden gelegd, je containerafbeelding vertegenwoordigen. Vanwege de gelaagde aard van containers hoeft u zich niet altijd op een basisafbeelding te richten om een Windows-container te bouwen. In plaats daarvan kunt u zich richten op een andere afbeelding die al het gewenste framework bevat. Het .NET-team publiceert bijvoorbeeld een .NET Core-kernimage die de .NET Core-runtime bevat. Hierdoor hoeven gebruikers het proces voor het installeren van .NET Core niet te dupliceren. In plaats daarvan kunnen ze de lagen van deze containerinstallatiekopieën opnieuw gebruiken. De .NET Core-image zelf is gebaseerd op Nano Server.

Zie Container Base Imagesvoor meer informatie.

Containergebruikers

Containers voor ontwikkelaars

Containers helpen ontwikkelaars om apps van hogere kwaliteit te bouwen en sneller te verzenden. Met containers kunnen ontwikkelaars een containerimage maken die binnen enkele seconden op identieke wijze in verschillende omgevingen wordt geïmplementeerd. Containers fungeren als een eenvoudig mechanisme om code te delen tussen teams en om een ontwikkelomgeving te bootstrapen zonder dat dit van invloed is op uw hostbestandssysteem.

Containers zijn draagbaar en veelzijdig, kunnen apps uitvoeren die in elke taal zijn geschreven en zijn compatibel met elke computer met Windows 10, versie 1607 of hoger of Windows Server 2016 of hoger. Ontwikkelaars kunnen een container lokaal op hun laptop of desktop maken en testen en diezelfde containerinstallatiekopieën vervolgens implementeren in de privécloud, openbare cloud of serviceprovider van hun bedrijf. De natuurlijke flexibiliteit van containers ondersteunt moderne app-ontwikkelingspatronen in grootschalige, gevirtualiseerde cloudomgevingen. Het handigste voordeel voor ontwikkelaars is misschien wel de mogelijkheid om uw omgeving te isoleren, zodat uw app altijd de versie krijgt van bibliotheken die u opgeeft, waardoor conflicten met afhankelijkheden worden voorkomen.

Containers voor IT-professionals

Containers helpen beheerders bij het maken van infrastructuur die eenvoudiger te bijwerken en onderhouden is en die meer volledig gebruikmaakt van hardwareresources. IT-professionals kunnen containers gebruiken om gestandaardiseerde omgevingen te bieden voor hun ontwikkel-, QA- en productieteams. Door containers te gebruiken, abstraheren systeembeheerders verschillen in besturingssystemen en de onderliggende infrastructuur.

U kunt ook de interactieve modus van containers gebruiken om conflicterende exemplaren van een opdrachtregelprogramma op hetzelfde systeem uit te voeren.

Containerorkestratie

Orchestrators zijn een essentieel onderdeel van de infrastructuur bij het instellen van een op containers gebaseerde omgeving. Hoewel u een aantal containers handmatig kunt beheren met Docker en Windows, maken apps vaak gebruik van vijf, tien of zelfs honderden containers, waar orchestrators binnenkomen.

Container-orkestrators zijn ontwikkeld om containers op schaal en in productie te beheren. Orchestrators bieden functionaliteit voor:

Met Orchestrators kunt u apps in containers op schaal vergroten en functionaliteit bieden voor:

  • Implementeren op schaal
  • Werkbelastingplanning
  • Gezondheidsmonitoring
  • Failover uitvoeren wanneer een knooppunt mislukt
  • Omhoog of omlaag schalen
  • Netwerken
  • Serviceontdekking
  • App-upgrades coördineren
  • Affiniteit met clusterknooppunten

Er zijn veel verschillende orchestrators die u kunt gebruiken met Windows-containers; Dit zijn de opties die Microsoft biedt:

Containers proberen in Windows

Zie het volgende om aan de slag te gaan met containers op Windows Server of Windows 10:

Zie Azure-containerservices en Kiezen welke Azure-services u wilt gebruiken om uw toepassing te hostenvoor hulp bij het bepalen welke Azure-services geschikt zijn voor uw scenario.

Middelen

Resources weergeven voor het gebruik van Windows Server-containers:

  • Zie de GitHub-opslagplaats Windows-containersvoor actuele problemen en geplande functie-upgrades.

  • Bekijk onze blog: Windows Containers Blog.

  • Als u contact wilt opnemen met het team van Windows Server-containers, stuurt u een e-mail naar de groep klanten van Windows-containers .