Wat is Docker?

Alan Zeichick | Senior Writer | 8 december 2025

Software‑engineering heeft een enorme ontwikkeling doorgemaakt sinds de tijd van "maar op mijn computer werkt het wel". Dat is grotendeels te danken aan containerisatie, waardoor een applicatie probleemloos on-premises en op meerdere cloudservers kan draaien en naar behoefte kan worden verplaatst en op- en afgeschaald in geïsoleerde, consistente omgevingen.

Docker is een opensource-, standaardsoftwareplatform waarmee ontwikkelaars snel applicaties in containers kunnen bouwen, testen en implementeren. Het is dan ook geen wonder dat Docker en de bijbehorende containerservices de afgelopen jaren op grote schaal zijn gebruikt. Van een bijna onbekende en nogal technische opensource-technologie in 2013 heeft Docker zich ontwikkeld tot een gestandaardiseerde runtime-omgeving die nu officieel wordt ondersteund voor veel zakelijke producten.

Zoals gezegd, hebben we een enorme ontwikkeling doorgemaakt.

Wat is Docker?

Docker is een opensource-platform waarmee ontwikkelaars en systeembeheerders applicaties in containers kunnen verpakken. Deze containers kunnen vervolgens worden gepusht naar een implementatieplatform, zoals on-premises servers of servers in de cloud, en vervolgens rechtstreeks worden uitgevoerd. U kunt op één server meerdere Docker-containers uitvoeren, elk met een eigen applicatie. Deze applicaties zijn volledig van elkaar geïsoleerd voor een optimale databeveiliging en betrouwbaarheid.

Een van de grootste voordelen van Docker is de flexibiliteit om containers op elke compatibele server te kunnen uitvoeren. Docker werd voor het eerst geïntroduceerd door de visionaire software-engineer Solomon Hykes, die het concept in 2013 presenteerde op de PyCon-conferentie. Hykes richtte zich samen met een toegewijd team op het oplossen van problemen rond het implementeren van applicaties naar servers, een proces dat destijds vaak zwaar, omslachtig en foutgevoelig was. Docker is ontworpen om de gehele levenscyclus van applicaties eenvoudiger en efficiënter te maken.

Tegenwoordig worden Docker‑containers gebruikt voor bedrijfskritische implementaties op grote schaal, met duizenden containers en honderden servers. Geïnspireerd door het basisprincipe van containerisatie betekende Docker een frisse en innovatieve benadering voor het implementeren van applicaties. Docker tilde containerisatie naar een hoger niveau door een set krachtige functies te introduceren.

Waarom containers?

Linux‑containers bestaan al sinds 2008, maar pas met de komst van Docker‑containers in 2013 werd de technologie algemeen geaccepteerd. Een groot voordeel van containers is dat ze alles bevatten wat nodig is om een applicatie of een specifieke service uit te voeren, inclusief alle bibliotheken, afbeeldingen zoals pictogrammen of gebruikersinterfacecomponenten, systeemtools en het uitvoerbare runtime-bestand. Een Docker‑container is bedoeld voor gebruik op één specifiek besturingssysteem, bijvoorbeeld Linux of Windows. Meestal kunnen Docker‑containers zonder configuratiewijzigingen worden geïmplementeerd op elke server, laptop of desktop met dat besturingssysteem.

Docker versus Kubernetes

Binnen het Docker‑ecosysteem worden containers gebouwd, worden alle onderdelen van een applicatie daarin geplaatst en worden de containers klaargemaakt voor implementatie. Dat werkt prima voor een paar containers, maar hoe zit het met honderden of duizenden? Dat is het moment om het Kubernetes-automatiseringsplatform te gaan gebruiken.

Net als Docker is Kubernetes een opensource-project dat breed wordt ondersteund in de technologiesector. Het is de tool waarmee u gehele proces automatiseert: het implementeren van Docker-containers naar servers, het monitoren van hun prestaties, het opstarten van nieuwe containers wanneer nodig, het bijwerken naar de nieuwste versies en het afsluiten van containers wanneer dat nodig is.

