{"id":3427082,"date":"2025-09-11T14:36:05","date_gmt":"2025-09-11T12:36:05","guid":{"rendered":"https:\/\/datanorth.ai\/blog\/docker-wat-is-het-en-waarom-is-het-belangrijk"},"modified":"2026-08-18T17:00:59","modified_gmt":"2026-08-18T15:00:59","slug":"docker-wat-is-het-en-waarom-is-het-belangrijk","status":"publish","type":"post","link":"https:\/\/datanorth.ai\/nl\/blog\/docker-wat-is-het-en-waarom-is-het-belangrijk","title":{"rendered":"Docker: Wat is het en waarom is het belangrijk?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.docker.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker<\/a> is een open platform om applicaties te ontwikkelen, te distribueren en te draaien in containers. Het verpakt je code samen met de libraries, tools en instellingen die nodig zijn om te draaien, zodat dezelfde applicatie zich identiek gedraagt op een laptop, op een buildserver en in productie. Dat is het korte antwoord op de vraag wat Docker is.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Het langere antwoord gaat over waarom containers van een nichefunctie in de Linux-kernel zijn uitgegroeid tot de standaardeenheid waarin vrijwel alle moderne software wordt uitgeleverd. In dit artikel lees je wat Docker is en wat een container precies is, waarom Docker belangrijk is, waar je het voor gebruikt, hoe je het installeert en je eerste container draait, wat het kost, waar het misgaat, en hoe het zich verhoudt tot virtuele machines en alternatieven zoals Podman.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1024\" height=\"486\" src=\"https:\/\/datanorth.ai\/wp-content\/uploads\/2025\/09\/wat-is-docker.png\" alt=\"wat is docker?\" class=\"wp-image-3427087\" srcset=\"https:\/\/datanorth.ai\/wp-content\/uploads\/2025\/09\/wat-is-docker.png 1024w, https:\/\/datanorth.ai\/wp-content\/uploads\/2025\/09\/wat-is-docker-300x142.png 300w, https:\/\/datanorth.ai\/wp-content\/uploads\/2025\/09\/wat-is-docker-768x365.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Wat is Docker?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">De formele definitie is die van Docker zelf. Docker is een open platform om applicaties te ontwikkelen, te distribueren en te draaien, waarmee je je applicaties loskoppelt van je infrastructuur. De kern is containerisatie: Docker verpakt software in gestandaardiseerde eenheden die containers heten en die alles bevatten wat een applicatie nodig heeft om te draaien, namelijk de code, de libraries, de systeemtools en de runtime.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In tegenstelling tot een traditionele virtuele machine, die voor elke instantie een compleet besturingssysteem meedraagt, delen Docker-containers de kernel van het onderliggende besturingssysteem terwijl ze onderling gescheiden blijven. Die ene ontwerpkeuze verklaart waarom containers in seconden starten in plaats van in minuten, en waarom je er tientallen kunt draaien op hardware die met een handvol virtuele machines al moeite heeft.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wat is een Docker-container?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Een container is een draaiend exemplaar van een Docker-image. De image is het read-only sjabloon: je applicatie, de afhankelijkheden en de configuratie, opgeslagen als een stapel filesystem-lagen. De container is wat je krijgt als je die image start, namelijk een ge\u00efsoleerd proces met een eigen beeld van het filesystem, een eigen netwerkinterface en een eigen procesboom, draaiend op de kernel van de host.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Containers zijn bewust wegwerpbaar. Je stopt er een, start een nieuwe uit dezelfde image en krijgt een identieke omgeving terug. Alles wat je wilt bewaren moet naar een volume of naar een externe dienst worden geschreven. Dat verrast bijna iedereen die van virtuele machines komt. Verderop staat hoe je dat oplost.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Is Docker een platform, een framework of een tool?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Docker is een platform en geen framework. Een framework bepaalt hoe je je applicatie schrijft. Docker heeft geen mening over je programmeertaal, je framework of je architectuur. De enige eis is dat je applicatie als image beschreven kan worden en als proces gestart kan worden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Het helpt om de onderdelen uit elkaar te houden die in de praktijk allemaal &#8220;Docker&#8221; worden genoemd:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Docker Engine<\/strong> is de runtime die containers bouwt en draait. Daaronder gebruikt Docker containerd, een CNCF-project met graduated-status, en runc, de referentieruntime van het Open Container Initiative.<\/li>\n\n\n\n<li><strong>Docker CLI<\/strong> is het docker-commando dat je intypt.<\/li>\n\n\n\n<li><strong>Docker Desktop<\/strong> is de kant-en-klare applicatie voor Windows, macOS en Linux, met daarin de Engine, de CLI, Compose, een optioneel Kubernetes-cluster en een grafische interface.<\/li>\n\n\n\n<li><strong>Docker Hub<\/strong> is de registry waar images worden opgeslagen, gevonden en gedeeld.<\/li>\n\n\n\n<li><strong>Docker, Inc.<\/strong> is het bedrijf achter de commerci\u00eble producten en abonnementen.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Het imageformaat en de runtime zelf zijn open standaarden onder het <a href=\"https:\/\/opencontainers.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Open Container Initiative<\/a>. Dat is precies waarom Docker geen lock-inrisico oplevert: een OCI-image die je met Docker bouwt draait ook op Podman, containerd, Kubernetes en elke grote cloudcontainerdienst.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Waar gebruik je Docker Desktop voor?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Docker Desktop is wat de meeste ontwikkelaars daadwerkelijk installeren. Op Windows en macOS draait het een kleine Linux virtuele machine en geeft het je daarbinnen Docker Engine. Daar komen schermen bij om images en containers te beheren, een Kubernetes-cluster met \u00e9\u00e9n node dat je kunt aanzetten, en een overzicht van kwetsbaarheden in de images die je binnenhaalt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Op Linux heb je Docker Desktop niet nodig. Docker Engine installeer je daar gewoon uit de pakketrepositories van je distributie. Docker Desktop voor Linux bestaat vooral voor teams die op alle drie de besturingssystemen dezelfde werkwijze willen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Docker Desktop is gratis voor persoonlijk gebruik, onderwijs, opensourceprojecten en organisaties met minder dan 250 medewerkers en minder dan 10 miljoen dollar jaaromzet. Zit je boven een van die twee grenzen, dan is een betaald abonnement verplicht. De kosten komen verderop aan bod.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Korte geschiedenis van Docker<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Solomon Hykes liet Docker in maart 2013 voor het eerst zien op PyCon in Santa Clara, als intern project van het platform-as-a-service-bedrijf dotCloud. Diezelfde maand werd het open source, en versie 1.0 verscheen in juni 2014. dotCloud werd later omgedoopt tot Docker, Inc., en verkocht in 2019 de Docker Enterprise-tak aan Mirantis om zich op tooling voor ontwikkelaars te richten. Dat verklaart waarom de commerci\u00eble producten van vandaag draaien om Docker Desktop en Docker Hub.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Containers waren op dat moment niet nieuw. Linux had al control groups en namespaces, en LXC bestond al jaren. Wat Docker toevoegde was een imageformaat, een publieke registry en een command line die eenvoudig genoeg was om containers bruikbaar te maken voor gewone ontwikkelaars in plaats van alleen voor kernelspecialisten. Die toegankelijkheid heeft de markt veranderd, niet de onderliggende techniek.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Waarom is Docker belangrijk?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Docker is belangrijk omdat het een concreet en duur probleem heeft opgelost: software die in de ene omgeving werkt en in de andere niet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voordat er containers waren, betekende het uitrollen van een applicatie dat je de omgeving handmatig of via configuratiebeheer moest reproduceren. Versies van het besturingssysteem, versies van libraries, omgevingsvariabelen, bestandspaden en ge\u00efnstalleerde tooling moesten allemaal kloppen. Dat lukte zelden in \u00e9\u00e9n keer, en het gat tussen &#8220;bij mij werkt het&#8221; en &#8220;in productie werkt het&#8221; kostte een aanzienlijk deel van de ontwikkeltijd.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Een image laat dat gat verdwijnen door de omgeving onderdeel te maken van het artefact. Wat je hebt getest is precies wat je uitrolt. Daar volgen vier dingen uit, en die verklaren waarom Docker belangrijk is:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Consistentie.<\/strong> Dezelfde image draait op een laptop, in de CI-pipeline en in productie, zonder verschillen die onderweg insluipen.<\/li>\n\n\n\n<li><strong>Snelheid en effici\u00ebnt hardwaregebruik.<\/strong> Containers delen de kernel van de host, dus ze starten in seconden en je draait er veel op \u00e9\u00e9n machine.<\/li>\n\n\n\n<li><strong>Portabiliteit.<\/strong> Een OCI-image draait op elke compatibele runtime en bij elke cloud, zonder opnieuw te bouwen of te verpakken.<\/li>\n\n\n\n<li><strong>Samenstelbaarheid.<\/strong> Kleine, los uitrolbare services worden praktisch beheersbaar. Dat is wat microservices en later serverless containerplatformen mogelijk maakte.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Het gevolg is dat containers geen keuze meer zijn maar een aanname. Kubernetes, GitHub Actions runners, de meeste CI-systemen, de meeste platform-as-a-service-diensten en de meeste AI-inferentiestacks nemen allemaal een containerimage als invoer. Docker begrijpen is daarmee verschoven van specialisme naar basiskennis voor ontwikkelaars, DevOps-engineers en datateams.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Waar kun je Docker voor gebruiken?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Docker vervult meerdere rollen in de softwareontwikkelcyclus.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Applicaties uitrollen en schalen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Met Docker draai je dezelfde workload op de laptop van een ontwikkelaar, op fysieke of virtuele machines in een datacenter of bij een cloudprovider. Die portabiliteit maakt het eenvoudig om workloads te verplaatsen en applicaties op of af te schalen naarmate de vraag verandert, omdat je voor extra capaciteit meer kopie\u00ebn van een image start in plaats van een extra server in te richten en te configureren.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ontwikkelomgevingen standaardiseren<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Docker maakt een einde aan het probleem dat iets alleen op de machine van de ontwikkelaar werkt, doordat alle teamleden in dezelfde omgeving werken. Omdat een Dockerfile die omgeving beschrijft en in versiebeheer staat, worden verschillen tussen machines kleiner en werkt iedereen met dezelfde setup. Nieuwe collega&#8217;s klonen de repository en draaien \u00e9\u00e9n commando, in plaats van een installatiedocument te volgen dat altijd net verouderd is.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Continuous integration en delivery<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Doordat ontwikkelaars lokaal in gestandaardiseerde containers werken, verkort Docker de weg van code naar productie. Dezelfde image die in de pipeline is gebouwd en getest, gaat door naar productie. Dat elimineert een hele categorie deployfouten. De meeste CI-platformen, waaronder GitHub Actions en GitLab CI, draaien hun jobs standaard al in containers.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Microservices-architectuur<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Doordat containers licht zijn, passen ze goed bij een microservices-architectuur, waarin een applicatie wordt opgeknipt in kleinere, los uitrolbare services. Elke service draait in een eigen container met eigen afhankelijkheden, zodat teams losse onderdelen kunnen bijwerken, schalen en terugdraaien zonder \u00e9\u00e9n grote release te hoeven co\u00f6rdineren.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">AI- en machine learning-workloads<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">AI-projecten hebben een afhankelijkheidsprobleem waar containers een antwoord op zijn. CUDA-versies, Python-packages, modelruntimes en systeemlibraries moeten exact op elkaar aansluiten, en die stack handmatig reproduceren op een werkstation, een trainingsserver en een cloudinstantie is onbetrouwbaar. Een image legt de hele stack in \u00e9\u00e9n keer vast.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Docker speelt hier zelf ook op in. <a href=\"https:\/\/docs.docker.com\/ai\/model-runner\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker Model Runner<\/a> draait lokale taalmodellen achter een OpenAI-compatibele API, zodat je bestaande tooling kunt richten op een model op je eigen hardware in plaats van op een cloudendpoint. De <a href=\"https:\/\/docs.docker.com\/ai\/mcp-catalog-and-toolkit\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker MCP Catalog en MCP Toolkit<\/a> leveren Model Context Protocol servers als containers, waardoor je niet voor elke tool die een AI-assistent gebruikt een aparte runtime hoeft te installeren. <a href=\"https:\/\/docs.docker.com\/ai\/sandboxes\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker Sandboxes<\/a> draaien coding agents in ge\u00efsoleerde microVM&#8217;s, wat een verstandige voorzorgsmaatregel is zodra een agent shelltoegang tot een machine krijgt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hoe begin je met Docker?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Beginnen met Docker gaat in een paar overzichtelijke stappen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Installatie<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Docker is beschikbaar als Docker Desktop voor Windows en macOS, en als Docker Engine-pakketten voor Linux-distributies. Compose zit tegenwoordig in de Docker CLI en roep je aan als <code>docker compose<\/code>, niet meer als de losse <code>docker-compose<\/code>. Op Windows gebruikt Docker Desktop standaard de WSL 2-backend, met Hyper-V en Docker VMM als alternatieven, dus controleer v\u00f3\u00f3r de installatie of Windows en WSL aan de gedocumenteerde versievereisten voldoen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Hoe installeer je Docker?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Windows en macOS:<\/strong> installeer <a href=\"https:\/\/docs.docker.com\/desktop\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker Desktop<\/a>, inclusief Docker Engine, Buildx en Compose. Controleer daarna met <code>docker --version<\/code> en <code>docker compose version<\/code> in een terminal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Linux (Ubuntu of Debian):<\/strong> installeer Docker Engine uit de apt-repository van Docker. De actuele pakketten zijn <code>docker-ce<\/code>, <code>docker-ce-cli<\/code>, <code>containerd.io<\/code>, <code>docker-buildx-plugin<\/code> en <code>docker-compose-plugin<\/code>, die de oude losse <code>docker-compose<\/code> vervangen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voorbeeldstappen voor Ubuntu, in een terminal met sudo-rechten:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Voorbereiding\nsudo apt update\nsudo apt install -y ca-certificates curl\n \n# Keyring\nsudo install -m 0755 -d \/etc\/apt\/keyrings\nsudo curl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg -o \/etc\/apt\/keyrings\/docker.asc\nsudo chmod a+r \/etc\/apt\/keyrings\/docker.asc\n \n# Repository, in het deb822-formaat dat Docker nu documenteert\nsudo tee \/etc\/apt\/sources.list.d\/docker.sources > \/dev\/null &lt;&lt;SOURCES\nTypes: deb\nURIs: https:\/\/download.docker.com\/linux\/ubuntu\nSuites: $(. \/etc\/os-release &amp;&amp; echo \"${UBUNTU_CODENAME:-$VERSION_CODENAME}\")\nComponents: stable\nArchitectures: $(dpkg --print-architecture)\nSigned-By: \/etc\/apt\/keyrings\/docker.asc\nSOURCES\n \n# Engine, Buildx en de Compose-plugin installeren\nsudo apt update\nsudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Je eerste Docker-container<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Controleer na de installatie meteen of alles werkt. Op Linux zet je er <code>sudo<\/code> voor, tenzij je gebruiker aan de docker-groep is toegevoegd.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker run hello-world<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Verschijnt er een welkomstbericht, dan is de Engine ge\u00efnstalleerd, kan hij Docker Hub bereiken en kan hij een container starten. Je gebruiker aan de docker-groep toevoegen scheelt het sudo-voorvoegsel, maar houd er rekening mee dat dit rechten geeft die gelijkstaan aan root op de host.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Dockerfiles begrijpen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Een Dockerfile is een tekstbestand met de instructies om een containerimage te bouwen. Die legt de base image vast, welke bestanden worden gekopieerd, welke afhankelijkheden worden ge\u00efnstalleerd en welk commando er draait. Daarmee worden builds reproduceerbaar en automatiseerbaar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kies een onderhouden base image. Een runtime draaien die end-of-life is, is een van de meest voorkomende en makkelijkst te vermijden bronnen van kwetsbaarheden in containerimages. Pin daarom op een ondersteunde LTS-versie in plaats van op een meebewegende <code>latest<\/code>-tag. Slim- en Alpine-varianten schelen fors in omvang, en Docker publiceert daarnaast <a href=\"https:\/\/www.docker.com\/products\/hardened-images\/\" target=\"_blank\" rel=\"noreferrer noopener\">Hardened Images<\/a> die vrijwel geen bekende kwetsbaarheden bevatten, voor situaties waarin dat uitmaakt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voorbeeld van een Dockerfile voor een Node.js-applicatie, met een multi-stage build en een gebruiker zonder rootrechten:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Build-fase\nFROM node:lts-alpine AS build\nWORKDIR \/app\nCOPY package.json package-lock.json .\/\nRUN npm ci --omit=dev\n \n# Runtime-fase\nFROM node:lts-alpine\nWORKDIR \/app\nCOPY --from=build \/app\/node_modules .\/node_modules\nCOPY . .\nUSER node\nEXPOSE 3000\nCMD &#091;\"node\", \"server.js\"]<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">De buildfase lost de afhankelijkheden op, de runtimefase begint met een schone base en kopieert alleen de ge\u00efnstalleerde modules en je applicatiecode over, en <code>USER node<\/code> zorgt dat de container niet als root draait. Alle drie zijn gewoontes die je beter meteen aanleert.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Images bouwen en containers draaien<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Bouw een image uit de Dockerfile en start een container, waarbij je een poort van de host koppelt aan een poort in de container zodat je erbij kunt.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker build -t my-app .\ndocker run -p 3000:3000 my-app<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Het eerste commando bouwt een image met de tag <code>my-app<\/code> uit de Dockerfile in de huidige map. Het tweede start daar een container uit en koppelt poort 3000 in de container aan poort 3000 op je host. Met <code>-d<\/code> draait hij op de achtergrond, en met <code>docker ps<\/code>, <code>docker logs<\/code> en <code>docker stop<\/code> bekijk en stop je hem.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Werken met Docker Compose<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Compose beschrijft in \u00e9\u00e9n <code>compose.yaml<\/code> applicaties die uit meerdere containers bestaan, zodat een webserver, een API en een database samen starten met \u00e9\u00e9n commando. Compose zit in de Docker CLI als <code>docker compose<\/code> en wordt meegeleverd als <code>docker-compose-plugin<\/code> op Linux en binnen Docker Desktop.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let op de versienummering, want die zorgt voor verwarring. Compose v1 was het Python-script <code>docker-compose<\/code> en is uitgefaseerd. Compose v2 was de herbouw in Go, aan te roepen als <code>docker compose<\/code>. <a href=\"https:\/\/docs.docker.com\/compose\/intro\/history\/\" target=\"_blank\" rel=\"noreferrer noopener\">Compose v5<\/a> verscheen in 2025, is functioneel gelijk aan v2 en voegt een offici\u00eble Go SDK toe om Compose in je eigen tooling te gebruiken. Het commando dat je typt is niet veranderd.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>services:\n  web:\n    build: .\n    ports:\n      - \"3000:3000\"\n    depends_on:\n      db:\n        condition: service_healthy\n  db:\n    image: postgres:17\n    environment:\n      POSTGRES_PASSWORD: example\n    volumes:\n      - pgdata:\/var\/lib\/postgresql\/data\n    healthcheck:\n      test: &#091;\"CMD-SHELL\", \"pg_isready -U postgres\"]\n      interval: 5s\n      retries: 5\n \nvolumes:\n  pgdata:<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Je beheert de stack met <code>docker compose up<\/code>, <code>docker compose down<\/code> en <code>docker compose logs<\/code>. Wees voorzichtig met <code>docker compose down -v<\/code>, want de <code>-v<\/code> verwijdert benoemde volumes en daarmee de inhoud van je database.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Twee details zorgen vaak voor verwarring. Een groot deel van het <code>deploy-blok<\/code> hoort bij Swarm en wordt door <code>docker compose up<\/code> stilzwijgend genegeerd, waaronder <code>placement<\/code>, <code>update_config<\/code>, <code>rollback_config<\/code>, <code>endpoint_mode<\/code> en <code>mode: global<\/code>. De uitzonderingen zijn <code>replicas<\/code>, <code>resources<\/code> en <code>restart_policy<\/code>, die Compose wel respecteert, en met <code>docker compose up --scale web=3<\/code> overschrijf je het aantal instanties tijdens het starten. De tweede valkuil is <code>container_name<\/code>: stel je die in, dan kan de service helemaal niet meer schalen, omdat twee containers niet dezelfde naam kunnen hebben.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Werken met Docker Hub<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/hub.docker.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker Hub<\/a> is de offici\u00eble registry van Docker om images te vinden, op te slaan en te delen. Naast miljoenen community-images staan er Docker Official Images en Verified Publisher-content. Een gratis account krijgt \u00e9\u00e9n private repository, betaalde abonnementen een onbeperkt aantal. Je haalt een publieke image zoals <code>nginx<\/code> of <code>postgres<\/code> binnen voor lokaal gebruik, en je pusht eigen images met de standaard-CLI naar een persoonlijke of organisatierepository.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">E\u00e9n praktisch punt waar CI-pipelines regelmatig op stuklopen: Docker Hub hanteert limieten op het aantal pulls. Anonieme pulls worden per IP-adres begrensd, een geauthenticeerd Personal-account krijgt meer ruimte en betaalde abonnementen zijn onbeperkt. Haalt je pipeline images anoniem op vanaf een gedeeld netwerk of een cloud-runner, dan loop je vroeg of laat tegen die grens aan. Log in vanuit je pipeline, of spiegel de images waarvan je afhankelijk bent naar je eigen registry. De <a href=\"https:\/\/docs.docker.com\/docker-hub\/usage\/\" target=\"_blank\" rel=\"noreferrer noopener\">actuele limieten<\/a> staan in de documentatie van Docker.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Data bewaren met volumes<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Alles wat binnen een container wordt weggeschreven verdwijnt zodra die container wordt verwijderd. Om data te bewaren koppel je een volume, opslag die door Docker wordt beheerd en die losstaat van de levensduur van de container.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Benoemd volume, beheerd door Docker\ndocker run -e POSTGRES_PASSWORD=example -v pgdata:\/var\/lib\/postgresql\/data postgres:17\n \n# Bind mount, een map van de host in de container\ndocker run -v $(pwd)\/src:\/app\/src my-app<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Benoemde volumes zijn de juiste standaardkeuze voor databases en applicatiegegevens. Bind mounts zijn handig tijdens ontwikkeling, omdat wijzigingen op je host direct zichtbaar zijn in de container. E\u00e9n valkuil is het weten waard: een bind mount verbergt wat er op dat pad al in de image stond, en dat is een veelvoorkomende oorzaak van de klacht dat bestanden ineens verdwenen zijn.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Risico&#8217;s en nadelen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Docker levert echte voordelen op, maar het is verstandig om de beperkingen te kennen voordat je erop overstapt.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Leercurve en complexiteit<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Docker kent een steile leercurve, vooral rond netwerken, opslag en de gelaagdheid van images. E\u00e9n container draaien is eenvoudig. Een productieomgeving beheren is dat niet, en de meeste teams komen op het punt dat ze een orkestrator zoals Kubernetes nodig hebben, met daarbovenop een tweede en veel steilere leercurve.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Uitdagingen rond persistente opslag<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Standaard verdwijnt alle data in een container zodra die wordt verwijderd, tenzij die data eerst ergens anders is weggeschreven. Volumes en bind mounts lossen dat op, maar back-up en migratie blijven bewerkelijker dan bij een traditionele server, en de prestaties van containeropslag vallen vaker tegen. Veel teams houden hun primaire database in productie daarom bewust buiten Docker.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Beperkte ondersteuning voor grafische applicaties<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Docker is ontworpen voor serverapplicaties zonder grafische interface. Een GUI-applicatie in een container draaien kan met X11-forwarding of een VNC-server, maar de inrichting is omslachtig en zelden de moeite waard buiten specifieke toepassingen zoals browsertesten.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Security en het aanvalsoppervlak van containers<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Containers isoleren processen, maar ze delen de kernel van de host. Dat vergroot het aanvalsoppervlak: een kwetsbaarheid in die kernel heeft een grotere impact dan bij virtuele machines. Het vaker voorkomende probleem is simpeler dan dat: containers gebouwd op verouderde base images, draaiend als root, met secrets die in de imagelagen zijn meegebakken.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De maatregelen zijn bekend en goed uitvoerbaar. Pin base images en werk ze regelmatig bij, draai als gebruiker zonder rootrechten, scan images in de pipeline, houd secrets uit de image en injecteer ze bij het starten, en overweeg rootless mode, waarbij de daemon en de containers zonder rootrechten op de host draaien. Docker Scout laat kwetsbaarheden per imagelaag zien, en Docker Hardened Images bieden minimale, continu gepatchte base images met een ondertekend herkomstbewijs, voor teams die de herkomst van hun software moeten kunnen aantonen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Wat kost Docker?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Docker Engine op Linux is gratis en open source. Waar je wel voor betaalt, zijn Docker Desktop en de diensten van Docker Hub en het Docker-platform eromheen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Docker Desktop blijft gratis voor persoonlijk gebruik, onderwijs, opensourceprojecten en organisaties met minder dan 250 medewerkers en minder dan 10 miljoen dollar jaaromzet. Grotere organisaties, en overheidsinstanties ongeacht hun omvang, hebben een betaald abonnement nodig. De betaalde varianten heten Pro, Team en Business en worden per gebruiker per maand afgerekend. Daar horen onbeperkte pulls van Docker Hub, private repositories en centraal beheer bij, en op de hogere niveaus single sign-on. Docker publiceert de actuele grenzen en tarieven in de <a href=\"https:\/\/www.docker.com\/pricing\/faq\/\" target=\"_blank\" rel=\"noreferrer noopener\">plans FAQ<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De kostenpost die organisaties verrast is niet de licentie. Het is het werk dat een containerplatform met zich meebrengt: registries, de levenscyclus van images, patchen, orkestratie en de mensen die dat begrijpen. Begroot dat voordat je aanneemt dat containers de operationele kosten verlagen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Docker versus virtuele machines<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Het verschil tussen containers en virtuele machines maakt duidelijk wanneer je wat gebruikt. Een virtuele machine virtualiseert een complete computer tot op hardwareniveau en draait een volledig gastbesturingssysteem. Een container virtualiseert alleen de applicatielaag en deelt de kernel van de host. Containers zijn daardoor lichter en sneller te starten, terwijl virtuele machines een stevigere isolatiegrens bieden.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Aspect<\/th><th>Docker-containers<\/th><th>Virtuele machines<\/th><\/tr><\/thead><tbody><tr><td>Architectuur<\/td><td>Deelt de kernel van de host<\/td><td>Elke VM draait een eigen besturingssysteem<\/td><\/tr><tr><td>Resourcegebruik<\/td><td>Licht, megabytes per image<\/td><td>Zwaar, gigabytes per image<\/td><\/tr><tr><td>Starttijd<\/td><td>Seconden<\/td><td>Tientallen seconden tot minuten<\/td><\/tr><tr><td>Isolatie<\/td><td>Op procesniveau, gedeelde kernel<\/td><td>Op hardwareniveau, eigen kernel<\/td><\/tr><tr><td>Security<\/td><td>Gedeelde kernel vergroot de impact<\/td><td>Sterkere isolatiegrens<\/td><\/tr><tr><td>Portabiliteit<\/td><td>Zeer portabel als OCI-image<\/td><td>Minder portabel tussen hypervisors<\/td><\/tr><tr><td>Keuze besturingssysteem<\/td><td>Moet passen bij de kernel van de host<\/td><td>Elk ondersteund besturingssysteem<\/td><\/tr><tr><td>Typisch gebruik<\/td><td>Microservices, CI\/CD, cloud-native apps<\/td><td>Multi-tenancy, legacy, strikte isolatie<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In de praktijk vullen ze elkaar aan in plaats van dat ze concurreren. De meeste containers in productie draaien binnen virtuele machines van een cloudprovider. Dat geeft je de isolatie van een VM op de grens tussen klanten en de dichtheid van containers daarbinnen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Docker versus Podman, containerd en Kubernetes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Docker is niet de enige manier om containers te draaien, en de alternatieven worden vaak als concurrenten gezien terwijl ze op een andere laag zitten.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Podman<\/strong> is een daemonloze container-engine, ontstaan bij Red Hat en inmiddels een CNCF Sandbox-project, die standaard rootless draait en een CLI heeft die grotendeels gelijk is aan die van Docker. Het spreekt teams met strenge beveiligingseisen en Red Hat-omgevingen aan, en het bouwt en draait dezelfde OCI-images.<\/li>\n\n\n\n<li><strong>containerd<\/strong> is de laag eronder, de runtime die Docker Engine zelf gebruikt en waar Kubernetes rechtstreeks mee praat. Het is infrastructuur in plaats van een ontwikkeltool, dus je gebruikt het zelden met de hand.<\/li>\n\n\n\n<li><strong>Kubernetes<\/strong> is een orkestrator en geen alternatief voor Docker. Het plant en beheert containers over een cluster van machines en draait dezelfde images die Docker bouwt. Kubernetes verwijderde in versie 1.24 zijn Docker-specifieke shim, wat veel verwarring gaf, maar in de praktijk veranderde er voor ontwikkelaars niets: images die met Docker zijn gebouwd draaien gewoon op Kubernetes.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Voor de meeste teams is het verstandige antwoord dat je lokaal met Docker bouwt en draait op wat je platform biedt. Omdat het imageformaat gestandaardiseerd is, blijft die keuze omkeerbaar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wanneer kun je Docker beter niet gebruiken?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Containers zijn met goede reden de standaard geworden, maar ze kosten je wel iets en ze zijn niet altijd het juiste antwoord.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Voor \u00e9\u00e9n kleine applicatie op \u00e9\u00e9n server die zelden verandert, voegt een container een laag tooling toe zonder dat het een probleem oplost dat je werkelijk hebt.<\/li>\n\n\n\n<li>Voor desktopsoftware met een grafische interface werkt het containermodel eerder tegen je dan voor je.<\/li>\n\n\n\n<li>Voor workloads die een andere kernel nodig hebben dan die van de host, zoals Windows-applicaties op Linux-hosts, heb je een virtuele machine nodig.<\/li>\n\n\n\n<li>Voor harde isolatie tussen workloads die je niet vertrouwt, is de gedeelde kernel een re\u00ebel risico en zijn virtuele machines of microVM&#8217;s de veiligere grens.<\/li>\n\n\n\n<li>Voor stateful databases in productie kiezen veel teams nog steeds voor een managed service of een dedicated server, en zetten ze containers alleen in voor de stateless lagen.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">De vraag die telt is of je een omgevingsprobleem, een schaalprobleem of een probleem met opleversnelheid hebt. Is dat zo, dan verdient Docker zijn complexiteit terug. Zo niet, dan is het overhead.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusie<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Docker heeft het denken over het uitrollen van applicaties veranderd. Containers zijn nu de vanzelfsprekende vorm waarin software wordt opgeleverd, geen optie meer die je afweegt. De interessante ontwikkelingen zitten niet meer in de runtime, die stabiel en gestandaardiseerd is, maar in alles wat eromheen staat.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Twee richtingen zijn het volgen waard. De eerste is beveiliging van de toeleveringsketen: ondertekende herkomst, een software bill of materials en minimale hardened base images zijn van compliance-oefening naar standaardverwachting geschoven, mede gedreven door regelgeving zoals de Europese Cyber Resilience Act. De tweede is AI. Containers zijn het verpakkingsformaat geworden voor modellen, inferentieservers en agent-tooling, en Docker heeft die vraag gevolgd met Model Runner, de MCP Toolkit en ge\u00efsoleerde sandboxen voor coding agents.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voor organisaties betekent dat vooral dat containerkennis nu op het kritieke pad ligt voor zowel softwareoplevering als het uitrollen van AI. De leercurve is stevig, maar wat je ervoor terugkrijgt zijn consistente omgevingen, reproduceerbare deployments en infrastructuurkeuzes die omkeerbaar blijven.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Veelgestelde vragen (FAQ) over Docker<\/h2>\n\n\n\n<div class=\"wp-block-wpseopress-faq-block-v2 is-layout-flow wp-block-wpseopress-faq-block-v2-is-layout-flow\">\n<details id=\"wat-is-docker-simpel-uitgelegd\" class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Wat is Docker simpel uitgelegd?<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">Docker verpakt een applicatie, samen met alles wat die nodig heeft om te draaien, in \u00e9\u00e9n eenheid: een container. Die container draait op elke machine met Docker op dezelfde manier, waardoor de verschillen tussen een laptop van een ontwikkelaar, een testserver en productie verdwijnen.<\/p>\n<\/details>\n\n\n\n<details id=\"waar-gebruik-je-docker-voor\" class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Waar gebruik je Docker voor?<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">Docker wordt gebruikt om ontwikkelomgevingen te standaardiseren, om software te bouwen en te testen in CI\/CD-pipelines, om applicaties uit te rollen en te schalen over servers en clouds, om microservices te draaien, en om AI- en dataworkloads met exact de juiste afhankelijkheden te verpakken.<\/p>\n<\/details>\n\n\n\n<details id=\"waarom-is-docker-belangrijk\" class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Waarom is Docker belangrijk?<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">Omdat het de omgeving onderdeel maakt van het artefact dat je uitrolt. Daarmee verdwijnen de verschillen tussen ontwikkeling en productie, daalt het aantal mislukte deployments, en draait dezelfde image ongewijzigd op elk compatibel platform.<\/p>\n<\/details>\n\n\n\n<details id=\"is-docker-gratis\" class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Is Docker gratis?<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">Docker Engine is gratis en open source. Docker Desktop is gratis voor persoonlijk gebruik, onderwijs, opensourceprojecten en bedrijven met minder dan 250 medewerkers en minder dan 10 miljoen dollar jaaromzet. Grotere organisaties hebben een betaald Pro-, Team- of Business-abonnement nodig.<\/p>\n<\/details>\n\n\n\n<details id=\"wat-is-het-verschil-tussen-een-docker-image-en-een-container\" class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Wat is het verschil tussen een Docker-image en een container?<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">Een image is het read-only sjabloon met je applicatie en de afhankelijkheden erin. Een container is een draaiend exemplaar van die image. Uit \u00e9\u00e9n image kun je veel containers starten, en elke container is wegwerpbaar.<\/p>\n<\/details>\n\n\n\n<details id=\"is-docker-hetzelfde-als-een-virtuele-machine\" class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Is Docker hetzelfde als een virtuele machine?<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">Nee. Een virtuele machine draait een volledig gastbesturingssysteem op gevirtualiseerde hardware. Een Docker-container deelt de kernel van de host en isoleert alleen de applicatie. Containers zijn lichter en starten sneller, virtuele machines bieden sterkere isolatie.<\/p>\n<\/details>\n\n\n\n<details id=\"heb-ik-docker-nog-nodig-als-ik-kubernetes-gebruik\" class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Heb ik Docker nog nodig als ik Kubernetes gebruik?<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">Kubernetes orkestreert containers, het bouwt ze niet. Je hebt nog steeds een manier nodig om images te bouwen, en Docker is daarvoor de meest gebruikte. Kubernetes verwijderde in versie 1.24 zijn Docker-specifieke shim, maar images die met Docker zijn gebouwd draaien er ongewijzigd op.<\/p>\n<\/details>\n\n\n\n<details id=\"is-docker-leren-in-2026-nog-de-moeite-waard\" class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Is Docker leren in 2026 nog de moeite waard?<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">Ja, voor iedereen die software bouwt, uitrolt of beheert. Containers zijn het invoerformaat van vrijwel elk CI-systeem, cloudplatform en AI-inferentiestack, dus die kennis blijft bruikbaar ongeacht welke tools je uiteindelijk gebruikt.<\/p>\n<\/details>\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"url\":\"https:\/\/datanorth.ai\/nl\/blog\/docker-wat-is-het-en-waarom-is-het-belangrijk\",\"@id\":\"https:\/\/datanorth.ai\/nl\/blog\/docker-wat-is-het-en-waarom-is-het-belangrijk\",\"mainEntity\":[{\"@type\":\"Question\",\"url\":\"https:\/\/datanorth.ai\/nl\/blog\/docker-wat-is-het-en-waarom-is-het-belangrijk#wat-is-docker-simpel-uitgelegd\",\"name\":\"Wat is Docker simpel uitgelegd?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"&lt;p>Docker verpakt een applicatie, samen met alles wat die nodig heeft om te draaien, in \u00e9\u00e9n eenheid: een container. Die container draait op elke machine met Docker op dezelfde manier, waardoor de verschillen tussen een laptop van een ontwikkelaar, een testserver en productie verdwijnen.&lt;\/p>\"}},{\"@type\":\"Question\",\"url\":\"https:\/\/datanorth.ai\/nl\/blog\/docker-wat-is-het-en-waarom-is-het-belangrijk#waar-gebruik-je-docker-voor\",\"name\":\"Waar gebruik je Docker voor?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"&lt;p>Docker wordt gebruikt om ontwikkelomgevingen te standaardiseren, om software te bouwen en te testen in CI\/CD-pipelines, om applicaties uit te rollen en te schalen over servers en clouds, om microservices te draaien, en om AI- en dataworkloads met exact de juiste afhankelijkheden te verpakken.&lt;\/p>\"}},{\"@type\":\"Question\",\"url\":\"https:\/\/datanorth.ai\/nl\/blog\/docker-wat-is-het-en-waarom-is-het-belangrijk#waarom-is-docker-belangrijk\",\"name\":\"Waarom is Docker belangrijk?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"&lt;p>Omdat het de omgeving onderdeel maakt van het artefact dat je uitrolt. Daarmee verdwijnen de verschillen tussen ontwikkeling en productie, daalt het aantal mislukte deployments, en draait dezelfde image ongewijzigd op elk compatibel platform.&lt;\/p>\"}},{\"@type\":\"Question\",\"url\":\"https:\/\/datanorth.ai\/nl\/blog\/docker-wat-is-het-en-waarom-is-het-belangrijk#is-docker-gratis\",\"name\":\"Is Docker gratis?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"&lt;p>Docker Engine is gratis en open source. Docker Desktop is gratis voor persoonlijk gebruik, onderwijs, opensourceprojecten en bedrijven met minder dan 250 medewerkers en minder dan 10 miljoen dollar jaaromzet. Grotere organisaties hebben een betaald Pro-, Team- of Business-abonnement nodig.&lt;\/p>\"}},{\"@type\":\"Question\",\"url\":\"https:\/\/datanorth.ai\/nl\/blog\/docker-wat-is-het-en-waarom-is-het-belangrijk#wat-is-het-verschil-tussen-een-docker-image-en-een-container\",\"name\":\"Wat is het verschil tussen een Docker-image en een container?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"&lt;p>Een image is het read-only sjabloon met je applicatie en de afhankelijkheden erin. Een container is een draaiend exemplaar van die image. Uit \u00e9\u00e9n image kun je veel containers starten, en elke container is wegwerpbaar.&lt;\/p>\"}},{\"@type\":\"Question\",\"url\":\"https:\/\/datanorth.ai\/nl\/blog\/docker-wat-is-het-en-waarom-is-het-belangrijk#is-docker-hetzelfde-als-een-virtuele-machine\",\"name\":\"Is Docker hetzelfde als een virtuele machine?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"&lt;p>Nee. Een virtuele machine draait een volledig gastbesturingssysteem op gevirtualiseerde hardware. Een Docker-container deelt de kernel van de host en isoleert alleen de applicatie. Containers zijn lichter en starten sneller, virtuele machines bieden sterkere isolatie.&lt;\/p>\"}},{\"@type\":\"Question\",\"url\":\"https:\/\/datanorth.ai\/nl\/blog\/docker-wat-is-het-en-waarom-is-het-belangrijk#heb-ik-docker-nog-nodig-als-ik-kubernetes-gebruik\",\"name\":\"Heb ik Docker nog nodig als ik Kubernetes gebruik?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"&lt;p>Kubernetes orkestreert containers, het bouwt ze niet. Je hebt nog steeds een manier nodig om images te bouwen, en Docker is daarvoor de meest gebruikte. Kubernetes verwijderde in versie 1.24 zijn Docker-specifieke shim, maar images die met Docker zijn gebouwd draaien er ongewijzigd op.&lt;\/p>\"}},{\"@type\":\"Question\",\"url\":\"https:\/\/datanorth.ai\/nl\/blog\/docker-wat-is-het-en-waarom-is-het-belangrijk#is-docker-leren-in-2026-nog-de-moeite-waard\",\"name\":\"Is Docker leren in 2026 nog de moeite waard?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"&lt;p>Ja, voor iedereen die software bouwt, uitrolt of beheert. Containers zijn het invoerformaat van vrijwel elk CI-systeem, cloudplatform en AI-inferentiestack, dus die kennis blijft bruikbaar ongeacht welke tools je uiteindelijk gebruikt.&lt;\/p>\"}}]}<\/script><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Zet de volgende stap met DataNorth AI<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Containerisatie is zelden het lastigste deel van een project. Bepalen wat er in een container hoort, hoe images worden gebouwd en gepatcht, waar de data staat en hoe deployments worden beheerd, d\u00e1\u00e1r gaat de tijd in zitten, en daar levert meekijken van buitenaf het meeste op.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bij DataNorth AI werken we daar met organisaties aan: het ontwerpen van containerarchitecturen voor AI- en softwareworkloads, het inrichten van build- en deploypipelines die elke keer hetzelfde artefact opleveren, het verhuizen van bestaande applicaties naar containers zonder ze te breken, en het inregelen van imagebeveiliging en kwetsbaarheidsscans voordat het een auditbevinding wordt. In de meeste gevallen is dit een praktisch onderdeel van een bredere digitale transformatie, geen project op zichzelf.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Overweeg je containerisatie, of gebruik je Docker al en wil je dat iemand meekijkt met je inrichting? <a href=\"https:\/\/datanorth.ai\/nl\/contact\" target=\"_blank\" rel=\"noreferrer noopener\">Neem contact op met DataNorth AI<\/a> en we nemen je situatie samen door.<\/p>\n\n\n<div class=\"brxe-container newsletter-sign-up-blog\"><div class=\"brxe-div newsletter-sign-up-blog__headings-div\"><div class=\"brxe-div newsletter-sign-up-blog__heading-icon-div\"><i id=\"brxe-xdnylt\" class=\"fa fa-envelope brxe-icon newsletter-sign-up-blog__icon\"><\/i><div class=\"brxe-heading newsletter-sign-up-blog__heading\">Schrijf je in voor onze Nieuwsbrief<\/div><\/div><div id=\"brxe-yrmmzb\" class=\"brxe-heading newsletter-sign-up-blog__subheading\">Blijf op de hoogte van onze nieuwste AI blogs, onderzoeken, diensten en nog veel meer!<\/div><\/div><div class=\"brxe-shortcode newsletter-sign-up-blog__shortcode form--light\"><div class='fluentform ff-default fluentform_wrapper_15 ffs_default_wrap'><form data-form_id=\"15\" id=\"fluentform_15\" class=\"frm-fluent-form fluent_form_15 ff-el-form-top ff_form_instance_15_1 ff-form-loading ffs_default\" data-form_instance=\"ff_form_instance_15_1\" method=\"POST\" ><fieldset  style=\"border: none!important;margin: 0!important;padding: 0!important;background-color: transparent!important;box-shadow: none!important;outline: none!important; min-inline-size: 100%;\">\n                    <legend class=\"ff_screen_reader_title\" style=\"display: block; margin: 0!important;padding: 0!important;height: 0!important;text-indent: -999999px;width: 0!important;overflow:hidden;\">Newsletter Sign Up Form (Blog) (NL)<\/legend><input type='hidden' name='__fluent_form_embded_post_id' value='3427082' \/><input type=\"hidden\" id=\"_fluentform_15_fluentformnonce\" name=\"_fluentform_15_fluentformnonce\" value=\"1dadcb6a14\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/nl\/wp-json\/wp\/v2\/posts\/3427082\" \/><div class='ff-el-group ff-el-form-hide_label'><div class=\"ff-el-input--label ff-el-is-required asterisk-right\"><label for='ff_15_email' id='label_ff_15_email' aria-label=\"Email\">Email<\/label><\/div><div class='ff-el-input--content'><input type=\"email\" name=\"email\" id=\"ff_15_email\" class=\"ff-el-form-control\" placeholder=\"E-mailadres\" data-name=\"email\"  aria-invalid=\"false\" aria-required=true><\/div><\/div><div class='ff-el-group ff-el-form-hide_label'><div class=\"ff-el-input--label ff-el-is-required asterisk-right\"><label   aria-label=\"Radio Field\">Radio Field<\/label><\/div><div class='ff-el-input--content'><div class='ff-el-form-check ff-el-form-check-'><label class='ff-el-form-check-label' for='input_radio_69155daa641ed9b9d9b193697dce0b3c'><input  type=\"radio\" name=\"input_radio\" data-name=\"input_radio\" class=\"ff-el-form-check-input ff-el-form-check-radio\" value=\"Ik wil graag marketing gerelateerde e-mails ontvangen van DataNorth\"  id='input_radio_69155daa641ed9b9d9b193697dce0b3c' aria-label='Ik wil graag marketing gerelateerde e-mails ontvangen van DataNorth' aria-invalid='false' aria-required=true> <span>Ik wil graag marketing gerelateerde e-mails ontvangen van DataNorth<\/span><\/label><\/div><\/div><\/div><div class='ff-el-group ff-text-left ff_submit_btn_wrapper'><button type=\"submit\" class=\"ff-btn ff-btn-submit ff-btn-md ff_btn_style\"  aria-label=\"Aanmelden!\">Aanmelden!<\/button><\/div><\/fieldset><\/form><div id='fluentform_15_errors' class='ff-errors-in-stack ff_form_instance_15_1 ff-form-loading_errors ff_form_instance_15_1_errors'><\/div><\/div>            <script type=\"text\/javascript\">\n                window.fluent_form_ff_form_instance_15_1 = {\"id\":\"15\",\"ajaxUrl\":\"https:\\\/\\\/datanorth.ai\\\/wp-admin\\\/admin-ajax.php\",\"settings\":{\"layout\":{\"labelPlacement\":\"top\",\"helpMessagePlacement\":\"with_label\",\"errorMessagePlacement\":\"inline\",\"cssClassName\":\"\",\"asteriskPlacement\":\"asterisk-right\"},\"restrictions\":{\"denyEmptySubmission\":{\"enabled\":false}}},\"form_instance\":\"ff_form_instance_15_1\",\"form_id_selector\":\"fluentform_15\",\"rules\":{\"email\":{\"required\":{\"value\":true,\"message\":\"This field is required\",\"global_message\":\"This field is required\",\"global\":true},\"email\":{\"value\":true,\"message\":\"This field must contain a valid email\",\"global_message\":\"This field must contain a valid email\",\"global\":true}},\"input_radio\":{\"required\":{\"value\":true,\"message\":\"This field is required\",\"global_message\":\"This field is required\",\"global\":true}}},\"debounce_time\":300,\"file_upload_settings\":[]};\n                            <\/script>\n            <\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Docker is een open platform om applicaties te ontwikkelen, te distribueren en te draaien in containers. Het verpakt je code samen met de libraries, tools en instellingen die nodig zijn om te draaien, zodat dezelfde applicatie zich identiek gedraagt op een laptop, op een buildserver en in productie. Dat is het korte antwoord op de [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":3442747,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"Docker: wat is het en waarom is het belangrijk? | DataNorth","_seopress_titles_desc":"Wat Docker is en waar je het voor gebruikt. Met installatie, je eerste Dockerfile, Compose, kosten, security en Docker versus virtuele machines.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"none","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"both","_seopress_redirections_param":"","_seopress_redirections_type":301,"_seopress_analysis_target_kw":"","_seopress_news_disabled":"","_seopress_video_disabled":"","_seopress_video":[],"_seopress_pro_schemas_manual":[],"_seopress_pro_rich_snippets_disable_all":"","_seopress_pro_rich_snippets_disable":[],"_seopress_pro_schemas":[],"footnotes":""},"categories":[70],"tags":[],"class_list":["post-3427082","post","type-post","status-publish","format-standard","has-post-thumbnail","category-ai-tools-frameworks-nl"],"meta_box":{"faq_item":[]},"_links":{"self":[{"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/posts\/3427082","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/comments?post=3427082"}],"version-history":[{"count":0,"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/posts\/3427082\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/media\/3442747"}],"wp:attachment":[{"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/media?parent=3427082"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/categories?post=3427082"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/tags?post=3427082"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}