Docker Hello World: Aan de slag en controleren of alles werkt
Het draaien van docker run hello-world is de snelste manier om te bevestigen dat je Docker-installatie correct werkt, te begrijpen wat er gebeurt wanneer je een container uitvoert en veelvoorkomende installatieproblemen op te lossen voordat je echte applicaties bouwt.
Je hebt de installer gedraaid, door de setup geklikt en Docker zegt dat het klaar is. Maar hoe weet je dat zeker? Elke Docker-gids online gaat ervan uit dat je je setup al geverifieerd hebt, maar niemand vertelt je hoe je die verificatiestap doet.
Het goede nieuws is dat Docker een ingebouwde testimage levert, genaamd hello-world, die bevestigt dat alles werkt. Je hoeft maar één commando uit te voeren om direct feedback te krijgen of Docker goed is geconfigureerd.
In dit artikel laat ik je zien wat de hello-world-image doet, hoe je deze uitvoert, wat de output betekent en hoe je veelvoorkomende problemen oplost wanneer er iets misgaat.
Na het uitvoeren van het Hello World-voorbeeld ben je klaar om de basis van Docker te leren. Onze Introduction to Docker-cursus helpt je in één middag op weg.
Wat is Docker Hello World?
De hello-world-image is Docker’s officiële diagnostische tool om je installatie te testen.
Docker onderhoudt deze image als de kleinst mogelijke container die kan bewijzen dat Docker werkt. Het is een piepklein uitvoerbaar programma dat een bevestigingsbericht print en afsluit. Dat is alles.
Docker levert hello-world omdat nieuwe gebruikers snel drie dingen willen verifiëren:
Docker is correct geïnstalleerd op je systeem
Je hebt de juiste permissies om Docker-commando’s uit te voeren
De Docker-daemon is bereikbaar en reageert op verzoeken
Zie het als het uitvoeren van python --version na het installeren van Python. Je bevestigt alleen dat de tool klaar is voor gebruik - je bouwt nog niets.
Docker Hello World uitvoeren
Het uitvoeren van de hello-world-image kost één commando.
Wanneer je dit commando uitvoert, doet Docker twee dingen:
Controleert of de image lokaal bestaat. Docker kijkt in je lokale imagecache om te zien of je hello-world al hebt gedownload. Als de image aanwezig is, slaat Docker de download over en gaat direct verder met uitvoeren.
Als de image niet lokaal wordt gevonden, haalt Docker die op van Docker Hub. Docker Hub is het standaardregister waar Docker officiële images opslaat. De hello-world-image is piepklein - slechts enkele kilobytes, dus de download is snel klaar.
Nadat Docker de image heeft, maakt het een container aan op basis van die image en voert die uit. De container voert het ingebouwde programma uit, print het bevestigingsbericht en sluit af.
Wat gebeurt er wanneer je Docker Hello World draait?
Dit is de stap-voor-stap flow wanneer je docker run hello-world draait.
Eerst controleert Docker of de image lokaal bestaat. Het doorzoekt je lokale imagecache om te zien of je hello-world al hebt gedownload. Als de image aanwezig is, gaat Docker door naar de volgende stap. Zo niet, dan maakt Docker verbinding met Docker Hub en haalt de image op.
Vervolgens maakt Docker een container aan op basis van de image. De image is als een sjabloon - het bevat het programma en alles wat nodig is om het uit te voeren. De container is de daadwerkelijke draaiende instantie van dat sjabloon.
De container draait zijn programma, dat een bevestigingsbericht naar je terminal print. Dit bericht legt uit wat Docker zojuist deed en bevestigt dat alles werkt.
Tot slot stopt de container. Het hello-world-programma is niet bedoeld om te blijven draaien. Het print het bericht en stopt meteen. De container bestaat nog op je systeem, maar staat stil.
Dit hele proces gebeurt automatisch wanneer je het commando uitvoert; je hoeft geen van deze stappen handmatig te beheren.
De output van Docker Hello World begrijpen
Wanneer hello-world succesvol draait, zie je een meerregelig bericht dat uitlegt wat er zojuist is gebeurd.
Output van docker run hello-world
De output begint met een bevestiging dat Docker de image niet lokaal kon vinden en deze daarom van Docker Hub heeft opgehaald. Je ziet iets als "Unable to find image 'hello-world:latest' locally" gevolgd door voortgangsbalken van de download.
Daarna volgt het hoofdbericht dat bevestigt dat Docker correct werkt. Dit bericht loopt door de exacte stappen die Docker heeft genomen. Het legt uit dat de Docker-daemon de image heeft opgehaald, er een container van heeft gemaakt, het uitvoerbare bestand erin heeft gedraaid en de output naar je terminal heeft gestuurd.
Het bericht bevat ook de volgende stappen die je kunt proberen. Het stelt voor om een meer interactieve container te draaien, zoals Ubuntu, die blijft draaien en je opdrachten laat uitvoeren binnenin. Dat helpt je het verschil te begrijpen tussen een eenmalige testcontainer en echte containers die je voor development gebruikt.
Tot slot zie je de container stoppen. Het hello-world-programma is ontworpen om zijn bericht te printen en meteen te stoppen - het is geen langlopende service of applicatie. De taak van de container is klaar zodra bevestigd is dat Docker werkt.
Als je deze volledige output zonder fouten ziet, werkt je Docker-installatie correct en ben je klaar om echte containers te draaien.
Veelvoorkomende problemen bij het draaien van Docker Hello World
Zelfs een simpele test als hello-world kan falen als Docker niet goed is ingesteld. Dit zijn de meest voorkomende problemen en hoe je ze oplost.
Docker-commando niet gevonden
Als je "docker: command not found" of "docker is not recognized" ziet, is Docker niet geïnstalleerd of staat het niet in de PATH van je systeem.
Als dit niets retourneert, moet je Docker installeren. Controleer op macOS en Windows of Docker Desktop is geïnstalleerd en draait.
Permission denied-fouten
Je kunt "permission denied while trying to connect to the Docker daemon socket" te zien krijgen.
Dit gebeurt wanneer je gebruikersaccount geen toestemming heeft om Docker te benaderen. Op Linux moet je Docker met sudo draaien of je gebruiker toevoegen aan de docker-groep:
Open op macOS en Windows Docker Desktop. De daemon start automatisch wanneer de applicatie draait. Je ziet een Docker-pictogram in je systeemvak zodra hij klaar is.
Netwerkproblemen bij het ophalen van de image
Soms kan Docker de hello-world-image niet van Docker Hub downloaden. Je ziet fouten over mislukte pulls of time-outs bij de verbinding.
Controleer eerst je internetverbinding. Als je achter een bedrijfsfirewall of -proxy zit, moet je Docker daar mogelijk voor configureren. Op Linux doe je dit in /etc/systemd/system/docker.service.d/http-proxy.conf. In Docker Desktop kun je de proxy instellen bij Settings.
Als dit niet werkt, wijst de foutmelding je meestal de juiste richting - lees die goed.
Wat te doen na Docker Hello World
Nu je hebt bevestigd dat Docker werkt, kun je hiernaartoe.
Draai een echte container met een interactieve shell. Probeer een Ubuntu-container te pullen en te draaien:
De -it-vlaggen geven je een interactieve terminal in de container. Je kunt commando’s uitvoeren, packages installeren en verkennen hoe containers werken. Typ exit om de container te verlaten.
Verken beschikbare images op Docker Hub. Je vindt er officiële images voor databases zoals PostgreSQL en MySQL, programmeertalen zoals Python en Node.js, en tools zoals Redis en Nginx. Blader op hub.docker.com of zoek rechtstreeks via de command line:
Bouw je eigen image met een Dockerfile. Begin simpel: maak een bestand genaamd Dockerfile dat je applicatiecode in een container kopieert en beschrijft hoe je die draait. Zelfs een basis-Dockerfile met een paar regels leert je hoe images uit instructies worden opgebouwd.
Conclusie
Het commando docker run hello-world doet één ding heel goed: het bewijst dat je Docker-installatie werkt.
Het is geen echte applicatie. Het leert je niet hoe je containers bouwt of productieservices uitrolt. Maar het geeft je gemoedsrust, omdat je weet dat er niets mis is met je Docker-installatie.
Als hello-world zonder fouten draaide en zijn bevestigingsbericht printte, is je Docker-omgeving goed ingesteld en ben je klaar om met echte containers te werken.
Wat is de volgende stap? Volg onze Introduction to Docker-cursus. Die geeft je de basiskennis die je nodig hebt om in een team te werken. Bouw daarna iets nuttigs met ons artikel 10 Docker Project Ideas.
Senior Data Scientist, gevestigd in Kroatië. Top Tech-schrijver met meer dan 700 gepubliceerde artikelen en meer dan 10 miljoen weergaven. Auteur van het boek Machine Learning Automation with TPOT.
FAQs
Hoe kan ik de grootte van Docker-images optimaliseren?⌄
Begin met kleinere base-images zoals Alpine Linux in plaats van volledige Ubuntu- of Debian-images. Gebruik multi-stage builds om build-afhankelijkheden te scheiden van runtime-afhankelijkheden - zo blijft je uiteindelijke image slank doordat je compilers en buildtools uitsluit. Combineer ook RUN-commando’s in je Dockerfile om het aantal lagen te verminderen, en gebruik .dockerignore om te voorkomen dat onnodige bestanden in de image worden gekopieerd.
Wat zijn best practices voor het gebruik van Docker in productie?⌄
Draai containers nooit als root - maak een niet-rootgebruiker in je Dockerfile en schakel daarnaar over. Gebruik specifieke imagetags in plaats van latest om consistente deployments in verschillende omgevingen te garanderen. Stel resource-limieten (CPU en geheugen) in voor je containers om te voorkomen dat één container alle hostresources opslokt. Healthchecks zijn ook belangrijk - definieer ze in je Dockerfile zodat orkestratietools ongezonde containers kunnen detecteren en herstarten.
Hoe integreer ik Docker met CI/CD-pipelines?⌄
De meeste CI/CD-platforms zoals GitHub Actions, GitLab CI en Jenkins hebben ingebouwde Docker-ondersteuning. Meestal bouw je je Docker-image als onderdeel van de pipeline, tag je die met de commit-SHA of versienummer, push je ’m naar een container registry zoals Docker Hub of AWS ECR, en deploy je ’m vervolgens naar je omgeving. De sleutel is het automatiseren van de build-tag-push-deploy workflow zodat elke codewijziging een geteste, versiebeheerste containerimage oplevert.
Wat zijn de voordelen van het gebruik van multi-stage builds in Docker?⌄
Multi-stage builds laten je één set tools gebruiken om je applicatie te bouwen en een andere, kleinere set om deze te draaien. Je kunt bijvoorbeeld een Go-applicatie compileren in een stage met de Go-compiler en vervolgens alleen het gecompileerde binaire bestand kopiëren naar een minimale Alpine-image voor de laatste stage. Dit verkleint de image drastisch - een gecompileerde applicatie heeft misschien 1GB aan buildtools nodig maar slechts 20MB om te draaien. Kleinere images betekenen snellere deployments en lagere opslagkosten.
Hoe zorg ik ervoor dat mijn Docker-containers veilig draaien?⌄
Scan je images op kwetsbaarheden met tools zoals Docker Scout of Trivy voordat je ze deployt. Sla geen secrets op in je Dockerfile of environment variabelen - gebruik Docker secrets of externe secretmanagementtools. Houd je base-images up-to-date voor beveiligingspatches en beperk container capabilities met de --cap-drop-vlag om onnodige Linux-capabilities te verwijderen. Gebruik waar mogelijk read-only bestandssystemen en stel de Docker-socket nooit bloot binnen containers tenzij het absoluut noodzakelijk is.
Je hebt de installer gedraaid, door de setup geklikt en Docker zegt dat het klaar is. Maar hoe weet je dat zeker? Elke Docker-gids online gaat ervan uit dat je je setup al geverifieerd hebt, maar niemand vertelt je hoe je die verificatiestap doet.
Het goede nieuws is dat Docker een ingebouwde testimage levert, genaamd
hello-world, die bevestigt dat alles werkt. Je hoeft maar één commando uit te voeren om direct feedback te krijgen of Docker goed is geconfigureerd.In dit artikel laat ik je zien wat de
hello-world-image doet, hoe je deze uitvoert, wat de output betekent en hoe je veelvoorkomende problemen oplost wanneer er iets misgaat.Na het uitvoeren van het Hello World-voorbeeld ben je klaar om de basis van Docker te leren. Onze Introduction to Docker-cursus helpt je in één middag op weg.
Wat is Docker Hello World?
De
hello-world-image is Docker’s officiële diagnostische tool om je installatie te testen.Docker onderhoudt deze image als de kleinst mogelijke container die kan bewijzen dat Docker werkt. Het is een piepklein uitvoerbaar programma dat een bevestigingsbericht print en afsluit. Dat is alles.
Docker levert
hello-worldomdat nieuwe gebruikers snel drie dingen willen verifiëren:Zie het als het uitvoeren van
python --versionna het installeren van Python. Je bevestigt alleen dat de tool klaar is voor gebruik - je bouwt nog niets.Docker Hello World uitvoeren
Het uitvoeren van de
hello-world-image kost één commando.Wanneer je dit commando uitvoert, doet Docker twee dingen:
Controleert of de image lokaal bestaat. Docker kijkt in je lokale imagecache om te zien of je
hello-worldal hebt gedownload. Als de image aanwezig is, slaat Docker de download over en gaat direct verder met uitvoeren.Als de image niet lokaal wordt gevonden, haalt Docker die op van Docker Hub. Docker Hub is het standaardregister waar Docker officiële images opslaat. De
hello-world-image is piepklein - slechts enkele kilobytes, dus de download is snel klaar.Nadat Docker de image heeft, maakt het een container aan op basis van die image en voert die uit. De container voert het ingebouwde programma uit, print het bevestigingsbericht en sluit af.
Wat gebeurt er wanneer je Docker Hello World draait?
Dit is de stap-voor-stap flow wanneer je
docker run hello-worlddraait.Eerst controleert Docker of de image lokaal bestaat. Het doorzoekt je lokale imagecache om te zien of je
hello-worldal hebt gedownload. Als de image aanwezig is, gaat Docker door naar de volgende stap. Zo niet, dan maakt Docker verbinding met Docker Hub en haalt de image op.Vervolgens maakt Docker een container aan op basis van de image. De image is als een sjabloon - het bevat het programma en alles wat nodig is om het uit te voeren. De container is de daadwerkelijke draaiende instantie van dat sjabloon.
De container draait zijn programma, dat een bevestigingsbericht naar je terminal print. Dit bericht legt uit wat Docker zojuist deed en bevestigt dat alles werkt.
Tot slot stopt de container. Het
hello-world-programma is niet bedoeld om te blijven draaien. Het print het bericht en stopt meteen. De container bestaat nog op je systeem, maar staat stil.Dit hele proces gebeurt automatisch wanneer je het commando uitvoert; je hoeft geen van deze stappen handmatig te beheren.
De output van Docker Hello World begrijpen
Wanneer
hello-worldsuccesvol draait, zie je een meerregelig bericht dat uitlegt wat er zojuist is gebeurd.Output van docker run hello-world
De output begint met een bevestiging dat Docker de image niet lokaal kon vinden en deze daarom van Docker Hub heeft opgehaald. Je ziet iets als "Unable to find image 'hello-world:latest' locally" gevolgd door voortgangsbalken van de download.
Daarna volgt het hoofdbericht dat bevestigt dat Docker correct werkt. Dit bericht loopt door de exacte stappen die Docker heeft genomen. Het legt uit dat de Docker-daemon de image heeft opgehaald, er een container van heeft gemaakt, het uitvoerbare bestand erin heeft gedraaid en de output naar je terminal heeft gestuurd.
Het bericht bevat ook de volgende stappen die je kunt proberen. Het stelt voor om een meer interactieve container te draaien, zoals Ubuntu, die blijft draaien en je opdrachten laat uitvoeren binnenin. Dat helpt je het verschil te begrijpen tussen een eenmalige testcontainer en echte containers die je voor development gebruikt.
Tot slot zie je de container stoppen. Het
hello-world-programma is ontworpen om zijn bericht te printen en meteen te stoppen - het is geen langlopende service of applicatie. De taak van de container is klaar zodra bevestigd is dat Docker werkt.Als je deze volledige output zonder fouten ziet, werkt je Docker-installatie correct en ben je klaar om echte containers te draaien.
Veelvoorkomende problemen bij het draaien van Docker Hello World
Zelfs een simpele test als
hello-worldkan falen als Docker niet goed is ingesteld. Dit zijn de meest voorkomende problemen en hoe je ze oplost.Docker-commando niet gevonden
Als je "docker: command not found" of "docker is not recognized" ziet, is Docker niet geïnstalleerd of staat het niet in de PATH van je systeem.
Controleer op Linux of Docker is geïnstalleerd:
Locatie van Docker
Als dit niets retourneert, moet je Docker installeren. Controleer op macOS en Windows of Docker Desktop is geïnstalleerd en draait.
Permission denied-fouten
Je kunt "permission denied while trying to connect to the Docker daemon socket" te zien krijgen.
Dit gebeurt wanneer je gebruikersaccount geen toestemming heeft om Docker te benaderen. Op Linux moet je Docker met sudo draaien of je gebruiker toevoegen aan de
docker-groep:Log uit en weer in om de wijziging door te voeren. Op macOS en Windows met Docker Desktop is dit geen probleem.
Docker-daemon draait niet
Als je "Cannot connect to the Docker daemon" krijgt, draait de Docker-service niet.
Start op Linux de Docker-service:
Open op macOS en Windows Docker Desktop. De daemon start automatisch wanneer de applicatie draait. Je ziet een Docker-pictogram in je systeemvak zodra hij klaar is.
Netwerkproblemen bij het ophalen van de image
Soms kan Docker de
hello-world-image niet van Docker Hub downloaden. Je ziet fouten over mislukte pulls of time-outs bij de verbinding.Controleer eerst je internetverbinding. Als je achter een bedrijfsfirewall of -proxy zit, moet je Docker daar mogelijk voor configureren. Op Linux doe je dit in
/etc/systemd/system/docker.service.d/http-proxy.conf. In Docker Desktop kun je de proxy instellen bij Settings.Als dit niet werkt, wijst de foutmelding je meestal de juiste richting - lees die goed.
Wat te doen na Docker Hello World
Nu je hebt bevestigd dat Docker werkt, kun je hiernaartoe.
Draai een echte container met een interactieve shell. Probeer een Ubuntu-container te pullen en te draaien:
Ubuntu-bash
De
-it-vlaggen geven je een interactieve terminal in de container. Je kunt commando’s uitvoeren, packages installeren en verkennen hoe containers werken. Typexitom de container te verlaten.Verken beschikbare images op Docker Hub. Je vindt er officiële images voor databases zoals PostgreSQL en MySQL, programmeertalen zoals Python en Node.js, en tools zoals Redis en Nginx. Blader op hub.docker.com of zoek rechtstreeks via de command line:
Beschikbare Python-images.
Bouw je eigen image met een Dockerfile. Begin simpel: maak een bestand genaamd
Dockerfiledat je applicatiecode in een container kopieert en beschrijft hoe je die draait. Zelfs een basis-Dockerfile met een paar regels leert je hoe images uit instructies worden opgebouwd.Conclusie
Het commando
docker run hello-worlddoet één ding heel goed: het bewijst dat je Docker-installatie werkt.Het is geen echte applicatie. Het leert je niet hoe je containers bouwt of productieservices uitrolt. Maar het geeft je gemoedsrust, omdat je weet dat er niets mis is met je Docker-installatie.
Als
hello-worldzonder fouten draaide en zijn bevestigingsbericht printte, is je Docker-omgeving goed ingesteld en ben je klaar om met echte containers te werken.Wat is de volgende stap? Volg onze Introduction to Docker-cursus. Die geeft je de basiskennis die je nodig hebt om in een team te werken. Bouw daarna iets nuttigs met ons artikel 10 Docker Project Ideas.