Containerisatie is een lichtgewicht alternatief voor volledige machinevirtualisatie waarbij een applicatie wordt ingekapseld in een container met een eigen besturingsomgeving. Dit biedt veel van de voordelen van het laden van een applicatie op een virtuele machine, aangezien de applicatie op elke geschikte fysieke machine kan worden uitgevoerd zonder zorgen over afhankelijkheden.
Containerisatie heeft recentelijk bekendheid gekregen met de open-source Docker. Docker-containers zijn ontworpen om op alles te draaien, van fysieke computers tot virtuele machines, bare-metal servers, OpenStack-cloudclusters, openbare instanties en meer.
Containerisatie versus virtualisatie via traditionele hypervisors
De basis voor containerisatie ligt in het LinuX Containers (LXC) formaat, dat een gebruikersruimte interface is voor de Linux kernel containment features. Als gevolg hiervan werkt containerisatie alleen in Linux-omgevingen en kan alleen Linux-applicaties worden uitgevoerd.
Dit in tegenstelling tot traditionele hypervisors zoals VMware’s ESXi, Xen of KVM, waarbij applicaties kunnen draaien op Windows of elk ander besturingssysteem dat de hypervisor ondersteunt.
Een ander belangrijk verschil met containerisatie in tegenstelling tot traditionele hypervisors is dat containers de Linux-kernel delen die wordt gebruikt door het besturingssysteem waarop de hostmachine draait, wat betekent dat alle andere containers die op de hostmachine draaien ook dezelfde Linux-kernel zullen gebruiken.
Docker is niet de enige optie voor containerisatie
Docker was misschien de eerste die containerisatie onder de aandacht bracht, maar het is niet langer de enige optie voor het containersysteem. CoreOS heeft onlangs een gestroomlijnd alternatief voor Docker uitgebracht, genaamd Rocket.
En Canonical, ontwikkelaars van het Ubuntu Linux-gebaseerde besturingssysteem, heeft de LXD-containerisatie-engine voor Ubuntu aangekondigd, die ook zal worden geïntegreerd met OpenStack.
Microsoft werkt aan zijn eigen containerisatietechnologie genaamd Drawbridge, die in de toekomst waarschijnlijk in Windows Server en Azure zal worden gebruikt. En Spoon is een ander Windows-alternatief waarmee gecontaineriseerde applicaties kunnen worden uitgevoerd op elke Windows-machine waarop Spoon is geïnstalleerd, ongeacht de onderliggende infrastructuur.