Hoe Docker en Portainer op een VPS te draaien (2026 Gids)

Gepubliceerd: door Dallas Kashuba
Hoe Docker en Portainer op een VPS te draaien (2026 Gids) thumbnail

Heb je ooit gehoord van Dockerception?

Nou, houd je vast aan je hoed. We gaan het konijnenhol in.

Portainer, de web UI die je gaat installeren bovenop Docker, is zelf een Docker-container.

Het is een tool die draait op hetgeen dat het beheert. Je start het met één docker run regel, en het eerste wat het doet is terugreiken door een klein gat in de host (een socketbestand) en de Docker daemon vragen om het elke andere container te tonen, inclusief zichzelf. Vanuit dat browsertabblad kun je Portainer bijwerken. Portainer herstarten. En al je andere Docker containers beheren.

De UI waar je naar kijkt is één klik verwijderd van het verwijderen van de UI waar je naar kijkt.

Op een VPS waar je al betaalt voor de box en al vertrouwd bent met SSH, past Portainer naadloos bovenop Docker zonder dat er iets aan de onderliggende werking verandert.

Dat is de waarde.

Een 4 GB box draait Docker, Portainer en een kleine vloot van zelf-gehoste apps zonder moeite. En het kost ongeveer evenveel als een paar streamingabonnementen per maand. Genoeg om de huisautomatisering, de familiefotowinkel, de AI-assistent en de nieuwsbrief die je dreigde te starten — op één server die je echt bezit — te draaien.

Hier is hoe je het kunt starten, beveiligen en er waarde uit kunt halen.

Wat Is Portainer Precies?

Portainer-architectuur die Docker socket toont die portainer.io verbindt binnen VPN naar browser voor beheer van Docker op afstand.

Portainer is een webinterface die als een Docker-container draait en je andere containers beheert via de Docker-socket.

Het is in wezen een browsergebaseerde frontend voor dezelfde Docker-commando’s die je anders met de hand zou typen, plus stackbeheer, op rollen gebaseerde toegang (als je een upgrade uitvoert) en een dashboardweergave van CPU en geheugen.

De socketverbinding is wat het werk doet. De binding ziet eruit als -v /var/run/docker.sock:/var/run/docker.sock in het installatiecommando, en die ene regel doet al het zware werk. Zonder dit is Portainer een UI voor een lege Docker-host. Met dit is Portainer de afstandsbediening van de Docker-host.

Eén ding om in gedachten te houden: elk proces dat /var/run/docker.sock kan bereiken, kan effectief alles als root op de host draaien. Dat is een functie wanneer het Portainer is die het vraagt en een probleem wanneer het een container is die je vorige week hebt opgezet en vergeten bent dat je sockettoegang had gegeven.

Behandel het binden van de socket als een bevoorrechte capaciteit en controleer elke andere container die er een wil.

Ontvang inhoud rechtstreeks in uw inbox

Meld u nu aan om alle laatste updates rechtstreeks in uw inbox te ontvangen.

Heb Je Portainer Nodig Als Je Al Docker Hebt?

Nee. Docker werkt prima vanuit de terminal, en veel mensen draaien jarenlang een paar containers zonder ooit een UI erbovenop te installeren.

Je wilt Portainer als:

  • Je jongleert met meer dan twee of drie Docker containers in verschillende apps.
  • Je klikt liever op “herstarten” dan een Compose-commando opnieuw te typen om 23:00 uur.
  • Je deelt toegang met iemand die niet leeft in een terminal.
  • Je wilt stack-updates vanuit een Git repo implementeren zonder een implementatiescript te schrijven.

Sla Portainer over als:

  • Je draait één of twee containers die zelden veranderen. 
  • Je bent al vertrouwd met Docker Compose en je bent blij om daar te blijven.

Docker zelf is mainstream genoeg dat dit geen randbeslissing is. Volgens de Ontwikkelaarsenquête van Stack Overflow uit 2025 is Docker het meest gebruikte containerplatform onder ontwikkelaars met meer dan 70% gebruik — de grootste jaarlijkse sprong van enige technologie die de enquête volgt. Het Portainer-project heeft ongeveer 37.000 sterren op GitHub.

