Een container is een softwarepakket waarin alle essentiële onderdelen (de code van je applicatie, runtime, system tools, libraries, instellingen en andere dependencies) gebundeld zijn zodat het in elke omgeving uitgevoerd kan worden.
Een container heeft geen eigen kernel maar gebruikt de kernel van het besturingssysteem (OS) dat de container draait. Hierdoor kan een container besturingssystemen en applicaties draaien die compatibel zijn met de kernel van de host. Als dat bijvoorbeeld een Linux-VPS is, kan de container Linux applicaties en OS'en bevatten.
Een container virtualiseert als het ware een besturingssysteem en kan daardoor overal uitgevoerd worden; of het nou op je computer, in de cloud of een eigen datacenter is. Enkele voordelen van het gebruik van containers zijn:
-
Workload verplaatsbaarheid: containers kunnen op praktisch ieder besturingssysteem uitgevoerd worden en op zowel virtuele machines als op fysieke hardware. Dit maakt het deployen van applicaties eenvoudiger.
-
Lichter dan een virtuele machine: Containers virtualiseren op het OS-niveau terwijl virtuele machines op het hardware niveau virtualiseren. Dit betekent dat bij een virtuele machine je een besturingssysteem beheert. Bij een containerplatform zoals het TransIP Kubernetes-platform beheer je enkel de applicatie.
-
Duidelijkere splitsing van taken: ontwikkelaars (bijvoorbeeld jezelf) hoeven zich enkel nog te focussen op de applicatie zelf en de bijbehorende dependencies. Een ander team of partij (bijvoorbeeld TransIP bij ons Kubernetes-platform) richt zich op deployment en beheer van het platform.
- Isolatie van je applicatie: Containers virtualiseren hardware resources (CPU, RAM, opslag, netwerk) op het niveau van het besturingssysteem. Hierdoor is het zicht op resourcegebruik van je applicatie een stuk duidelijker.