Het grootste voordeel van Kubernetes is dat het de operationele complexiteit van het implementeren van een groot aantal containers over meerdere servers vermindert. Kubernetes is dus essentieel voor elke grootschalige implementatie van containertechnologie, zowel in de cloud als on-premises. Kubernetes orkestreert automatisch de levenscyclus van containers en verdeelt de applicatiecontainers over de hostinginfrastructuur. Kubernetes kan resources snel op- of afschalen, afhankelijk van de vraag.

Voornaamste conclusies

  • Containers bevatten alles wat nodig is om een applicatie te draaien, inclusief de binaire uitvoerbare bestanden, bibliotheken, images en andere data, samen met de configuratiedetails van de applicatie.
  • Docker is een van de meest gebruikte indelingen voor het maken van containerapplicaties. Het is open source en wordt breed ondersteund door alle grote cloudproviders.
  • Met Docker hoeft u een app niet handmatig te installeren en configureren, omdat dit proces wordt uitgevoerd wanneer de container wordt gebouwd.
  • Dankzij isolatie kan een groot aantal containers op één server worden geïnstalleerd, zodat de serverhardware optimaal wordt benut.
  • U kunt de implementatie van honderden of zelfs duizenden containerapplicaties in een netwerk automatiseren met tools die voldoen aan de branchestandaard, zoals Kubernetes.

Uitleg over Docker

Docker is een opensource-framework voor applicatieontwikkeling dat is ontworpen voor zowel ontwikkelaars als systeembeheerders. Het maakt een DevOps-model mogelijk, waarbij ontwikkelaars zelf verantwoordelijk zijn voor het beheren van cloudapplicaties, in plaats van de meer traditionele methode waarbij ontwikkelaars de code bouwden en de implementatie en het beheer van de applicatie vervolgens overlieten aan een afzonderlijk beheerteam.

Met Docker kunnen ontwikkelaars eenvoudig applicaties bouwen, verpakken, verzenden en uitvoeren als lichtgewicht, verplaatsbare en onafhankelijke containers. Ontwikkelaars kunnen zich nu richten op het bouwen van een applicatie die aansluit bij de behoeften van de organisatie, zonder zich druk te maken over het onderliggende besturingssysteem of implementatiesysteem.

Ontwikkelaars kunnen bovendien kiezen uit duizenden opensource-containerapplicaties die zijn gemaakt voor uitvoering in een Docker-omgeving. Voor DevOps-teams leent Docker zich uitstekend voor continue integratie en ontwikkeling en helpt het de beperkingen en complexiteit van systeemarchitecturen te verminderen. Met Docker en cloudservices voor containerorkestratie, zoals Kubernetes, kan elke ontwikkelaar lokaal containerapplicaties maken en deze vervolgens in productie uitvoeren via cloudservices.

Voordelen van het gebruik van Docker

Docker‑containers maken ontwikkeling toegankelijker. In de softwarebranche worden ontwikkelaars namelijk vaak ingedeeld op specialisatie: front-end, back-end of iets daartussenin. Met Docker kan iedereen die bekend is met de basisconcepten containers maken, implementeren en beheren. De containerisatieservices van Docker bieden veel extra voordelen ten opzichte van de traditionele methode waarbij software rechtstreeks op een server wordt geïnstalleerd.