Er bestaan andere opties. Coolify gaat verder richting PaaS-stijl abstracties, en Dokploy bevindt zich in een vergelijkbaar gebied met een lichtere voetafdruk — maar Portainer is degene waar de meeste installatiegidsen als eerste naar grijpen.

Als je in tmux woont en één app draait, sluit dan deze tab. Je bent in orde. Als je vier zelfgehoste apps draait en je deze maand twee keer hebt gegoogled, “Wat zijn Docker logs weer?” blijf dan lezen.

Hoe Groot Moet Een VPS Zijn Om Docker En Portainer Te Draaien?

Een 4 GB VPS kan Portainer plus een kleine verzameling containers voor zijprojecten gemakkelijk aan.

Portainer raadt een host aan met ten minste 2 GB RAM en 1 CPU-core, hoewel het Portainer Server-proces zelf rond de 100 MB inactief is. De Docker-daemon voegt een paar honderd MB overhead toe voordat een van je apps start.

Hier is hoe dat overeenkomt met echte werklasten:

Tabel die de VPS-werklastvereisten vergelijkt: een enkele app heeft 4 GB nodig, Nextcloud heeft 8 GB nodig, GitLab met CI/CD heeft 16 GB RAM nodig.

Bij DreamHost biedt onze Self-Managed VPS vier RAM-gebaseerde Stack-niveaus (Stack 4, 8, 16, en 32), waarbij het instapmodel Stack 4 precies op maat is voor dit soort kleine Docker host. (En ja, NVMe-opslag en volledige root-toegang zijn inbegrepen.)

Als je twijfelt of self-hosting de moeite waard is, dan is Stack 4 de grootte waarbij de rekenkundige voordelen vanaf dag één in je voordeel werken.

Een Opmerking Over Opslag: De opslagvoetafdruk van Portainer is minimaal — het slaat alleen zijn eigen configuratiedatabase op. De eigen documentatie van Portainer beveelt SSD-niveau prestaties aan (≈3,5 MB/s aanhoudend, meer dan 30.000 IOPS, <10ms schrijflatentie), wat elke moderne NVMe-schijf gemakkelijk aankan. Schijf wordt pas echt een zorg als je database-intensieve containers zoals Postgres of MySQL naast het draait. Als je VPS in 2026 op een draaiende schijf staat, zal de Portainer UI traag aanvoelen lang voordat RAM dat doet. Ons advies: upgrade de schijf voor het plan.

Hoe Installeer Je Docker en Portainer Op Een VPS?

Portainer.io aanvankelijk instellingsformulier voor het aanmaken van een beheerdersaccount met gebruikersnaam, wachtwoord vereist minimaal 12 karakters, en optionele statistiekenverzameling.

Het duurt zes stappen en ongeveer 30 minuten, waarvan het grootste deel wachten is op het ophalen van afbeeldingen.

1. Kies Een Linux-Distributie

Ubuntu 22.04 of 24.04 LTS is het pad van de minste weerstand. Ubuntu is standaard wat DreamHost’s Self-Managed VPS draait, en de meeste Docker installatiesnippets en community hulpdraadjes gaan ervan uit. Debian en AlmaLinux werken echter ook.

Weet je niet welke versie van Ubuntu je gebruikt? Leer vijf manieren om dit te controleren.

2. Installeer Docker uit de officiële repository

Installeer niet apt install docker.io. Dat haalt een oudere Docker uit het Ubuntu-archief.

Gebruik in plaats daarvan Docker’s eigen apt repo volgens de officiële Docker installatiehandleiding, die Docker’s GPG-sleutel, de repo en docker-ce plus de Compose plugin in één keer toevoegt.

3. Controleer Of Docker Actief Is

Voer docker run hello-world uit.

Als je het bericht “Hello from Docker!” niet krijgt, repareer dan de daemon voordat je Portainer eroverheen legt.

