Aan de slag met Docker op een VPS
Geschreven door het ApexVPS-team • Laatst bijgewerkt: juli 2026 • 8 min leestijd
Het uitvoeren van Docker op een VPS is de snelste manier om van een lege Ubuntu-server naar een draaiende webapp, database of self-hosted service te gaan in minuten. In plaats van te worstelen met systeempakketten en conflicterende dependencies, haalt u een kant-en-klaar image op en start u een container. Deze beginnershandleiding leidt u door het installeren van Docker en Docker Compose op Ubuntu of Debian, de kernconcepten die u nodig heeft, het starten van uw eerste container, het bewaren van gegevens met volumes, en een paar beveiligingsbasisprincipes zodat u niet voor verrassingen komt te staan.
Waarom Docker op een VPS?
Een virtuele privéserver geeft u volledige root-toegang en toegewezen resources, precies wat containers nodig hebben. Met Docker geïnstalleerd kunt u veel geïsoleerde services naast elkaar draaien zonder dat ze elkaar dwarszitten. Elke container wordt geleverd met zijn eigen bibliotheken, dus een Node-app, een Postgres-database en een reverse proxy kunnen netjes op één machine samenleven. Als uw doel is om apps zelf te hosten op een VPS — denk aan een persoonlijke cloud, een wiki of een mediaserver — houdt Docker elke service netjes en reproduceerbaar.
Containers zijn ook draagbaar. Hetzelfde Compose-bestand dat op uw laptop draait, draait ook op de server, waardoor het klassieke 'het werkt op mijn machine'-probleem vervalt. Het herbouwen van een service na een fout kost seconden in plaats van een middag lang pakketten opnieuw installeren.
Kernconcepten in eenvoudig Nederlands
Voordat u de commandoregel gebruikt, is het handig om vier bouwstenen te kennen:
- Image — een alleen-lezen sjabloon dat een applicatie en alles wat het nodig heeft om te draaien bevat. U downloadt images van een registry zoals Docker Hub. Zie het als een momentopname of een klasse.
- Container — een draaiend exemplaar van een image. U kunt containers vrij starten, stoppen en verwijderen. Van hetzelfde image kunnen veel containers draaien, net als objecten die uit een klasse worden gemaakt.
- Volume — permanente opslag die buiten de beschrijfbare laag van een container leeft. Volumes zijn hoe u databases en geüploade bestanden veilig houdt wanneer een container wordt vervangen.
- Network — een virtueel netwerk waarmee containers elkaar bij naam kunnen bereiken. Docker maakt voor elk Compose-project automatisch een netwerk aan, zodat uw app zijn database kan bereiken op een gebruiksvriendelijke hostnaam.
Stap 1: Installeer Docker op Ubuntu of Debian
De eenvoudigste, officieel ondersteunde manier om Docker Engine te installeren is het handigheidsscript. Maak via SSH verbinding met uw server en voer uit:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Dit installeert Docker Engine samen met de Compose-plug-in. Wanneer het klaar is, bevestigt u de versies:
docker --version
docker compose version
Standaard vereist Docker sudo. Om het als uw normale gebruiker te draaien, voegt u uzelf toe aan de docker-groep en logt u daarna uit en weer in, zodat de wijziging van kracht wordt:
sudo usermod -aG docker $USER
Docker start ook op bij het opstarten op de meeste systemen. Als u het ooit handmatig wilt inschakelen:
sudo systemctl enable --now docker
Heeft u liever de pakketrepository-methode of wilt u de volledige details voor uw specifieke distributie? De officiële Docker-installatiedocumentatie behandelt alle opties. Het bovenstaande handigheidsscript is ideaal voor een nieuwe VPS.
Stap 2: Draai uw eerste container
Test de installatie met het klassieke hello-world-image:
docker run hello-world
Docker pulled het image, draait het één keer en drukt een bevestigingsbericht af. Laten we nu iets draaien dat u echt kunt zien. Dit commando start een Nginx-webserver op de achtergrond en koppelt poort 8080 op de host aan poort 80 in de container:
docker run -d -p 8080:80 --name web nginx
Open http://your-server-ip:8080 in een browser en u zou de Nginx-welkomstpagina moeten zien. Een paar vlaggen die het weten waard zijn:
-ddraait de container losgekoppeld, op de achtergrond.-p 8080:80publiceert een poort alshost:container.--name webgeeft de container een gedenkwaardige naam.
Controleer wat er draait, stop vervolgens en verwijder de container als u klaar bent:
docker ps
docker stop web
docker rm web
Een handvol commando's dekt het meeste dagelijkse werk. docker images geeft een lijst van de images die u heeft gepulled, docker logs web toont de uitvoer van een container voor probleemoplossing, en docker exec -it web bash opent een shell in een draaiende container, zodat u kunt rondkijken. Het leren van deze vijf of zes commando's is voldoende om een kleine server met vertrouwen te beheren; de rest kunt u opzoeken wanneer u het nodig heeft.
Stap 3: Gebruik Docker Compose voor multi-containerapps
Vaak lange docker run commando's typen is snel vervelend. Met Docker Compose beschrijf je je hele stack in één bestand en start je alles met één commando. Maak een bestand met de naam compose.yaml:
services:
web:
image: nginx:latest
ports:
- "8080:80"
volumes:
- web-data:/usr/share/nginx/html
restart: unless-stopped
volumes:
web-data:
Vanuit dezelfde map start je alles op de achtergrond:
docker compose up -d
Compose maakt het netwerk, de named volume en de container voor je aan. Handige comapanons:
docker compose ps
docker compose logs -f
docker compose down
Het restart: unless-stopped-beleid zorgt ervoor dat de service na een herstart of crash automatisch terugkomt — handig voor een server die je niet 24/7 in de gaten houdt.
Stap 4: Bewaar data met volumes
Dit is het onderdeel waar beginners het vaakst de fout ingaan. Alles wat in het eigen bestandssysteem van een container wordt geschreven, verdwijnt wanneer die container wordt verwijderd of opnieuw wordt aangemaakt. Om data te bewaren, plaats je het in een volume. Er zijn twee veelgebruikte manieren:
- Named volumes — beheerd door Docker, ideaal voor databases. Het Compose-voorbeeld hierboven gebruikt er een genaamd
web-data. - Bind mounts — wijs een map op de host direct toe aan de container, bijvoorbeeld
./config:/etc/app. Geweldig voor configuratiebestanden die je handmatig wilt bewerken.
Bekijk en beheer volumes vanaf de commandoregel:
docker volume ls
docker volume inspect web-data
Zolang je belangrijke paden naar een volume wijzen, kun je de hele dag containers verwijderen en opnieuw opbouwen zonder één byte te verliezen. Maak een back-up van de volume-map als onderdeel van je serverback-ups.
Stap 5: Werk images en containers bij
Container-images ontvangen net als elke software beveiligings- en functie-updates. Het bijwerken van een Compose-stack is een routine in twee stappen: haal de nieuwere images op en maak de containers opnieuw aan.
docker compose pull
docker compose up -d
Omdat je data in volumes staat, is het opnieuw aanmaken veilig. Na verloop van tijd stapelen ongebruikte images zich op en nemen ze schijfruimte in. Ruim ze af en toe op:
docker image prune
Plaats specifieke versietags (bijvoorbeeld postgres:16 in plaats van latest) wanneer je voorspelbare, herhaalbare updates wilt in plaats van verrassingen.
Basis Docker-beveiliging voor beginners
Containers zijn handig, maar ze zijn geen magische beveiligingsgrens. Een paar gewoontes houden je uit de problemen:
- Draai alleen images die je vertrouwt. Geef de voorkeur aan officiële images of bekende uitgevers. Draai geen willekeurige image als root alleen omdat een tutorial dat zegt — een niet-vertrouwde image voert code uit op je server.
- Verwijder root binnen containers. Veel officiële images ondersteunen een niet-root gebruiker, of je kunt er een instellen met de
USER-instructie in een Dockerfile. Werken als een beperkte gebruiker verkleint de schade als een app wordt gecompromitteerd. - Publiceer alleen de poorten die je nodig hebt. Elke
-p-vlag opent een deur naar internet. Houd databases op het interne Docker-netwerk en stel alleen je webfrontend bloot. - Houd de host gepatcht. Docker-beveiliging begint met een beveiligde server. Voer regelmatig
sudo apt update && sudo apt upgradeuit en beveilig SSH.
Voordat je iets publiekelijk blootstelt, doorloop je onze uitgebreide checklist over het beveiligen van je VPS in de eerste 10 minuten — het behandelt SSH-sleutels, een firewall en automatische updates die perfect passen bij een Docker-host.
Een VPS kiezen die klaar is voor Docker
Docker draait op bescheiden hardware, maar dedicated resources maken echt verschil zodra je meerdere containers opstapelt. Gedeelde, oververkochte hosting betekent dat een lawaaierige buurman je database op het slechtste moment kan verstikken. ApexVPS geeft je echt dedicated vCPU, NVMe SSD-opslag en volledige root-toegang, zodat je containers de prestaties krijgen waarvoor je betaalt. Elk plan ondersteunt Ubuntu, Debian en andere populaire distributies, en je kunt bij aanmelding je SSH-sleutel invoeren.
De checkout is uitsluitend via crypto via OxaPay en accepteert Bitcoin, Ethereum, USDT en 30+ cryptocurrencies — geen creditcard, geen bankrekening en geen KYC. Je geeft een e-mailadres op om toegangsgegevens te ontvangen, en dat is het. Vergelijk de specificaties en regio's op de prijspagina van ApexVPS om een plan te vinden dat past bij je containerworkload.
Veelgestelde vragen
Heb ik veel RAM nodig om Docker op een VPS te draaien?
Nee. Docker zelf is lichtgewicht en voegt weinig overhead toe. Eén of twee containers draaien comfortabel op 2 GB RAM, terwijl 4 GB of meer ruimte biedt voor databases en meerdere services tegelijk.
Is het docker-compose of docker compose?
Op een moderne installatie wordt Compose als plugin meegeleverd, dus de opdracht is docker compose met een spatie. De oudere standalone docker-compose binary werkt nog steeds, maar wordt uitgefaseerd — gebruik de pluginversie bij een nieuwe installatie.
Waar wordt mijn data opgeslagen als een container wordt verwijderd?
Alles wat in de container wordt geschreven, gaat verloren bij verwijdering. Sla belangrijke gegevens op in een named volume of bind mount, zodat ze containerrecreatie overleven. Zo blijven databases en uploads veilig.
Kan ik met cryptocurrency betalen voor een Docker-ready VPS?
Ja. De checkout van ApexVPS is uitsluitend via crypto via OxaPay en accepteert Bitcoin, Ethereum, USDT en 30+ munten. Aanmelden vereist alleen een e-mailadres, zonder creditcard en zonder identiteitsverificatie.