Deze voordelen zijn:

  • Consistentie: door applicaties en hun afhankelijkheden in containers te verpakken, ontstaat een voorspelbare runtime‑omgeving met consistente prestaties.
  • Efficiënt resourcebeheer: dankzij de gedeelde kernelarchitectuur van Docker kunnen meerdere containers op één host worden uitgevoerd met minimale overhead, zodat de hardware optimaal wordt benut.
  • Verbeterde schaalbaarheid: wanneer een applicatie in een container overbelast raakt, kan de Kubernetes-manager een andere instance van deze container maken op een andere server. Een load balancer kan het werk vervolgens over de actieve instances verdelen.
  • Isolatie en beveiliging: containers bieden procesisolatie, wat de beveiliging verbetert voor elke applicatie die op een server wordt uitgevoerd.
  • Microservices-architectuur: containerisatietechnologie is een belangrijke basis voor een microservices-architectuur, waarbij applicaties worden opgesplitst in kleinere, onafhankelijke services die elk in hun eigen container worden uitgevoerd. Dit komt de modulariteit, schaalbaarheid en het onderhoud van applicaties ten goede.
  • Portabiliteit: containers bieden portabiliteit van applicaties in verschillende omgevingen, van ontwikkeling tot productie, waardoor applicaties eenvoudig tussen verschillende infrastructuren kunnen worden verplaatst.
  • Snelle implementatie: dankzij snelle opstarttijden en efficiënt gebruik van resources kunnen containers eenvoudig worden gestopt en gestart, wat eenvoudige updates van runtime‑code en effectieve load balancing mogelijk maakt.
  • Betrouwbaar en efficiënt gebruik van resources: een server kan volledig worden toegewezen aan één Docker-container. Als de container echter niet alle resources van de server nodig heeft, kan deze server ook worden gebruikt om extra containers uit te voeren, zodat de hardware volledig wordt benut.
  • Vereenvoudigd beheer: de intuïtieve interface van Docker en de krachtige tools en opdrachten vereenvoudigen het beheer van containers, zodat het monitoren, bijwerken en op- en afschalen van applicaties eenvoudiger wordt.
  • Snelle implementatie en CI/CD-integratie: het installeren en configureren van software op een server kan minuten tot uren duren. En het implementeren van een container? Dat duurt slecht enkele seconden. Het Kubernetes-automatiseringsplatform is essentieel voor de moderne benadering van continue integratie/continue implementatie die veel wordt gebruikt voor het uitvoeren van cloud-native applicaties.

Hoe Docker werkt

De kernconcepten van Docker zijn images en containers. Een Docker-image bevat alles wat nodig is om software uit te voeren: de uitvoerbare code, drivers, tools, scripts, bibliotheken, implementaties en meer.

Een Docker-container is een actieve instance van een Docker-image. In tegenstelling tot traditionele virtuele machines wordt een Docker-container echter uitgevoerd op de kernel van het hostbesturingssysteem, waardoor de image geen afzonderlijk besturingssysteem bevat. Hoewel dit de container lichtgewicht en eenvoudig verplaatsbaar maakt, moet de container daardoor wel worden afgestemd op een specifiek besturingssysteem. Een Docker‑container met een applicatie die is geschreven en gecompileerd voor Linux, kan uitsluitend worden uitgevoerd op een Linux‑server. Hetzelfde geldt voor een applicatie die is geschreven en gecompileerd voor Windows.

Elke Docker-container heeft een eigen bestandssysteem, een eigen netwerkstack en dus een eigen IP-adres, een eigen procesruimte en gedefinieerde resourcebeperkingen voor CPU en geheugen. Aangezien een Docker-container geen besturingssysteem hoeft op te starten, wordt de container direct opgestart. Bij Docker draait alles om isolatie en het scheiden van de resources van een hostbesturingssysteem van de applicatie. Het is daarom mogelijk om veel containers op één server uit te voeren. Hierbij zijn de containers veilig van elkaar gescheiden, maar delen ze het basisbesturingssysteem en de hardware.

Uitleg over de Docker-architectuur

Voor de architectuur van een Docker-productiesysteem zijn een Docker-daemon, een Docker-client, containerimages en -registers en containerorkestratie en -beheer vereist. Deze stukjes kunnen in de cloud of on-premises worden uitgevoerd.

  • De Docker-daemon is een achtergrondproces dat op elke server, desktop of werkstation draait waarop Docker-containers worden gehost. De daemon beheert alle interacties met de containers, zoals het starten en stoppen van containers en het routeren van netwerkverkeer van en naar de containers.
  • De Docker-client is de tool die ontwikkelaars en beheerders gebruiken om met de Docker‑daemon te communiceren. De Docker‑client had ooit alleen een opdrachtregelinterface, maar biedt inmiddels een grafische interface.
  • Een containerimage is een alleen-lezensjabloon die wordt gebruikt om een container in te richten. De Docker-daemon leest de containerimage, die aangeeft hoe de container op de server moet worden gestart en geconfigureerd en vervolgens hoe de applicatie in deze container moet worden gestart.
  • Containerregisters zijn gecentraliseerde resources waarin Docker-images worden opgeslagen, samen met hun omschrijvingen. De Docker‑client of het Kubernetes‑automatiseringsplatform geeft de Docker‑daemon de opdracht om het containerregister te benaderen en de benodigde containerimages op te halen en te starten.
  • Containerorkestratie verwijst naar het beheren van grote aantallen containers, soms honderden of duizenden, die mogelijk worden uitgevoerd op tientallen of honderden servers in de cloud of in een on-premises datacenter. Voor relatief kleine implementaties kunnen organisaties Docker Swarm gebruiken, een functie die is ingebouwd in het Docker-platform. Voor grotere implementaties in een onderneming is Kubernetes de branchestandaard.
  • Containerbeheer omvat orkestratie, maar ook schaalvergroting, load balancing, logboekregistratie en -analyse, en beveiliging en toegangsbeheer.