4. Maak een Persistent Volume Voor De Gegevens Van Portainer

Voer vervolgens docker volume create portainer_data uit.

Het bewaren van de database van Portainer op een Docker-volume (niet in de container) betekent dat een upgrade van Portainer je configuratie niet zal wissen.

5. Start Portainer Community Edition

Gebruik het officiële installatiecommando vanuit Portainer’s Linux installatie document:

  docker run -d 
  -p 8000:8000 
  -p 9443:9443 
  --name portainer 
  --restart=always 
  -v /var/run/docker.sock:/var/run/docker.sock 
  -v portainer_data:/data 
  portainer/portainer-ce:lts

Laten we dat regel voor regel afbreken:

  • -d voert het uit in de achtergrond.
  • -p 9443:9443 is de Portainer web UI op HTTPS.
  • -p 8000:8000 is de tunnel voor de Edge Agent; je hebt dit alleen nodig als je later externe omgevingen (Docker, Swarm of Kubernetes) wilt verbinden via Edge Agents, dus laat dit weg bij een installatie op één host.
  • --restart=always start Portainer opnieuw na een herstart.
  • -v vlaggen zijn de socketbinding en het persistente volume van stap 4.
  • :lts tag is Portainer’s kanaal voor langdurige ondersteuning — de stabiele, aanbevolen build voor productie.

6. Open De UI En Maak Je Admin-Account Aan

Richt je browser op https://YOUR_VPS_IP:9443.

Klik door de waarschuwing van het zelfondertekende certificaat. Je komt op het scherm “de eerste administrator gebruiker aanmaken”. Kies een gebruikersnaam die niet ‘admin’ is, stel een sterk wachtwoord in, en bewaar het op een echte plek. En… je bent binnen!

Waarom Heeft Portainer Zojuist Een Time-out Op Mij Gehad?

Omdat Portainer precies vijf minuten wacht tot iemand het claimt bij de eerste installatie. Als niemand dat doet, sluit het de deur.

Woordelijk van Portainer’s eigen FAQ:

Als veiligheidsmaatregel wacht Portainer, wanneer het voor het eerst geïnstalleerd wordt, 5 minuten op het aanmaken van een administrateurgebruiker. Als er binnen die 5 minuten geen gebruiker wordt aangemaakt, zal de Portainer-server stoppen met het luisteren naar verzoeken.

Vertaling: als je Stap 5 hebt besteed aan het maken van een broodje, weigert je installatie nu met je te praten — en je hebt niets verkeerd gedaan.

De oplossing is eenvoudig. Voer docker restart portainer uit.

Dat start de container opnieuw op, geeft je een nieuw venster van vijf minuten en zet je op het scherm voor het aanmaken van een beheerder. Herhaal indien nodig. Welkom bij self-hosting.

Als je het installatiescript schrijft voor een vloot (Ansible, Terraform, een implementatiepijplijn), accepteert Portainer een --admin-password-file vlag bij het opstarten die de timer volledig omzeilt door de beheerder te creëren vanuit een bestand bij de eerste uitvoering. De installatiedocumentatie behandelt de syntaxis. Voor een eenmalige VPS-installatie is de herstarttruc prima.

Hoe Stop Je Docker Om Je Firewall Te Omzeilen?

Vergelijking Docker-firewall: zonder DOCKER-USER-regel is er onbeperkte toegang tot de container, met DOCKER-USER-regel wordt firewallbescherming toegevoegd.

Dit verrast mensen in productie, niet alleen in ontwikkeling — dus let op.

Wanneer je docker run -p 80:80 uitvoert, is de gepubliceerde poort bereikbaar vanaf het openbare internet, zelfs als ufw status poort 80 als geweigerd toont. Docker leidt containerverkeer om in de NAT-tabel, wat betekent dat pakketten worden omgeleid voordat ze de INPUT en OUTPUT ketens bereiken die UFW gebruikt.

UFW is niet kapot. Het staat gewoon in de verkeerde gang.

