Delen via


Inleiding tot containers en Docker

Aanbeveling

Deze inhoud is een fragment uit het eBook, .NET Microservices Architecture for Containerized .NET Applications, beschikbaar op .NET Docs of als een gratis downloadbare PDF die offline kan worden gelezen.

.NET Microservices Architectuur voor Gecontaineriseerde .NET Toepassingen eBook omslagthumbnail.

Containerisatie is een benadering van softwareontwikkeling waarbij een toepassing of service, de bijbehorende afhankelijkheden en de configuratie (geabstraheerd als manifestbestanden voor implementatie) worden verpakt als een containerinstallatiekopieën. De container-applicatie kan als een eenheid worden getest en als een container image worden geïmplementeerd op het hostbesturingssysteem (OS).

Net zoals verzendingscontainers toestaan dat goederen per schip, trein of vrachtwagen worden vervoerd, ongeacht de lading binnen, fungeren softwarecontainers als een standaardeenheid voor software-implementatie die verschillende code en afhankelijkheden kan bevatten. Door software op deze manier in containers te zetten, kunnen ontwikkelaars en IT-professionals ze implementeren in omgevingen met weinig of geen wijzigingen.

Containers isoleren ook toepassingen van elkaar op een gedeeld besturingssysteem. In containers geplaatste toepassingen worden uitgevoerd op een containerhost die op zijn beurt wordt uitgevoerd op het besturingssysteem (Linux of Windows). Containers hebben daarom een aanzienlijk kleinere footprint dan virtuele machines.

Elke container kan een hele webtoepassing of een service uitvoeren, zoals wordt weergegeven in afbeelding 2-1. In dit voorbeeld is Docker-host een containerhost en zijn App1, App2, Svc 1 en Svc 2 containertoepassingen of -services.

Diagram met vier containers die worden uitgevoerd op een VIRTUELE machine of een server.

Afbeelding 2-1. Meerdere containers die worden uitgevoerd op een containerhost

Een ander voordeel van containerisatie is schaalbaarheid. U kunt snel uitschalen door nieuwe containers te maken voor kortetermijntaken. Vanuit applicatieperspectief is het instantiëren van een afbeelding (het maken van een container) vergelijkbaar met het instantiëren van een proces zoals een service of een web-app. Als u echter voor betrouwbaarheid meerdere exemplaren van dezelfde installatiekopie uitvoert op meerdere hostservers, wilt u meestal dat elke container (exemplaar van de installatiekopie) wordt uitgevoerd op een andere hostserver of VM in verschillende foutdomeinen.

Kortom, containers bieden de voordelen van isolatie, draagbaarheid, flexibiliteit, schaalbaarheid en controle over de hele levenscycluswerkstroom van toepassingen. Het belangrijkste voordeel is de isolatie van de omgeving tussen Dev en Ops.