Docker versus virtuele machines

Het verschil tussen traditionele virtuele machines (VM's) en containers is groot. Een VM is een volledige softwaresimulatie van een server (of van een computer) die het besturingssysteem en de apparaatdrivers, applicaties en data omvat. In een VM-setup draait een hypervisor op de server die de virtuele machines orkestreert, vergelijkbaar met de rol die de Docker-engine speelt bij containers.

Een container bevat daarentegen alleen applicaties en data en maakt gebruik van het besturingssysteem en de apparaatdrivers van de hostcomputer.

VM's worden gebruikt voor het uitvoeren van meerdere besturingssystemen en bieden veilige, geïsoleerde applicatieomgevingen op één fysieke machine. Maar ondanks hun voordelen kennen VM’s ook duidelijke beperkingen:

  • Inefficiënt gebruik van resources: elke VM vereist een volledig besturingssysteem, wat leidt tot aanzienlijk meer verbruik van geheugen, opslag en rekenkracht dan bij containers.
  • Beperkte schaalbaarheid: omdat VM's een volledige computer simuleren, zijn er veel meer resources nodig om alleen al de overhead te beheren. Dit beperkt het vermogen van de computer om nuttige taken uit te voeren.
  • Traag opstarten: bij het opstarten van een VM moet een volledig besturingssysteem worden geladen. Dit proces kost tijd en dit gaat ten koste van de prestaties van het systeem.

Containers bieden echter een geïsoleerde omgeving voor het uitvoeren van applicaties terwijl ze de kernel van het hostbesturingssysteem delen. Hierdoor is er geen volledige besturingssysteeminstallatie nodig in elke container. Deze gedeelde kernelarchitectuur biedt verschillende voordelen:

  • Efficiënt gebruik van resources: containers delen de kernel van de host, waardoor ze minder geheugen en opslag nodig hebben dan VM’s.
  • Verbeterde schaalbaarheid: het horizontaal schalen van containerapplicaties is een van de primaire doelen van Docker. Dankzij dit ontwerp kunnen razendsnel meerdere instances worden geïmplementeerd met slechts een minimale belasting van de beschikbare resources.
  • Snel opstarten: omdat er geen volledig besturingssysteem hoeft te worden opgestart, kunnen containers binnen enkele seconden starten. Dit leidt tot een snellere implementatie van applicaties en betere systeemprestaties.
Docker-containers gebruiken daarentegen het besturingssysteem en de apparaatdrivers van het hostsysteem, zodat er meer processor‑ en geheugenresources van de server aan de applicatie kunnen worden toegewezen. Op een Linux-server met 20 Docker-containers hoeft slechts één Linux-instance te worden uitgevoerd.
Een vergelijking van een architectuur met virtuele machines en een architectuur met Docker-containers.

Containerisatie versus traditionele implementatie

In traditionele implementaties wordt software ofwel direct op een server geladen, of op een virtuele machine die is geconfigureerd met een besturingssysteem, apparaatdrivers, applicaties en data. Dit is een traag proces dat vooral geschikt is voor grote, monolithische applicaties die doorgaans worden uitgevoerd op een dedicated server in de cloud of in een datacenter.

Containers daarentegen bieden een lichtgewicht manier om een applicatie en alle afhankelijkheden ervan in een image te verpakken. Deze image wordt vervolgens opgeslagen in een repository, vanuit waar de image kan worden geëxtraheerd en binnen enkele seconden kan worden uitgevoerd op een doelserver. Het Docker-containermodel is eenvoudiger te schalen met automatiseringstools. Bovendien is het kosteneffectief en kunnen ontwikkelaars hun servers zo optimaal te benutten.

Belangrijkste componenten van Docker

De kernconcepten van Docker zijn images en containers, die hierboven zijn beschreven. Hier volgen aanvullende componenten van een Docker-containersysteem:

  • Docker-engine: de Docker-engine is de kern van de runtime‑omgeving en is verantwoordelijk voor het bouwen, uitvoeren en beheren van containers. Deze engine vormt de schakel tussen het hostbesturingssysteem en de containers, voor een optimale toewijzing van resources en hoge prestaties.
  • Docker Hub: Docker Hub is een cloudrepository met een uitgebreide verzameling openbare en privé-images. Deze repository fungeert als platform voor het delen van en samenwerken aan Docker-projecten.
  • Docker Compose: Docker Compose is een tool die het definiëren en beheren van applicaties met meerdere containers vereenvoudigt. Met deze tool kunnen ontwikkelaars meerdere containers en hun afhankelijkheden definiëren en configureren binnen één bestand, een YAML-bestand, waardoor het implementeren en schalen van complexe applicaties eenvoudiger wordt.
  • Docker Swarm: Docker Swarm is een tool voor clustering en orkestratie waarmee groepen Docker-engines worden gemaakt. Deze tool ondersteunt het beheer van grote aantallen containers op meerdere hosts en biedt functies zoals load balancing, servicedetectie en schaalbare implementatie van applicaties. Docker Swarm is grotendeels vervangen door Kubernetes, een opensource-platform voor containerbeheer en orkestratie.
  • Docker-CLI en -API: de opdrachtregelinterface (CLI) van Docker biedt intuïtieve opdrachten voor ontwikkelaars en beheerders, plus eenvoudige scripttools voor het beheren van containers, zoals processen voor het starten en stoppen van containers en het monitoren van de status ervan. Via de Docker-API kunnen geavanceerdere automatiserings- en orkestratietools, zoals Kubernetes, dezelfde functies eenvoudiger uitvoeren dan via de opdrachtregelinterface.

Algemene gebruiksscenario's voor Docker

Dankzij de veelzijdigheid en krachtige functies wordt Docker‑containerisatie breed ingezet door bedrijven in verschillende sectoren. Hier volgen de meest voorkomende toepassingen van Docker, veelal in combinatie met Kubernetes:

  • Big data en analyse: efficiënt gebruik van resources en schaalbaarheid maken containers tot een ideale keuze voor applicaties voor big data en analyse. Bedrijven in data-intensieve sectoren zoals finance en de gezondheidszorg gebruiken containers om grote datasets te verwerken en analyseren, waardoor resources efficiënter kunnen worden ingezet en de prestaties verbeteren.
  • Cloud-native applicaties: met de opkomst van cloudcomputing zijn containers een belangrijke factor geworden voor het bouwen van cloud-native applicaties. Door applicaties in containers te verpakken en deze te implementeren, wordt portabiliteit en flexibiliteit tussen cloudproviders geboden. Hierdoor profiteert u van de voordelen van cloudcomputing zonder afhankelijk te zijn van één leverancier.
  • DevOps en continue integratie: organisaties zoals Spotify en Pinterest maken gebruik van containers om hun DevOps-processen te vereenvoudigen en continue integratie mogelijk te maken. Containers bieden een consistente en reproduceerbare omgeving, waardoor het testen en implementeren van codewijzigingen in de ontwikkelpijplijn eenvoudiger wordt.
  • Architecturen op basis van microservices: toonaangevende bedrijven op het gebied van consumententechnologie, zoals Netflix, Uber en Airbnb, gebruiken containerisatie om hun architecturen op basis van microservices schaalbaar en beheersbaar te houden. Het vermogen van containers om complexe applicatie-ecosystemen te gebruiken met meerdere services die parallel worden uitgevoerd, is essentieel geweest voor het succes van deze bedrijven.
  • Implementatie van webapplicaties: containers worden veel gebruikt voor het implementeren van webapplicaties en bieden daarbij consistente en betrouwbare prestaties. Containers bieden een schaalbare en zeer veilige omgeving, zowel voor eenvoudige blogs als voor complexe e-commerceplatforms.

Aan de slag met containers

Voor wie nieuw is met Docker en containers, volgt hier een stappenplan om aan de slag te gaan:

  1. Installeer Docker. De eerste stap is het downloaden en installeren van Docker op het besturingssysteem van uw keuze. Docker biedt installatiepakketten voor Windows, macOS en verschillende Linux-distributies, wat deze oplossing toegankelijk maakt voor een brede groep gebruikers.
  2. Maak een Docker-image. Maak eerst een Docker-image die als blauwdruk voor uw container dient. Dit omvat het schrijven van een Dockerfile, een tekstbestand waarin de vereiste stappen voor het bouwen van uw image zijn gedefinieerd, inclusief de basisimage, installatie van afhankelijkheden en applicatieconfiguratie. Een Docker‑image is opgebouwd uit lagen, waarbij elke laag één van de stappen in het Dockerfile vertegenwoordigt.
  3. Bouw en voer uit. Zodra uw Docker-image gereed is, kunt u uw eerste container bouwen en uitvoeren. De opdrachtregelinterface van Docker biedt intuïtieve opdrachten voor het beheren van containers, zodat u containers kunt starten, stoppen en de status ervan kunt monitoren.
  4. Verken het ecosysteem van Docker. Docker biedt een uitgebreide set tools en services waarmee u uw containerervaring kunt verbeteren. Docker Hub, een cloudrepository, biedt een uitgebreide verzameling kant-en-klare images en fungeert als een platform voor het delen van en samenwerken aan Docker-projecten. Docker Compose vereenvoudigt het beheer van applicaties die uit meerdere containers bestaan.

Best practices voor Docker

Wanneer u het gebruik van Docker in uw organisatie overweegt, kunnen de best practices van bedrijven die al ervaring hebben met cloud‑native ontwikkeling waardevolle richtlijnen bieden:

  • Optimalisatie van imagegrootte en lagen: kleinere Docker-images zijn eenvoudiger te bouwen, te testen en te implementeren. Begin met een kleine basisimage door onnodige bestanden uit uw systeem te verwijderen voordat u de image maakt.
  • Beheer van beveiliging en rechten: alleen geautoriseerde gebruikers mogen toegang krijgen tot containers, en slecht functionerende applicaties in deze containers mogen de beveiliging niet kunnen aantasten of in gevaar brengen. Standaardrichtlijnen zijn van toepassing: voer applicaties nooit uit als hoofdgebruiker, blijf up-to-date met patches en gebruik de toegangsbeheerfuncties van Docker om de Linux- of Windows-rechten van uw containers te beperken.
  • Efficiënte netwerken en load balancing: containers zijn het meest efficiënt wanneer deze weinig afhankelijkheden hebben, dus wanneer u containers kunt maken op en verplaatsen naar elke logische locatie in het netwerk in plaats van deze vast te zetten op één locatie. U kunt Docker Network gebruiken om een flexibele netwerkarchitectuur te definiëren, en tools zoals Nginx inzetten om verkeer te routeren en verdelen tussen containers in een grootschalige implementatie.
  • Monitoring en logboekregistratie voor Docker: in tegenstelling tot monolithische applicaties die op één server zijn geïmplementeerd, kan het lastig zijn om de status van grootschalige containerapplicaties te monitoren zonder het gebruik van automatiseringstools. Verzamel de logbestanden van alle containers op één centrale plek en gebruik vervolgens monitoringtools om fouten op te sporen en prestatiemetrics te visualiseren.

Optimaliseer uw containerstrategie voor groei

Oracle biedt alles wat nodig is voor het maken en implementeren van cloud-native applicaties, zoals tools, services en automatisering, zodat ontwikkelteams snel kunnen bouwen en tegelijkertijd het aantal operationele taken kunnen verminderen.

Cloud-native Oracle services worden uitgevoerd in Oracle Cloud Infrastructure (OCI). Dit biedt een op standaarden gebaseerd platform met hogere prestaties en lagere kosten in vergelijking met andere cloudproviders. Door gebruik te maken van services op basis van open source en open standaarden, zoals Docker en Kubernetes, kunnen ontwikkelaars applicaties in de cloud of on-premises uitvoeren.

Docker en aanverwante technologieën, zoals Kubernetes, zijn de afgelopen jaren op grote schaal toegepast en zijn enorm succesvol gebleken. Van een bijna onbekende en nogal technische opensource-technologie in 2013 heeft Docker zich ontwikkeld tot een gestandaardiseerde runtime-omgeving die geschikt is voor de grootste bedrijfsimplementaties.

Docker is een essentiële component van de modulaire, cloud-native software van vandaag die schaalbaarheid, veerkracht, flexibiliteit en kostenbesparing biedt. Lees hoe u aan de slag kunt gaan.

Veelgestelde vragen over Docker

Wat zijn containers?

Met containers worden alle code en afhankelijkheden van een applicatie gebundeld in een standaardindeling, zodat de applicatie snel en betrouwbaar kan worden uitgevoerd op de meeste servers. Docker is een opensource-indeling voor containers.

Waarom Docker gebruiken in plaats van traditionele implementatiemethoden?

Voorheen moesten beheerders de bestanden van een applicatie, inclusief de uitvoerbare binaire bestanden, bibliotheken en data, op een server installeren en vervolgens ervoor zorgen dat alles juist werd geconfigureerd. Als meerdere applicaties tegelijkertijd op een server werden geïnstalleerd en uitgevoerd om het hardwaregebruik te maximaliseren, moesten beheerders voorkomen deze applicaties met elkaar interfereerden en dat een fout in de ene applicatie niet zou leiden tot crashes in de andere. Dit kan, om het voorzichtig uit te drukken, behoorlijk complex zijn en is moeilijk te automatiseren.

Als u daarentegen een container met een applicatie maakt, betekent dit dat de container ook de uitvoerbare binaire bestanden, bibliotheken en data bevat, en dat alles vooraf is geconfigureerd. Als u de applicatie wilt uitvoeren, hoeft u de container alleen maar naar de server te kopiëren. De Docker-engine en Docker-daemon regelen de rest. Containers zijn bovendien geïsoleerd. Als een applicatie niet werkt, heeft dit dus geen gevolgen voor wat in andere containers wordt uitgevoerd. U kunt ook tools zoals Kubernetes gebruiken om de implementatie en het beheer van containerapplicaties op zeer grote schaal te automatiseren.

Kan Docker virtuele machines volledig vervangen?

Docker en virtuele machines moeten als complementaire technologieën worden beschouwd. Containers gebruiken het besturingssysteem en de apparaatdrivers van de hostcomputer. Hierdoor werken containers snel en efficiënt en zijn ze doorgaans de meest logische oplossing.

Er kunnen echter situaties zijn waarin een virtuele machine een betere keuze is. Voorbeelden van dergelijke situaties zijn het uitvoeren van applicaties op een dedicated besturingssysteem zonder de resources te delen, het vereisen van gespecialiseerde apparaatdrivers of het uitvoeren van meerdere besturingssystemen op dezelfde server.

Hoe kan Docker worden geïntegreerd met Kubernetes?

Kubernetes is een opensource-systeem voor het beheren van Docker-containers. Gebruik Kubernetes om containers te implementeren, starten, stoppen en op te schalen met meerdere instances wanneer dat nodig is. Containers worden zelfs opnieuw gestart als een applicatie niet meer werkt of niet meer reageert. Docker Compose, een onderdeel van het Docker-basissysteem, kan kleinschalige containerimplementaties verwerken, terwijl Kubernetes ideaal is voor het opschalen naar tientallen, honderden of zelfs duizenden containers.

Welke rol speelt Docker in cloudstrategieën voor ondernemingen?

Docker-containers zijn perfect voor het implementeren van software in de cloud. Dit kan zowel traditionele applicaties betekenen die in één container worden uitgevoerd, als cloud-native applicaties op basis van microservices die uit tientallen afzonderlijke services bestaan die elk in hun eigen container worden uitgevoerd. Containers kunnen de ontwikkeling en implementatie van services in de cloud vereenvoudigen en de schaalbaarheid, beveiliging, naleving, testbaarheid en beschikbaarheid van bedrijfsapplicaties verbeteren. Docker en Kubernetes kunnen zelfs het gebruik van cloudservers maximaliseren, waardoor de runtime-kosten kunnen worden verlaagd.