Wat is Docker
Blog Geschatte leestijd: 3 minuten

Wat is Docker?

Docker is door de jaren heen uitgegroeid tot de belangrijkste standaard in container-technologie. Een nieuwe manier om software, vaak zelfgeschreven, in te pakken en uit te rollen. Zo hoef je niet langer rekening te houden met hardware en specifieke configuratie-parameters. Het vraagt wel een heel andere manier van werken. Wat is Docker en hoe werkt het? Wij zetten in deze blog alles voor jou op een rijtje, dus lees snel verder!

Hoe werkt Docker?

‘Build, Ship and Run Any App, Anywhere’, dit is de slogan van Docker. De technologie heeft een indrukwekkende reis afgelegd. Sinds het ontstaan in 2013 is het een vrij onbekende en behoorlijk technische open-source technologie. Tegenwoordig is Docker uitgegroeid tot een gestandaardiseerde runtimeomgeving. Het is ontworpen met systeembeheerders en ontwikkelaars in gedachten en biedt een scala aan toepassingsmogelijkheden, van serverdiensten tot het beheer van commandline-tools. Kortom, Docker is een must-have tool voor iedereen die serieus is over het opschalen van hun tech game.
In eerste instantie was de technologie bedoeld om snel en makkelijk een ontwikkelomgeving op een reproduceerbare manier in de lucht te brengen. Vooral ontwikkelaars en testers werden hier gelukkig van. Sinds de afgelopen jaren komen er steeds meer producten, projecten en tools beschikbaar om dit proces te verbeteren.

Container

Veel mensen associëren te term Docker met containers, dit is omdat Docker het meest succesvol is in het maken van containers. Toch zijn containers zijn niet nieuw. Container technologie bestaat al meer dan 10 jaar in de vorm van LXC voor Linux. Een container is een standaard software-eenheid waarin code en alle bijhorende afhankelijkheden zijn verpakt. Hierdoor kunnen applicaties snel en betrouwbaar in verschillende omgevingen worden uitgevoerd. Containers zijn niet-persistent en worden opgebouwd uit images.

In tegenstelling tot een virtuele machine die hardware virtualisatie biedt, biedt een container lichtgewicht visualisatie op het niveau van besturingssysteemniveau door de ‘gebruikersruimte’ vast te leggen. Containers delen de kernel van het hostsysteem met andere containers.
Helaas brengen containers ook beveiligingsrisico’s met zich mee. Als een user binnen een container superuser rechten heeft, kan hij deze van het host OS benaderen en aanvallen. Natuurlijk zijn containers wel te beveiligen maar hier moet wel veel moeite voor gedaan worden.

Image

Een Docker Image gebruik je om snel een container te maken. Het is een blauwdruk van een kant-en-klare container, welke je kunt gebruiken om een nieuwe container te maken. Een goed voorbeeld hiervan is WordPress. Op de container image van WordPress staat al een WordPress installatie, die nadat je een container besteld hebt geactiveerd wordt. In basis zijn containers volledige runtime omgevingen voor een dedicated doel. Met andere woorden, een container bevat een applicatie inclusief de benodigdheden om te kunnen draaien. Deze is volledig onafhankelijk van onderliggend OS of gebruikte architectuur.

Softwareverzamelingen dienen uitgevoerd te worden als een container, waarbij een set instructies aanwezig is voor het creëren van een container die op het Docker-platform kan worden gedraaid. Ontwikkelaars leveren in samenwerking met testers kant-en-klare werkende images op, die getest zijn, en dus een stuk minder verrassingen bevat. Images kunnen niet worden gewijzigd en voor verwijzingen in een image moet een nieuwe image worden gemaakt. De server zorgt ervoor dat de software overal hetzelfde draait.

Engine

Het belangrijkste onderdeel van een Docker, is de Engine. Dit is de open-source hostsoftware die de containers bouwt en uitvoert. De engines fugeren als de client-serverapplicaties die containers ondersteunt op verschillende Windows-servers en Linux-besturingssystemen, waaronder Oralce Linix, CentOS, Debian, Fedora, RHEL, SUSE en Ubuntu.
De belangrijkste componenten binnen Docker Engine:
– Daemon: Dit beheert Docker images, containers, netwerken en volumes. Het luistert ook naar Docker API verzoeken en verwerkt ze.
– Engine REST API: Dit is een door Docker ontwikkelde API die communiceert met de daemon.
– CLI: Dit is de commandoregelinterface waarmee je kunt communicatie met de Docker daemon.

Waarvoor kun je Docker gebruiken?

Docker maakt het mogelijk om applicaties te isoleren in containers, waardoor ze onafhankelijk van elkaar kunnen draaien op dezelfde machine. Dit biedt de mogelijkheid om meerdere applicaties op één machine te draaien zonder dat ze elkaar beïnvloeden. Bovendien maakt Docker het ook gemakkelijker om applicaties te verplaatsen tussen verschillende omgevingen, zoals van een ontwikkelingsomgeving naar een productieomgeving, doordat alle vereiste componenten zijn ingekapseld in de container.

De voordelen

Docker doet zijn slogan: ‘Build, Ship, Run’, niet tekort aangezien het op elke gewenste cloud draaien in combinatie met elke gewenste public cloud-provider. Hieronder staan een aantal voordelen:

– Als ontwikkelaar kan een deel van je werk vervelend en repetitief worden als het handmatig wordt uitgevoerd. Met containers kun je de automatisering van deze taken inplannen.
– Opruimen is makkelijk en draagbaar: docker stelt elk lid van je ontwikkelteam in staat om aan applicaties te werken, zelfs met verschillende servers, machines of besturingssystemen. Deze opzet kan veel van de problemen elimineren die ontstaan door platform incompatibiliteiten. In vergelijking met VM’s kunnen Docker containers meer ruimte besparen. Als je een container stopt en verwijdert, blijft er niets achter op de Docker-host omdat Docker het bestandssysteem dat voor de container werd aangemaakt volledig verwijdert.
– Een robuste community: door deel te nemen aan community evenementen kun je andere gebruikers ontmoeten en met hen in contact komen.

Benieuwd naar meer? Check dan ons vacatureaanbod via onderstaande button of neem direct contact op met een van onze Consultants. Oriënteer, kies en solliciteer!

Meer artikelen