De fix die Docker zelf aanbeveelt is de DOCKER-USER iptables-keten, gereserveerd voor beheerdersregels zodat Docker ze niet overschrijft bij een herstart. (De regels overleven geen volledige host-reboot op zichzelf — maak ze blijvend met iptables-persistent of een systemd-service; ufw-docker regelt dit voor jou.) Het gemeenschapsstandaard hulpmiddel voor het koppelen van UFW aan DOCKER-USER is chaifeng/ufw-docker, dat de generatie van regels automatiseert.

Installeer het en verifieer vervolgens met een poortscan van buiten je VPS dat de poorten waarvan je denkt dat ze gesloten zijn ook daadwerkelijk gesloten zijn.

Ik heb gezien hoe dit in dezelfde week twee keer een scherpe ingenieur ving, eerst op een persoonlijke computer, daarna op die van een klant. UFW zei iets, het openbare internet zei iets anders, en de waarheid stond in iptables.

Voor Portainer specifiek wordt poort 9443 gepubliceerd, wat betekent dat de beheerdersinterface bereikbaar is vanaf elke locatie op het openbare internet zodra de container start. Twee redelijke opties: beperk 9443 via DOCKER-USER regels (sta alleen je thuis- of kantoor-IP toe), of zet het voor een VPN-tunnel zoals WireGuard, zodat de interface nooit een openbaar IP heeft.

Wat Moet Je Beveiligen Direct Na De Eerste Inlog?

Je bent erin. Vijf dingen die de moeite waard zijn om te doen voordat je dat browsertabblad sluit, volgens de beveiligingsgids van Portainer:

  • Dwing Alleen HTTPS Af. Portainer gebruikt standaard HTTPS op 9443 maar dwingt dit niet af. Zet de schakelaar om in Instellingen zodat de UI helemaal geen HTTP accepteert.
  • Vervang het zelfondertekende certificaat. Upload een certificaat dat je hebt gegenereerd, of plaats Portainer achter een NGINX reverse proxy met een Let’s Encrypt certificaat. Na de eerste dag zal het telkens klikken door de browserwaarschuwing een gewoonte worden die je zult betreuren.
  • Gebruik een echte beheerdersnaam. “Admin” is de eerste gok bij elke poging tot credential-stuffing. Kies iets dat specifiek voor jou is.
  • Beperk de UI tot een VPN. WireGuard is het aanbevolen patroon van Portainer zelf. Een publieke 9443 met sterke inloggegevens is prima. Een 9443 die alleen bereikbaar is op een privénetwerk is beter.
  • Audit de Docker socket koppeling. Alles met leestoegang tot /var/run/docker.sock kan alles als root uitvoeren op de host. Monteer de socket niet zomaar in andere containers. Elke extra koppeling is een nieuw pad naar de host. Als een container beweert de socket nodig te hebben, vraag dan waarom — en overweeg een socketproxy als het antwoord “voor monitoring” is.

Hoe Gebruik Je Portainer Dagelijks?

De beloning voor het installeren van Portainer is de dag dat je stopt met SSH’en om een ondeugende container te herstarten, en in plaats daarvan op een knop begint te klikken. De grotere beloning is stackbeheer.

Een Portainer stack is een multi-container app gedefinieerd door een Docker Compose-bestand. Alles wat je kunt uitdrukken als een docker-compose.yml kun je implementeren als een stack, met drie hoofdroutes (exclusief aangepaste sjablonen) volgens de officiële stacks documentatie:

  • Plak Compose in de UI
  • Upload een Compose-bestand
  • Wijs Portainer naar een Git-repository
Portainer.io dashboard toont Stack Details met een tabel van containers, logboeken, statistieken, en beheersfuncties voor Docker containers.

Het Git-pad is hetgeen dat telt. Je wijst Portainer naar een publieke of geauthenticeerde repo en een pad naar docker-compose.yml. Portainer polst de repo volgens een schema (de standaard is vijf minuten) of wacht op een webhook van GitHub. Wanneer het Compose-bestand stroomopwaarts verandert, haalt Portainer het op en zet het automatisch opnieuw in.

