Wat is Docker?

Een modern IT-landschap kan bijna niet meer om het gebruik van applicatie containers heen. Containers zijn lichtgewicht, draagbaar en snel. Hoewel de techniek achter containers al stamt uit de tijd van de mainframes, heeft het toevoegen van namespaces aan de Linux-kernel uiteindelijk voor de doorbraak gezorgd, met Docker als populairste container runtime anno 2020.

Over Docker

Het grote voordeel van het gebruik van applicatie containers is dat alles wat benodigd is om de applicatie te draaien in de container zit. Dit maakt dat een container die werkt op de laptop van een ontwikkelaar, ook zal draaien op de productieserver. Net zoals een echte, ijzeren container even goed op een vrachtwagen past als op een trein of een schip. Om dit mogelijk te maken, is standaardisatie van belang. Docker heeft hiervoor in 2013 de open source Docker Engine uitgebracht. Deze engine koppelt het onderliggende operating system los van hetgeen in de container zit. Enige voorwaarde was: het moest wel Linux zijn. Tegenwoordig is de Docker Engine ook beschikbaar voor Windows Server en Mac OS X. Hiermee is Docker volledig cross-platform bruikbaar. Zo kun je onder Windows een applicatie ontwikkelen die uiteindelijk op een Linux server draait in productie. Of vice versa, mocht je dat echt willen.

Vijf redenen om containers te gebruiken

1) Draagbaarheid: de containers kunnen op diverse platformen draaien, zolang ze de Docker engine maar ondersteunen. Dit maakt het voortbrengingsproces van ontwikkeling tot productie een stuk eenvoudiger.

2) Zuinigheid: containers hebben geen eigen kernel nodig, zoals bij VM’s wel het geval is. Ze hebben hierdoor minder resources nodig, waardoor je op een fysiek systeem meer werk kunt doen en minder snijverlies hebt.

3) Veiligheid: een container is een zelfstandige, geïsoleerde omgeving. Je hebt bovendien alleen in de container draaien wat voor de applicatie noodzakelijk is. Dit maakt een container minder kwetsbaar. Zorg er wel voor dat je zorgvuldig omgaat met (root) rechten.

4) Snelheid: waar een VM er enkele minuten voor nodig heeft om klaar te zijn voor gebruik, gaat dat met een container in milliseconden tot enkele seconden. Dit maakt containers uitermate geschikt voor omgevingen waar schaalbaarheid gewenst is of waar veel wijzigingen plaatsvinden (zoals bij ontwikkeling).

5) Beschikbaarheid: er wordt wereldwijd enorm veel gebruik gemaakt van (Docker) containers. Hierdoor is er voor vrijwel ieder denkbare toepassing wel een kant-en-klare oplossing beschikbaar. Of die altijd even stabiel en veilig zijn, dat behoeft aandacht, maar je kunt veel inspiratie opdoen en leren van wat er al is gebouwd. Bovendien hebben nagenoeg alle grote open source projecten een officiële en goed onderhouden container image die je kunt gebruiken.

Community, Enterprise en Docker Inc.

Er zijn twee “smaken” van Docker. De eerste en verreweg meest gebruikte vorm is de community edition (CE). Deze variant is volledig open source en door iedereen te gebruiken zonder licentiekosten. Met de CE kun je je eigen containers bouwen en draaien (met de Docker runtime). Voor zakelijke toepassing is er Docker Enterprise (EE). Deze versie biedt onder andere support vanuit Docker Inc en heeft ook een aantal (security) features die niet in CE zitten, zoals private container registries en gecertificeerde containers.

Het verdienmodel van Docker Inc, het bedrijf achter Docker en Docker Enterprise, zijn licenties en support. Helaas blijkt hier vanuit de markt minder vraag naar te zijn dan Docker Inc. heeft gehoopt en voorzien. In september 2019 kwam naar voren dat Docker in financieel zwaar weer zit. In november 2019 is Docker Enterprise zelfs verkocht.

Wat de verkoop voor gevolgen heeft voor de open source community editie van Docker is op moment van schrijven nog onbekend. Maar gezien de enorme installed base en populariteit van Docker zal dit project in stand blijven of desnoods geforked gaan worden voor een “doorstart”.

Docker Swarm

Wanneer je in een productieomgeving met Docker aan de slag gaat, dan komt daar meestal meer bij kijken dan het simpelweg opstarten van een container. Liefst zou je hierbij een controlemechanisme hebben dat helpt bij het beheer van de containers. Denk aan automatisch herstarten, opschalen bij toename van belasting en automatisch verdelen van meerdere containers over fysieke servers omwille van beschikbaarheid. In container jargon wordt dit orkestratie genoemd. Docker levert hiervoor Docker Swarm. In Swarm kunnen services worden gedefinieerd die schaalbaar en hoog-beschikbaar kunnen worden gemaakt. Dit maakt Swarm erg handig voor kritieke IT-omgevingen. Het voordeel van Swarm is dat het vrij eenvoudig is in gebruik. Een nadeel is dat het redelijk beperkt is qua mogelijkheden. Voor wie meer wil doen met container-orkestratie, is Kubernetes een interessante optie.


Wil jij meer weten over Docker?

Lees meer over de werking van containers in het blog over onze Innovatiedag van 22 februari 2019.
Wil je meer weten over containers en Docker? Schrijf je dan in voor onze Docker training.
Heb je behoefte aan advies over of hulp bij het werken met (Docker) containers? Onze Docker consultants kunnen je helpen. Neem vrijblijvend contact met ons op.

Onderwerpen
Actieve filters: Wis alle filters
Loading...