Dat is de zelfgehoste versie van “deploy on push” zonder te betalen voor het voorrecht van een PaaS.

De kleinere dagelijkse successen tellen ook op. Denk aan logboeken in een paneel in plaats van docker logs -f, herstarts met één klik, het opnieuw opbouwen van een stack vanuit een knop, en bron grafieken die je in drie seconden kunt scannen in plaats van Docker stats uit te voeren.

Portainer ondersteunt ook externe Docker-hosts via zijn Edge Agent, wat de manier is waarop een zelfgehoste AI-assistent of mediaserver op meerdere apparaten terechtkomt.

Wat Kost Portainer? (En Wanneer Is Gratis Niet Meer Gratis?)

Portainer Community Edition is gratis en onbeperkt, punt uit. De installatie die je zojuist hebt doorlopen is volledig uitgerust voor één host met zoveel containers als je VPS aankan. Geen knooppuntlimiet, geen verloopdatum, geen vervelende schermen.

EditieKostenNodesBest Voor
Community EditieGratis, open-sourceOngelimiteerdPersoonlijke projecten, homelab, enkele-VPS zelfhosters
Zakelijke Editie (Take 3)Permanent gratisTot 3Kleine homelabs die RBAC en audit logs willen
Zakelijke StarterVanaf $99/ma5, 10, of 15Kleine teams die echte infrastructuur beheren
Zakelijke SchaalVanaf $199/maTot 25Groeiende teams die 9×5 ondersteuning nodig hebben
EnterpriseOfferteOngelimiteerdNaleving en 24/7 behoeften

De eeuwigdurende gratis tier van drie nodes (genaamd Take 3) is het waard om te kennen: je vernieuwt de licentie jaarlijks zonder kosten zolang je bij drie of minder nodes blijft.

Dat is het juiste plan voor de meeste homelabs en kleine teams die rolgebaseerde toegangscontrole (RBAC), auditlogboeken en activiteitenlogboeken willen hebben zonder te betalen. Daarbovenop kost Business Starter $99/maand op de Portainer bedrijfsprijzenpagina voor 5/10/15 nodes; Scale kost $199/maand tot 25 nodes; en Enterprise is op aanvraag.

Voor bijna iedereen die dit leest, is de beste keuze de Community Edition. Het zal een enkele VPS zelf-host zijn voor de levensduur van de box. De Business edities zijn pas de moeite waard als je echte nodeaantallen beheert, RBAC nodig hebt binnen een team, of commerciële ondersteuning nodig hebt voor naleving.

Moet Je Portainer Toevoegen Of Overslaan?

Hier is het eerlijke antwoord in twee zinnen:

✅ Als je van plan bent deze server te delen, vanuit Git te implementeren, of meer dan drie containers per jaar vanaf nu te draaien, installeer dan Portainer terwijl de host nieuw is en je gewoonten er nog omheen vormen.

❌ Als je één rustige app gebruikt en je voelt je prettig in de terminal, zul je de UI die je niet hebt geïnstalleerd niet missen.

De echte vraag is niet Portainer versus geen Portainer. Het gaat erom of zelf-hosting überhaupt de juiste keuze voor je is — en dat heb je beantwoord toen je deze tab opende.

Een 4 GB VPS, Docker en Portainer CE brengen je verder dan de meeste mensen verwachten — een automatiseringsstack, een fotoserver, een nieuwsbriefplatform en een lokale AI-assistent — voor minder dan je waarschijnlijk betaalt voor twee streamingdiensten die je nauwelijks bekijkt.

Dat is geen slechte deal voor een box die je daadwerkelijk bezit.

Veelgestelde Vragen Over Docker En Portainer

Waarvoor wordt Portainer gebruikt?

Portainer wordt gebruikt voor het beheren van Docker, Docker Swarm en Kubernetes containers via een webinterface. Het draait zelf als een Docker container, verbindt met de Docker socket van de host en geeft je een browserweergave en controleoppervlak over elke andere container op de host — het starten en stoppen van containers, het implementeren van multi-container stacks, het bekijken van logboeken en het beheren van gebruikerstoegang zonder in te loggen via SSH.

Heb Ik Portainer Nodig Als Ik Docker Heb?

Nee, je hebt Portainer niet nodig om Docker te gebruiken. Docker werkt volledig vanuit de terminal, en veel zelf-hosters installeren nooit een UI erbovenop.

Portainer verdient zijn kost als je meer dan twee of drie containers jongleert, toegang deelt met iemand die niet in een terminal leeft, of stack-updates implementeert vanuit een Git-repository. Sla het over als je één of twee stabiele containers draait en je comfortabel bent met Docker Compose.

Op Welke Poort Draait Portainer?

Portainer draait standaard op poort 9443 voor HTTPS-toegang tot de web UI, plus poort 8000 voor de Edge Agent tunnel als je later externe Docker hosts verbindt. Poort 8000 is optioneel bij een installatie op één host; je kunt de -p 8000:8000 vlag uit het installatiecommando verwijderen zonder dat dit invloed heeft op de lokale UI. De standaardinstellingen komen rechtstreeks uit Portainer’s officiële Linux installatiedocument.

Hoeveel RAM heeft Portainer nodig?

Portainer zelf is inactief bij ongeveer 100 MB voordat je iets anders laadt. Voeg een paar honderd MB toe voor de Docker-daemon, en dimensioneer vervolgens op basis van wat je daadwerkelijk draait.

Bij DreamHost dimensioneren we onze instapniveau Self-Managed VPS op 4 GB RAM voor precies dit soort werklast — voldoende ruimte voor Portainer plus een kleine stapel side-project containers zoals Ghost, n8n, een Postgres-database en een reverse proxy.

Is Portainer gratis?

Ja. Portainer Community Edition is volledig gratis, en de Business Edition heeft ook een permanente gratis 3-node laag genaamd Take 3, die elk jaar zonder kosten wordt vernieuwd zolang je bij drie nodes of minder blijft. Boven de drie nodes begint de zakelijke prijsstelling bij $99/maand op het Starter plan volgens de zakelijke prijspagina van Portainer.

Wat is het verschil tussen Portainer CE en Business Edition?

Portainer Community Edition is gratis, open-source, en volledig uitgerust voor persoonlijk gebruik.

Zakelijke Editie voegt op rollen gebaseerde toegangscontrole, auditlogboeken, activiteitenlogboeken en commerciële ondersteuning toe, en begint bij $99/mnd voor 5 nodes na het eeuwigdurende gratis 3-node Take 3 pakket.

Kan Portainer Meerdere Docker Hosts Beheren?

Ja, Portainer kan meerdere Docker hosts beheren via Edge Agents, die op elke externe host draaien en de centrale Portainer Server op de UI-poort bevragen, waarbij poort 8000 wordt gebruikt om een veilige tunnel terug te openen voor beheercommando’s. Voor zelf-hosters met één enkele VPS is dit overbodig. Voor iedereen die drie of meer apparaten beheert die een besturingspaneel delen, is dit de reden waarom 8000 in de installatieregel staat.

Omzeilt Docker UFW op een VPS?

Ja, Docker omzeilt standaard UFW omdat Docker het containerverkeer beheert op de iptables NAT-laag, die voor de INPUT- en OUTPUT-ketens van UFW zit.

Volgens Docker’s packet-filtering documentatie, “Pakketten worden omgeleid voordat ze de INPUT en OUTPUT ketens bereiken die UFW gebruikt.” De oplossing is de DOCKER-USER iptables keten, en het door de gemeenschap gestandaardiseerde hulpmiddel voor het aansluiten van UFW hierop is chaifeng/ufw-docker.

VPS

Beheer je volledige stack. Apps, AI, databases en meer.

Houd al je inloggegevens en gesprekken op een server die jij beheert, met ingebouwde NVMe-snelheid en ongelimiteerde bandbreedte.

Bekijk VPS-hostingabonnementen