{"id":82080,"date":"2026-06-19T07:30:00","date_gmt":"2026-06-19T14:30:00","guid":{"rendered":"https:\/\/dhblog2.dream.press\/blog\/?p=82080"},"modified":"2026-09-24T15:21:20","modified_gmt":"2026-09-24T22:21:20","slug":"hoe-docker-en-portainer-op-een-vps-te-draaien-2026-gids-nl","status":"publish","type":"post","link":"https:\/\/www.dreamhost.com\/blog\/nl\/hoe-docker-en-portainer-op-een-vps-te-draaien-2026-gids-nl\/","title":{"rendered":"Hoe Docker en Portainer op een VPS te draaien (2026 Gids)"},"content":{"rendered":"<div class=\"tldr-block\" style=\"display: none;\">\n\t<div class=\"svg\">\n\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 119.25 37.8\">\n\t<g>\n\t\t<g>\n\t\t\t<path fill=\"#ffffff\" d=\"M23.4,6.93h-8.1v24.57h-7.2V6.93H0V0h23.4v6.93Z\" \/>\n\t\t\t<path fill=\"#ffffff\" d=\"M45,24.57v6.93h-18.45V0h7.2v24.57h11.25Z\" \/>\n\t\t\t<path fill=\"#ffffff\"\n\t\t\t\td=\"M90.9,15.75c0,8.91-6.61,15.75-15.3,15.75h-12.6V0h12.6c8.68,0,15.3,6.84,15.3,15.75ZM83.97,15.75c0-5.4-3.42-8.82-8.37-8.82h-5.4v17.64h5.4c4.95,0,8.37-3.42,8.37-8.82Z\" \/>\n\t\t\t<path fill=\"#ffffff\"\n\t\t\t\td=\"M105.57,21.15h-3.42v10.35h-7.2V0h12.6c5.98,0,10.8,4.81,10.8,10.8,0,3.87-2.34,7.38-5.81,9.13l6.71,11.56h-7.74l-5.94-10.35ZM102.15,14.85h5.4c1.98,0,3.6-1.75,3.6-4.05s-1.62-4.05-3.6-4.05h-5.4v8.1Z\" \/>\n\t\t<\/g>\n\t\t<path\n\t\t\tfill=\"#0173ec\"\n\t\t\td=\"M53.97,37.8h-5.4l1.8-13.27h7.2l-3.6,13.27ZM49.02,12.55c0-2.34,1.93-4.27,4.27-4.27s4.27,1.94,4.27,4.27-1.93,4.27-4.27,4.27-4.27-1.94-4.27-4.27Z\"\n\t\t \/>\n\t<\/g>\n<\/svg>\n\t<\/div>\n\t<div class=\"tldr-wrap\">\n\t\t\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.dreamhost.com\/nl\/hosting\/vps\/docker\/\">Docker draaien op een VPS<\/a> geeft je draagbare, zelfgehoste apps en tegelijk directe controle over de server en de deployment-opzet. Portainer toevoegen zet een web UI voor Docker zodat je niet altijd in de terminal hoeft te leven.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Portainer publiceert geen RAM-minimum. Een 4 GB VPS kan geschikt zijn voor een kleine stack, maar bepaal de grootte op basis van de gecombineerde vereisten van het besturingssysteem, de Docker-daemon en elke container die je wilt draaien. Portainer zelf draait als een lichtgewicht container \u2014 je apps, niet de UI, bepalen hoeveel RAM je nodig hebt. Portainer Community Edition is gratis en open source, en zodra Docker en de firewallvoorbereiding klaar zijn, bestaat de installatie zelf uit \u00e9\u00e9n volume create en \u00e9\u00e9n docker run-commando.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Twee valkuilen die je moet kennen voordat je begint: Portainer wacht maar vijf minuten op het eerste admin-account, en Docker publiceert poorten standaard dwars langs UFW. Deze gids behandelt beide in de juiste volgorde \u2014 de installatie, de firewall, de dimensionering, de back-ups en waar Portainer zijn waarde bewijst op dag twee.<\/p>\n\n\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Heb je ooit gehoord van <em>Dockerception<\/em>?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nou, houd je vast aan je hoed. We gaan het konijnenhol in.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Portainer, de web UI die je gaat installeren bovenop Docker, <em>is zelf een Docker-container<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Het is een tool die draait op precies datgene wat het beheert. Je start het met \u00e9\u00e9n 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 elke container op de machine te tonen \u2014 inclusief zichzelf. Vanuit dat browsertabblad beheer je al je andere Docker-containers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>De UI waar je naar kijkt, staat in zijn eigen containerlijst.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Dat<\/em> is de waarde.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Een 4 GB box kan een startpunt zijn voor Docker en Portainer, maar de applicaties die je toevoegt bepalen of die capaciteit genoeg is. Denk aan de huisautomatisering, de familiefotoverzameling, de AI-assistent en de nieuwsbrief die je al zo lang wilt lanceren \u2014 op \u00e9\u00e9n server die je echt bezit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zo krijg je het draaiend, beveilig je het en haal je er waarde uit.<\/p>\n\n\n\n<h2 id=\"h-what-is-portainer-exactly\" class=\"wp-block-heading\">Wat Is Portainer Precies?<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"829\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x.webp\" alt=\"Portainer-architectuur 1x\" class=\"wp-image-82009 lazyload\" data-srcset=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x.webp 1600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x-300x155.webp 300w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x-1024x531.webp 1024w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x-768x398.webp 768w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x-1536x796.webp 1536w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x-600x311.webp 600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x-1200x622.webp 1200w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x-730x378.webp 730w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x-1460x756.webp 1460w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x-784x406.webp 784w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x-1568x812.webp 1568w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x-877x454.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/829;\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Portainer is een webinterface die als een Docker-container draait en je andere containers beheert via de Docker-socket.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Het is in wezen een browsergebaseerde frontend (een Docker-GUI) voor dezelfde Docker-commando&#8217;s die je anders met de hand zou typen, plus stackbeheer, op rollen gebaseerde toegang (als je upgradet naar Business Edition) en een dashboardweergave van CPU en geheugen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De socketverbinding is wat het werk doet. De binding ziet eruit als <code><strong>-v \/var\/run\/docker.sock:\/var\/run\/docker.sock<\/strong><\/code> in het installatiecommando, en die ene regel doet al het zware werk. Zonder die regel is Portainer een UI voor een lege Docker-host. Met die regel is Portainer de afstandsbediening van de Docker-host.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">E\u00e9n ding om in gedachten te houden: elk proces dat <strong><code>\/var\/run\/docker.sock<\/code><\/strong> kan bereiken, kan de Docker-daemon besturen, en de <a target=\"_blank\" href=\"https:\/\/docs.docker.com\/engine\/security\/\">eigen beveiligingsdocumentatie van Docker<\/a> zegt onomwonden dat alleen vertrouwde gebruikers dat mogen doen: een container die via de daemon is gestart, kan het volledige bestandssysteem van de host mounten en zonder beperkingen wijzigen. Dat is een <em>functie<\/em> wanneer het Portainer is die het vraagt en een <em>probleem<\/em> wanneer het een container is die je vorige week hebt opgezet en waarvan je vergeten bent dat je hem sockettoegang had gegeven.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Behandel het binden van de socket als een bevoorrechte capaciteit en controleer elke andere container die er een wil.<\/p>\n\n\n\n<div class=\"article-newsletter article-newsletter--gradient\">\n\n\n<h2>Get Content Delivered Straight to Your Inbox<\/h2><p>Subscribe now to receive all the latest updates, delivered directly to your inbox.<\/p><form class=\"nwsl-form\" id=\"newsletter_block_\" novalidate><div class=\"messages\"><\/div><div class=\"form-group\"><label for=\"input_newsletter_block_\"><input type=\"email\"name=\"email\"id=\"input_newsletter_block_\"placeholder=\"Enter your email address\"novalidatedisabled=\"disabled\"\/><\/label><button type=\"submit\"class=\"btn btn--brand\"disabled=\"disabled\"><span>Sign Me Up!<\/span><svg width=\"21\" height=\"14\" viewBox=\"0 0 21 14\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M13.8523 0.42524L12.9323 1.34521C12.7095 1.56801 12.7132 1.9304 12.9404 2.14865L16.7241 5.7823H0.5625C0.251859 5.7823 0 6.03416 0 6.3448V7.6573C0 7.96794 0.251859 8.2198 0.5625 8.2198H16.7241L12.9405 11.8535C12.7132 12.0717 12.7095 12.4341 12.9323 12.6569L13.8523 13.5769C14.072 13.7965 14.4281 13.7965 14.6478 13.5769L20.8259 7.39879C21.0456 7.17913 21.0456 6.82298 20.8259 6.60327L14.6477 0.42524C14.4281 0.205584 14.0719 0.205584 13.8523 0.42524Z\" fill=\"white\"\/>\n<\/svg>\n<\/button><\/div><\/form><\/div>\n\n\n<h2 id=\"h-do-you-need-portainer-if-you-already-have-docker\" class=\"wp-block-heading\">Heb Je Portainer Nodig Als Je Al Docker Hebt?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nee. <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/what-is-docker\/\">Docker<\/a> werkt prima vanuit de terminal, en veel mensen draaien jarenlang een paar containers zonder ooit een UI erbovenop te installeren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Je wilt Portainer als:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Je jongleert met meer dan twee of drie Docker-containers voor verschillende apps.<\/li>\n\n\n\n<li>Je klikt liever op &#8220;herstarten&#8221; dan om 23:00 uur een Compose-commando opnieuw te typen.&nbsp;<\/li>\n\n\n\n<li>Je deelt toegang met iemand die niet in een terminal leeft.&nbsp;<\/li>\n\n\n\n<li>Je wilt stack-updates vanuit een Git-repo implementeren zonder een implementatiescript te schrijven.&nbsp;<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Sla Portainer over als:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Je draait \u00e9\u00e9n of twee containers die zelden veranderen.&nbsp;<\/li>\n\n\n\n<li>Je bent al vertrouwd met Docker Compose en je blijft daar graag.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Docker zelf is mainstream genoeg dat dit geen randbeslissing is. In de <a target=\"_blank\" href=\"https:\/\/stackoverflow.co\/company\/press\/archive\/stack-overflow-2025-developer-survey\/\">Stack Overflow Developer Survey 2025<\/a> gaf 71% van de respondenten aan Docker te gebruiken \u2014 het hoogste resultaat onder technologie\u00ebn voor cloudontwikkeling en infrastructuur, na een sprong van 17 procentpunten ten opzichte van 2024. Het Portainer-project heeft per augustus 2026 meer dan <a target=\"_blank\" href=\"https:\/\/github.com\/portainer\/portainer\">38.000 sterren op GitHub<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Er bestaan andere opties. <a href=\"https:\/\/www.dreamhost.com\/nl\/hosting\/vps\/dokploy\/\">Dokploy<\/a> bijvoorbeeld gaat verder richting een volledig zelfgehoste PaaS en regelt apps, databases en SSL voor je. Portainer blijft dichter bij gewone Docker: dezelfde Compose-bestanden, dezelfde images, alleen met een UI erbovenop.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Als je in tmux woont en \u00e9\u00e9n app draait, sluit dan deze tab. <em>Je zit goed.<\/em> Als je vier zelfgehoste apps draait en je deze maand twee keer hebt gegoogeld: &#8220;Wat waren Docker-logs ook alweer?&#8221;, blijf dan lezen.<\/p>\n\n\n\n<h2 id=\"h-how-big-a-vps-do-you-need-to-run-docker-and-portainer\" class=\"wp-block-heading\">Hoe Groot Moet Een VPS Zijn Om Docker En Portainer Te Draaien?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Portainer publiceert geen RAM-minimum. Een 4 GB <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/beginners-guide-vps\/\">VPS<\/a> kan geschikt zijn voor een kleine stack, maar bepaal de grootte op basis van de gecombineerde vereisten van het besturingssysteem, de Docker-daemon en elke container die je wilt draaien.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De eigen <a target=\"_blank\" href=\"https:\/\/docs.portainer.io\/start\/requirements-and-prerequisites\">pagina met vereisten<\/a> van Portainer zegt verrassend weinig over RAM: de Server wordt geleverd als een lichtgewicht container, en de prestatierichtlijnen in de documentatie gaan over opslag (daarover hieronder meer). De echte RAM-rekensom zijn je werklasten \u2014 reken het besturingssysteem, de Docker-daemon en elke container die je wilt draaien mee. Reken ook schijfruimte in voor logs: de standaard logdriver json-file van Docker doet geen logrotatie, dus de logs van een spraakzame container kunnen na verloop van tijd flink wat schijfruimte opslokken. De <a target=\"_blank\" href=\"https:\/\/docs.docker.com\/engine\/logging\/configure\/\">logdocumentatie van Docker<\/a> raadt in plaats daarvan de driver local aan. Zodra Docker is ge\u00efnstalleerd (stap 2 hieronder), maak je de configuratiemap van Docker aan, stel je de logdriver local in en herstart je Docker: voer <strong><code>sudo install -d -m 0755 \/etc\/docker<\/code><\/strong> uit, daarna <strong><code>printf '%s\\n' '{ \"log-driver\": \"local\" }' | sudo tee \/etc\/docker\/daemon.json &gt; \/dev\/null<\/code><\/strong> en daarna <strong><code>sudo systemctl restart docker<\/code><\/strong>. Doe dit voordat je langlopende apps implementeert: de driver local roteert logs standaard, en de wijziging geldt alleen voor containers die daarna worden aangemaakt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zo ziet dat er bij echte werklasten uit:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1089\" height=\"1445\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/08\/vps-size-and-workload-docker-portainer-dreamops-a195c957dc63964ff3f33f0a.webp\" alt=\"Tabel met VPS-dimensionering voor Docker en Portainer: \u00e9\u00e9n kleine app-stack met Ghost, n8n, Postgres en een reverse proxy past op DreamHost Stack 4 met 4 GB RAM; grotere plannen worden gedimensioneerd op basis van gedocumenteerde werklastvereisten\" class=\"wp-image-87229 lazyload\" data-srcset=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/08\/vps-size-and-workload-docker-portainer-dreamops-a195c957dc63964ff3f33f0a.webp 1089w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/08\/vps-size-and-workload-docker-portainer-dreamops-a195c957dc63964ff3f33f0a-226x300.webp 226w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/08\/vps-size-and-workload-docker-portainer-dreamops-a195c957dc63964ff3f33f0a-772x1024.webp 772w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/08\/vps-size-and-workload-docker-portainer-dreamops-a195c957dc63964ff3f33f0a-768x1019.webp 768w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/08\/vps-size-and-workload-docker-portainer-dreamops-a195c957dc63964ff3f33f0a-600x796.webp 600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/08\/vps-size-and-workload-docker-portainer-dreamops-a195c957dc63964ff3f33f0a-730x969.webp 730w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/08\/vps-size-and-workload-docker-portainer-dreamops-a195c957dc63964ff3f33f0a-784x1040.webp 784w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/08\/vps-size-and-workload-docker-portainer-dreamops-a195c957dc63964ff3f33f0a-877x1164.webp 877w\" data-sizes=\"(max-width: 1089px) 100vw, 1089px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1089px; --smush-placeholder-aspect-ratio: 1089\/1445;\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Het rekenblad is simpele optelling: zoek de gedocumenteerde RAM-vereiste op voor elke app die je wilt draaien, tel het besturingssysteem en de Docker-daemon erbij op en houd daarna ruimte over voor gebruikspieken. Portainer zelf publiceert geen RAM-minimum, dus het zijn de apps \u2014 niet de UI \u2014 die de box vullen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bij DreamHost is onze <a href=\"https:\/\/www.dreamhost.com\/nl\/hosting\/vps\/\" target=\"_blank\">VPS Hosting<\/a> beschikbaar in vier op RAM gebaseerde Stack-plannen (Stack 4, 8, 16 en 32). Het instapplan Stack 4 (2 vCPU&#8217;s, 4 GB RAM, 75 GB NVMe SSD, volledige root-toegang) is een logische keuze voor een kleine Docker-host. Bij maandelijkse facturering kost het $8,99\/maand voor de eerste 3 maanden en wordt het daarna automatisch verlengd tegen $15,99\/maand (per augustus 2026; de volledige termijn plus belastingen wordt bij het afrekenen in rekening gebracht \u2014 actuele prijzen staan altijd op de <a href=\"https:\/\/www.dreamhost.com\/nl\/hosting\/vps\/docker\/\">Docker + Portainer VPS-pagina<\/a>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Als je twijfelt of <a href=\"https:\/\/www.dreamhost.com\/blog\/self-hosting\/\" target=\"_blank\">self-hosting<\/a> de moeite waard is, is Stack 4 de grootte om mee te beginnen: groot genoeg om erachter te komen, klein genoeg dat je niet betaalt voor ruimte die je niet gebruikt. Als je rekenblad eroverheen groeit, kun je naar een hoger plan overstappen en verhuist je omgeving mee \u2014 maar let op: terugschalen naar een kleinere Stack wordt momenteel niet ondersteund, dus begin bewust klein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Een opmerking over opslag:<\/strong> het datavolume van Portainer bevat zijn eigen database en configuratie, plus een kloon van elke Git-repository waaruit je stacks implementeert \u2014 de documentatie van Portainer waarschuwt dat grote of meerdere repo&#8217;s veel schijfruimte kunnen innemen. De prestatierichtlijnen in de documentatie gaan over opslag, niet over geheugen: prestaties op SSD-niveau (\u22483,5 MB\/s, 30.000 IOPS of meer, minder dan 10ms schrijflatentie) noemen ze ideaal. Stack 4 bevat 75 GB NVMe SSD-opslag.<\/p>\n\n\n\n<h2 id=\"h-how-do-you-install-docker-and-portainer-on-a-vps\" class=\"wp-block-heading\">Hoe Installeer Je Docker En Portainer Op Een VPS?<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1392\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x.webp\" alt=\"Portainer.io-formulier voor de eerste installatie om een beheerdersaccount met gebruikersnaam aan te maken\" class=\"wp-image-82012 lazyload\" data-srcset=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x.webp 1600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x-300x261.webp 300w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x-1024x891.webp 1024w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x-768x668.webp 768w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x-1536x1336.webp 1536w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x-600x522.webp 600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x-1200x1044.webp 1200w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x-730x635.webp 730w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x-1460x1270.webp 1460w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x-784x682.webp 784w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x-1568x1364.webp 1568w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x-877x763.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1392;\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Het zijn zeven stappen. De download- en installatietijd hangt af van je VPS en je netwerkverbinding. De commando&#8217;s in stap 2 tot en met 6 zijn geschreven voor Ubuntu en kun je op een schone server in volgorde plakken; de enige plek waar een commando een waarde nodig heeft die alleen jij kent (je eigen IP-adres, in stap 4), wordt in die stap aangegeven. (Wil je de hele lijst overslaan? De app-bibliotheek van DreamHost VPS Hosting bevat een <a href=\"https:\/\/www.dreamhost.com\/nl\/hosting\/vps\/docker\/\">Docker + Portainer-image<\/a> waarin beide vooraf zijn geconfigureerd.)<\/p>\n\n\n\n<h3 id=\"h-1-pick-a-linux-distribution\" class=\"wp-block-heading\">1. Kies een Linux-distributie<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Deze gids gebruikt Ubuntu 24.04 LTS. Docker Engine ondersteunt Ubuntu 22.04, 24.04 en 26.04 LTS (per augustus 2026). <a href=\"https:\/\/www.dreamhost.com\/nl\/hosting\/vps\/ubuntu\/\">Ubuntu<\/a> is een van de vooraf ge\u00efnstalleerde besturingssystemen op DreamHost VPS Hosting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Debian en distributies uit de RHEL-familie zoals AlmaLinux werken ook, maar ze hebben hun eigen installatiepaden in de documentatie van Docker, en de commando&#8217;s hieronder zijn niet zomaar over te nemen. Nog een extra aandachtspunt bij de RHEL-familie: de installatiedocumentatie van Portainer gaat ervan uit dat SELinux is uitgeschakeld en zegt dat je <strong><code>--privileged<\/code><\/strong> aan Docker moet meegeven bij het implementeren van Portainer als je SELinux ingeschakeld nodig hebt. Als die zin je niets zei, gebruik dan Ubuntu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Weet je niet welke versie van Ubuntu je gebruikt? Ontdek <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/check-ubuntu-version\/\">vijf manieren om dit te controleren<\/a>.<\/p>\n\n\n\n<h3 id=\"h-2-install-docker-from-the-official-repository\" class=\"wp-block-heading\">2. Installeer Docker vanuit de offici\u00eble repository<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Doe geen <strong><code>apt install docker.io<\/code><\/strong>, en installeer Docker ook niet via snap \u2014 de <a target=\"_blank\" href=\"https:\/\/docs.docker.com\/engine\/install\/ubuntu\/\">offici\u00eble installatiedocumentatie<\/a> van Docker noemt <strong>docker.io<\/strong> bij de onoffici\u00eble pakketten die je moet verwijderen voordat je Docker Engine installeert, en de installatiedocumentatie van Portainer waarschuwt dat het snap-pakket compatibiliteitsproblemen kan veroorzaken.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Verwijder eerst eventuele conflicterende pakketten. Dit is het verwijdercommando uit de huidige installatiedocumentatie van Docker, en op een schone server vindt het meestal niets om te verwijderen \u2014 de documentatie merkt op dat apt kan melden dat je geen van deze pakketten hebt ge\u00efnstalleerd:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Voeg vervolgens de GPG-sleutel van Docker toe (elke regel hieronder is een apart commando):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt install ca-certificates curl\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<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Voeg daarna de apt-repository van Docker toe. Dit schrijft de repository-definitie naar <strong><code>\/etc\/apt\/sources.list.d\/docker.sources<\/code><\/strong> \u2014 het bestand dat de installatiedocumentatie van Docker gebruikt \u2014 waarbij je Ubuntu-versie en CPU-architectuur automatisch worden ingevuld:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo tee \/etc\/apt\/sources.list.d\/docker.sources &gt; \/dev\/null &lt;&lt;EOF\nTypes: deb\nURIs: https:\/\/download.docker.com\/linux\/ubuntu\nSuites: $(. \/etc\/os-release &amp;&amp; echo \"$VERSION_CODENAME\")\nComponents: stable\nArchitectures: $(dpkg --print-architecture)\nSigned-By: \/etc\/apt\/keyrings\/docker.asc\nEOF\nsudo apt update<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Installeer tot slot Docker Engine en de Compose-plugin in \u00e9\u00e9n keer:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin<\/code><\/pre>\n\n\n\n<h3 id=\"h-3-verify-docker-is-running\" class=\"wp-block-heading\">3. Controleer of Docker draait<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Voer <strong><code>sudo docker run hello-world<\/code><\/strong> uit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Als je het bericht &#8220;Hello from Docker!&#8221; niet krijgt, repareer dan de daemon voordat je Portainer eroverheen legt.<\/p>\n\n\n\n<h3 id=\"h-4-wire-ufw-into-docker-before-you-start-portainer\" class=\"wp-block-heading\">4. Koppel UFW aan Docker voordat je Portainer start<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Hier is het deel dat de meeste gidsen aan het einde zetten, als het te laat is: wanneer Docker een poort publiceert, wordt het verkeer ernaartoe omgeleid voordat het de ketens bereikt die UFW filtert, waardoor een gepubliceerde poort vanaf het openbare internet bereikbaar is, zelfs als UFW zegt dat hij geweigerd wordt. (De volledige uitleg staat <a href=\"#h-how-do-you-stop-docker-from-bypassing-your-firewall\">hieronder<\/a>.) Zodra je Portainer start, is poort 9443 openbaar \u2014 precies tijdens het vijfminutenvenster waarin degene die er als eerste bij is het admin-account mag aanmaken. Regel de firewall dus <em>eerst<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Als UFW nog niet actief is, sta dan SSH toe en schakel het in. (Als je SSH op een aangepaste poort draait, sta dan die poort toe in plaats van 22, anders is dit de stap waarin je jezelf buitensluit.)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw allow 22\/tcp\nsudo ufw enable<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Installeer daarna <a target=\"_blank\" href=\"https:\/\/github.com\/chaifeng\/ufw-docker\">chaifeng\/ufw-docker<\/a>, een tool van derden die de benodigde regels toevoegt aan <strong>\/etc\/ufw\/after.rules<\/strong>, zodat verkeer naar de gepubliceerde poorten van Docker via de <strong>DOCKER-USER<\/strong>-keten wordt gefilterd. De commando&#8217;s hieronder pinnen de release <strong>251123<\/strong> van het project (november 2025) in plaats van te halen uit de steeds veranderende master-branch, en ze gebruiken curl, dat je al in stap 2 hebt ge\u00efnstalleerd:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo curl -fsSL -o \/usr\/local\/bin\/ufw-docker \\\n  https:\/\/github.com\/chaifeng\/ufw-docker\/raw\/251123\/ufw-docker\nsudo chmod +x \/usr\/local\/bin\/ufw-docker\nsudo ufw-docker install\nsudo ufw reload<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Na het herladen worden gepubliceerde containerpoorten via UFW gefilterd. Als je beleid voor gerouteerd verkeer inkomende verbindingen weigert en geen bestaande regel de poort toestaat, blijven openbare verbindingen geblokkeerd totdat je ze expliciet toestaat. (Het ufw-docker-project merkt op dat een herstart van de server helpt als de regels na een herstart van UFW niet werken.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Keur nu vooraf <em>je eigen<\/em> toegang tot de Portainer UI goed. Vervang <strong><code>YOUR_HOME_IP<\/code><\/strong> door het openbare IP-adres waarvandaan je gaat browsen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw route allow proto tcp from YOUR_HOME_IP to any port 9443<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Met deze regel actief voordat Portainer start, is IPv4-verkeer naar de UI toegestaan vanaf jouw IP en van niemand anders \u2014 ook tijdens het venster voor de eerste admin. De regel zoals hij hier staat dekt alleen IPv4. Volgens de documentatie van ufw-docker ondersteunt de tool ook IPv6-netwerken en werkt hij <strong>\/etc\/ufw\/after6.rules<\/strong> bij wanneer nodig, maar neem dat niet blind aan: als je VPS reageert op een openbaar IPv6-adres, voer dan de test van buitenaf uit de firewallsectie ook via IPv6 uit voordat je erop vertrouwt. Het nadeel: de meeste thuisverbindingen veranderen af en toe van IP, dus misschien moet je de regel later bijwerken. Als dat je stoort, is een VPN v\u00f3\u00f3r de UI het nettere antwoord op lange termijn (behandeld in de sectie over beveiligen).<\/p>\n\n\n\n<h3 id=\"h-5-create-a-persistent-volume-for-portainer-s-data\" class=\"wp-block-heading\">5. Maak een persistent volume voor de gegevens van Portainer<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Voer vervolgens <strong><code>sudo docker volume create portainer_data<\/code><\/strong> uit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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.<\/p>\n\n\n\n<h3 id=\"h-6-run-portainer-community-edition\" class=\"wp-block-heading\">6. Start Portainer Community Edition<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Dit is het commando uit <a target=\"_blank\" href=\"https:\/\/docs.portainer.io\/start\/install-ce\/server\/docker\/linux\">de Linux-installatiedocumentatie van Portainer<\/a>, min \u00e9\u00e9n vlag: de offici\u00eble versie publiceert ook poort 8000, een TCP-tunnel die alleen nodig is als je later externe omgevingen via Edge Agents verbindt. Een installatie op \u00e9\u00e9n host heeft die niet nodig, dus laten we hem weg:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker run -d \\\n  -p 9443:9443 \\\n  --name portainer \\\n  --restart=always \\\n  -v \/var\/run\/docker.sock:\/var\/run\/docker.sock \\\n  -v portainer_data:\/data \\\n  portainer\/portainer-ce:lts<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Laten we dat regel voor regel bekijken:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>-d<\/code> <\/strong>draait het op de achtergrond.<\/li>\n\n\n\n<li><strong><code>-p 9443:9443<\/code><\/strong> is de Portainer web UI op HTTPS \u2014 de poort die je in stap 4 voor je IP hebt toegestaan.<\/li>\n\n\n\n<li><strong><code>--restart=always<\/code><\/strong> start Portainer opnieuw na een reboot.<\/li>\n\n\n\n<li><strong><code>-v<\/code><\/strong>-vlaggen zijn de socketbinding en het persistente volume uit stap 5.<\/li>\n\n\n\n<li><strong><code>:lts<\/code><\/strong> zet je vast op de Long Term Support-releaselijn van Portainer \u2014 de tag die de eigen installatiedocumentatie van Portainer gebruikt.<\/li>\n<\/ul>\n\n\n\n<h3 id=\"h-7-open-the-ui-and-create-your-admin-account\" class=\"wp-block-heading\">7. Open de UI en maak je admin-account aan<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Richt je browser op<strong> https:\/\/YOUR_VPS_IP:9443<\/strong> (vanaf het IP-adres dat je in stap 4 hebt toegestaan).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Klik door de waarschuwing van het zelfondertekende certificaat. Je komt op het scherm &#8220;de eerste administratorgebruiker aanmaken&#8221;. Kies een gebruikersnaam die niet admin is, stel een sterk wachtwoord in en bewaar het op een echte plek. En&#8230; je bent binnen!<\/p>\n\n\n\n<h2 id=\"h-why-did-portainer-just-time-out-on-me\" class=\"wp-block-heading\">Waarom Gaf Portainer Me Net Een Time-out?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Omdat Portainer precies vijf minuten wacht tot iemand het claimt bij de eerste installatie. Als niemand dat doet, sluit het de deur.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Woordelijk uit <a target=\"_blank\" href=\"https:\/\/docs.portainer.io\/faqs\/installing\/i-just-installed-portainer-but-i-cant-access-the-ui-how-do-i-fix-this\">de eigen FAQ van Portainer<\/a>:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8220;<em>Als veiligheidsmaatregel wacht Portainer, wanneer het voor het eerst ge\u00efnstalleerd wordt, 5 minuten op het aanmaken van een administratorgebruiker (onderdeel van de eerste installatie). Als er binnen die 5 minuten geen gebruiker wordt aangemaakt, stopt de Portainer Server met luisteren naar verzoeken.<\/em>&#8220;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vertaling: als je stap 6 hebt besteed aan het maken van een broodje, weigert je installatie nu met je te praten \u2014 en je hebt niets verkeerd gedaan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De oplossing is eenvoudig. Voer <strong><code>sudo docker restart portainer<\/code><\/strong> uit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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 <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/self-hosting\/\">self-hosting<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Als je de installatie scriptmatig uitrolt voor een vloot (Ansible, Terraform, een implementatiepijplijn), accepteert Portainer een <strong><code>--admin-password-file<\/code><\/strong>-vlag die de admin-gebruiker vanuit een bestand aanmaakt wanneer de container voor het eerst start \u2014 zodat er geen scherm voor het aanmaken van een admin is om tegen de klok te halen. De <a href=\"https:\/\/docs.portainer.io\/advanced\/cli\" target=\"_blank\">CLI-configuratiedocumentatie<\/a> van Portainer behandelt de syntaxis. Voor een eenmalige VPS-installatie is de herstarttruc prima.<\/p>\n\n\n\n<h2 id=\"h-how-do-you-stop-docker-from-bypassing-your-firewall\" class=\"wp-block-heading\">Hoe Voorkom Je Dat Docker Je Firewall Omzeilt?<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1229\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall.webp\" alt=\"Vergelijking van Docker-firewall: zonder DOCKER-USER-regel is onbeperkte toegang tot containers mogelijk\" class=\"wp-image-82013 lazyload\" data-srcset=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall.webp 1600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall-300x230.webp 300w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall-1024x787.webp 1024w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall-768x590.webp 768w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall-1536x1180.webp 1536w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall-600x461.webp 600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall-1200x922.webp 1200w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall-730x561.webp 730w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall-1460x1121.webp 1460w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall-784x602.webp 784w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall-1568x1204.webp 1568w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall-877x674.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1229;\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Dat heb je al gedaan, in stap 4. Hier lees je wat er echt is gebeurd, hoe je bewust poorten opent en hoe je bewijst dat het werkt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Het probleem: wanneer je de poort van een container publiceert met <strong><code>-p 80:80<\/code><\/strong>, is die poort bereikbaar vanaf het openbare internet, zelfs als <strong>ufw status <\/strong>poort 80 als geweigerd toont. Volgens de <a target=\"_blank\" href=\"https:\/\/docs.docker.com\/engine\/network\/packet-filtering-firewalls\/\">packet-filtering-documentatie van Docker<\/a>: &#8220;Docker routeert containerverkeer in de nat-tabel, wat betekent dat pakketten worden omgeleid voordat ze de INPUT- en OUTPUT-ketens bereiken die ufw gebruikt.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">UFW is niet kapot. Het staat gewoon in de verkeerde gang.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De oplossing waar Docker zelf naar verwijst is de <a target=\"_blank\" href=\"https:\/\/docs.docker.com\/engine\/network\/firewall-iptables\/\"><strong>DOCKER-USER<\/strong> iptables-keten<\/a> \u2014 een keten die Docker speciaal aanmaakt voor door gebruikers gedefinieerde regels en die wordt verwerkt v\u00f3\u00f3r de regels in de eigen ketens van Docker. Het <strong>ufw-docker<\/strong>-script dat je in stap 4 hebt ge\u00efnstalleerd, koppelt UFW aan die keten door een regelblok (tussen de markeringen <strong># BEGIN UFW AND DOCKER<\/strong> en <strong># END UFW AND DOCKER<\/strong>) toe te voegen aan <strong>\/etc\/ufw\/after.rules<\/strong>, zodat het samen met de rest van je UFW-configuratie wordt geladen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Om bewust een containerpoort voor het publiek te openen<\/strong> \u2014 bijvoorbeeld een webapp op containerpoort 80 \u2014 gebruik je een route-regel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw route allow proto tcp from any to any port 80<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">E\u00e9n valkuil waar de ufw-docker-documentatie op wijst: de regel gebruikt de <em>container<\/em>poort, niet de hostpoort. Als je hebt gepubliceerd met <strong><code>-p 8080:80<\/code><\/strong>, is de regel hierboven (poort 80) de juiste, niet poort 8080.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Om van buitenaf te verifi\u00ebren<\/strong>, test je vanaf een netwerk dat niet op je toegestane lijst staat \u2014 een hotspot op je telefoon werkt. Dit zou een time-out moeten geven in plaats van de inlogpagina van Portainer te tonen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -k --max-time 5 https:\/\/YOUR_VPS_IP:9443\n\n# For IPv6, enclose the address in square brackets:\ncurl -k --max-time 5 'https:\/\/[YOUR_VPS_IPV6]:9443'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Voer hetzelfde commando uit vanaf het IP dat je in stap 4 hebt toegestaan, en je zou HTML terug moeten krijgen. Dat UFW &#8220;denied&#8221; zegt, is een bewering; een time-out vanaf een vreemd netwerk is bewijs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Om alles ongedaan te maken<\/strong>, voer je <strong><code>sudo ufw-docker uninstall<\/code><\/strong> uit, wat volgens de documentatie van het project je UFW-configuratie herstelt en de ge\u00efnstalleerde bestanden verwijdert, en daarna <strong><code>sudo ufw reload<\/code><\/strong>. Je kunt ook het blok tussen de markeringen <strong># BEGIN UFW AND DOCKER<\/strong> en <strong># END UFW AND DOCKER<\/strong> in <strong>\/etc\/ufw\/after.rules<\/strong> met de hand verwijderen en UFW herladen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Deze valkuil vangt scherpe engineers op persoonlijke machines en productieservers evengoed: UFW zegt het een, het openbare internet zegt iets anders, en de waarheid staat in iptables. Als je liever hebt dat Portainer helemaal geen openbare poort heeft, <a target=\"_blank\" href=\"https:\/\/www.portainer.io\/how-to\/how-to-secure-your-portainer-installation\">zet er dan een VPN-tunnel voor<\/a> zoals WireGuard.<\/p>\n\n\n\n<h2 id=\"h-what-should-you-lock-down-right-after-the-first-login\" class=\"wp-block-heading\">Wat Moet Je Beveiligen Direct Na Het Eerste Inloggen?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Je bent binnen. Vijf dingen die de moeite waard zijn om te doen voordat je dat browsertabblad sluit \u2014 de eerste vier komen rechtstreeks uit de eigen <a target=\"_blank\" href=\"https:\/\/www.portainer.io\/how-to\/how-to-secure-your-portainer-installation\">beveiligingsgids<\/a> van Portainer:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Zet Force HTTPS only aan.<\/strong> De installatie in deze gids publiceert alleen poort 9443, dus er is sowieso geen HTTP-poort blootgesteld. Door de schakelaar <em>Force HTTPS only<\/em> onder <em>Settings \u2192 SSL Certificate<\/em> om te zetten, leg je dat vast: volgens de <a target=\"_blank\" href=\"https:\/\/docs.portainer.io\/admin\/settings\/general\">instellingendocumentatie van Portainer<\/a> schakelt dit het luisteren op de oude HTTP-poort (9000) volledig uit, zodat een toekomstige herimplementatie die <strong><code>-p 9000:9000<\/code><\/strong> toevoegt geen onversleuteld pad kan heropenen.<\/li>\n\n\n\n<li><strong>Vervang het zelfondertekende certificaat.<\/strong> Upload een certificaat dat je hebt gegenereerd, of plaats Portainer achter een NGINX reverse proxy met een Let&#8217;s Encrypt-certificaat. Na de eerste dag wordt het telkens doorklikken van de browserwaarschuwing een gewoonte waar je spijt van krijgt.<\/li>\n\n\n\n<li><strong>Gebruik een echte beheerdersnaam.<\/strong> Als je de standaard gebruikersnaam admin gebruikt, hoeft een aanvaller \u00e9\u00e9n inloggegeven minder te achterhalen. Kies iets dat specifiek voor jou is.<\/li>\n\n\n\n<li><strong>Beperk de UI tot een VPN.<\/strong> Portainer achter een WireGuard-VPN draaien is het patroon waar de beveiligingsgids van Portainer naar verwijst. Een 9443 die beperkt is tot je bron-IP (stap 4) is goed. Een 9443 die alleen bereikbaar is op een priv\u00e9netwerk is beter.<\/li>\n\n\n\n<li><strong>Audit de Docker-socketkoppeling.<\/strong> Alles met toegang tot <strong><code>\/var\/run\/docker.sock<\/code><\/strong> bestuurt de Docker-daemon, en daarmee de host. Mount de socket <em>niet<\/em> 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 \u2014 en overweeg een socketproxy als het antwoord &#8220;voor monitoring&#8221; is.<\/li>\n<\/ul>\n\n\n\n<h2 id=\"h-how-do-you-actually-use-portainer-day-to-day\" class=\"wp-block-heading\">Hoe Gebruik Je Portainer Dagelijks?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">De beloning voor het installeren van Portainer is de dag dat je stopt met inloggen via SSH om een ondeugende container te herstarten, en in plaats daarvan op een knop begint te klikken. De grotere beloning is stackbeheer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Een Portainer-stack is een multi-container app gedefinieerd door een Docker Compose-bestand. Portainer kan ondersteunde Docker Compose-configuraties als stacks implementeren via vier routes die in de <a target=\"_blank\" href=\"https:\/\/docs.portainer.io\/user\/docker\/stacks\/add\">offici\u00eble stacks-documentatie<\/a> staan:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Plak Compose in de webeditor<\/li>\n\n\n\n<li>Upload een Compose-bestand<\/li>\n\n\n\n<li>Wijs Portainer naar een Git-repository<\/li>\n\n\n\n<li>Implementeer vanuit een aangepaste template<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"2560\" height=\"1181\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/05-How-Do-You-Actually-Use-Portainer-Day-to-Day_-scaled.gif\" alt=\"Portainer.io-dashboard met Stack Details, containertabel, logs en statistieken\" class=\"wp-image-82014 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1181;\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Het Git-pad is het pad dat telt. Je wijst Portainer naar een publieke of geauthenticeerde repo en een pad naar <strong>docker-compose.yml<\/strong>, en zet daarna GitOps-updates aan. Portainer controleert de repo met een ophaalinterval dat jij instelt, of geeft je een webhook-URL om toe te voegen aan je Git-host (bijvoorbeeld getriggerd vanuit een GitHub Action). Wanneer het Compose-bestand upstream verandert, haalt Portainer het op en implementeert het automatisch opnieuw. En ja, dit werkt in Community Edition \u2014 op de pagina met stacks-documentatie heeft alleen de optie voor volumes met relatieve paden het Business Edition-label.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dat is de zelfgehoste versie van &#8220;deploy on push&#8221; zonder dat je een PaaS voor dat voorrecht hoeft te betalen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De kleinere dagelijkse voordelen tellen ook mee. Denk aan logs in een paneel in plaats van ze via de opdrachtregel te volgen, herstarts met \u00e9\u00e9n klik, het opnieuw opbouwen van een stack met een knop, en resourcegrafieken die je in drie seconden kunt scannen in plaats van Docker stats uit te voeren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Als je later externe hosts toevoegt via Edge Agents, komt poort 8000 weer in beeld \u2014 de <a href=\"#h-can-portainer-manage-multiple-docker-hosts\">FAQ hieronder<\/a> behandelt de herimplementatie en de firewallregel.<\/p>\n\n\n\n<h2 id=\"h-how-do-you-back-up-portainer-and-your-containers\" class=\"wp-block-heading\">Hoe Maak Je Een Back-up Van Portainer En Je Containers?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Een volume is persistentie, geen back-up. Het volume <strong>portainer_data<\/strong> uit stap 5 overleeft containerupgrades, maar staat op dezelfde schijf als al het andere \u2014 dus een echt back-upplan bestaat uit drie delen, en alle drie verlaten de VPS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. De eigen configuratie van Portainer.<\/strong> Ga in de UI naar <em>Settings \u2192 Back up Portainer<\/em>, laat de standaardoptie <em>Download backup file<\/em> staan en klik op <em>Download backup<\/em>. Volgens de <a target=\"_blank\" href=\"https:\/\/docs.portainer.io\/admin\/settings\/general\">instellingendocumentatie van Portainer<\/a> downloadt dat een tar.gz van alles wat Portainer op zijn \/data-volume opslaat, optioneel versleuteld met een wachtwoord, en dat archief is alles wat je nodig hebt om Portainer te herstellen. De documentatie is net zo duidelijk over de reikwijdte: het maakt <em>alleen<\/em> een back-up van de Portainer-configuratie, niet van de containers, stacks of volumes die je hebt ge\u00efmplementeerd. (Geplande back-ups naar S3 bestaan, maar alleen in Business Edition \u2014 zet in CE een terugkerende herinnering in je agenda.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. Je applicatiegegevens.<\/strong> De <a target=\"_blank\" href=\"https:\/\/docs.docker.com\/engine\/storage\/volumes\/\">volumedocumentatie<\/a> van Docker noemt benoemde volumes de voorkeursmanier om containergegevens persistent te bewaren, en makkelijker te back-uppen of te migreren dan bind mounts. Een alleen-lezen mount voorkomt alleen dat de <em>back-up<\/em>container schrijft \u2014 de app zelf kan halverwege het archiveren nog steeds naar het volume schrijven en je een inconsistente kopie geven. Stop dus eerst de container van de app (<strong><code>sudo docker stop myapp<\/code><\/strong>), of gebruik het eigen ondersteunde back-upmechanisme van de app. Mount het volume daarna alleen-lezen in een wegwerpcontainer, pak het in met tar en start de app daarna weer (vul je eigen namen in):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker run --rm \\\n  -v myapp_data:\/source:ro \\\n  -v \"$PWD\":\/backup \\\n  alpine tar czf \/backup\/myapp_data.tgz -C \/source .<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Gebruik voor databases liever de eigen dumptool van de database (pg_dump, mysqldump) dan live databestanden te kopi\u00ebren, zodat je geen bestand archiveert dat halverwege een schrijfactie is. Verstuur de archieven daarna volgens een schema van de box af \u2014 met rsync of scp naar een andere machine, of push ze naar objectopslag. Een back-up die op de schijf staat waarvan hij een back-up maakt, verdwijnt samen met die schijf.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. Je Compose-bestanden en secrets.<\/strong> Als je stacks vanuit Git implementeert, staan de Compose-bestanden al buiten de host. Wat Git <em>niet<\/em> bevat, is alles wat je nooit hebt gecommit: .env-bestanden, API-sleutels en wachtwoorden die je bij het implementeren hebt opgegeven. Mappen die via een bind mount zijn gekoppeld, vallen ook buiten de volumeback-up hierboven. Inventariseer die apart en maak er versleuteld een back-up van.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Test daarna het herstel, voordat je het nodig hebt.<\/strong> Volgens de documentatie van Portainer werkt het herstellen van een configuratie alleen op een nieuwe instantie: implementeer een nieuwe Portainer-container met een leeg datavolume (een wegwerp-VPS of je laptop is prima), kies <em>Restore Portainer from backup<\/em> tijdens de eerste installatie en controleer of je kunt inloggen met je oude inloggegevens en je stackdefinities ziet. Die oefening dekt alleen deel 1 \u2014 de configuratie van Portainer. Deel 2 en 3 hebben per app hun eigen test nodig: herstel een archief in een nieuw volume, start de app ermee en controleer of de gegevens er echt staan. Een ongeteste back-up is niet meer dan hoop met een bestandsnaam.<\/p>\n\n\n\n<h2 id=\"h-what-does-portainer-cost-and-when-does-free-stop-being-free\" class=\"wp-block-heading\">Wat Kost Portainer? (En Wanneer Is Gratis Niet Meer Gratis?)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Portainer is dubbel gratis. Community Edition is gratis en <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/open-source-vs-proprietary\/\">open source<\/a> (zlib-licentie), zonder dat je een licentiesleutel nodig hebt. En Portainer Business Edition is <a target=\"_blank\" href=\"https:\/\/www.portainer.io\/take-3\">voor altijd gratis voor maximaal 3 nodes<\/a>: alle Business-functies, geen tijdslimiet, geen creditcard. Je registreert je voor een gratis licentiesleutel in plaats van te betalen.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Editie<\/strong><\/th><th><strong>Kosten<\/strong><\/th><th><strong>Nodes<\/strong><\/th><th><strong>Het beste voor<\/strong><\/th><\/tr><\/thead><tbody><tr><td>Community Edition<\/td><td>Gratis, open-source<\/td><td>Geen licenties per node<\/td><td>Persoonlijke projecten, homelab, zelf-hosters met \u00e9\u00e9n VPS<\/td><\/tr><tr><td>Business Edition \u2014 3 nodes gratis<\/td><td>Gratis, zonder tijdslimiet<\/td><td>Tot 3<\/td><td>Kleine homelabs die Business-functies zoals RBAC willen<\/td><\/tr><tr><td>Home &amp; Student<\/td><td>$155\/jaar<\/td><td>Tot 15<\/td><td>Grotere homelabs en studenten; strikt niet-commercieel<\/td><\/tr><tr><td>Business Starter<\/td><td>Vanaf $105\/maand<\/td><td>5, 10 of 15<\/td><td>Kleine teams die echte infrastructuur beheren (communityondersteuning)<\/td><\/tr><tr><td>Business Scale<\/td><td>Vanaf $209\/maand<\/td><td>5 tot 35<\/td><td>Groeiende teams die 9&#215;5-ondersteuning nodig hebben<\/td><\/tr><tr><td>Enterprise<\/td><td>Offerte<\/td><td>Op maat<\/td><td>Behoefte aan compliance en ondersteuning met prioriteit<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">De prijzen komen van de <a target=\"_blank\" href=\"https:\/\/www.portainer.io\/pricing\">prijspagina van Portainer<\/a> (per augustus 2026); Starter en Scale vereisen een jaarlijkse verbintenis.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Welke moet je dan kiezen? Voor \u00e9\u00e9n VPS met \u00e9\u00e9n beheerder: <strong>Community Edition<\/strong>. Die is open source, vereist geen registratie en doet alles in deze gids, inclusief Git-implementaties. Als je op rollen gebaseerde toegangscontrole (RBAC) wilt voor een tweede gebruiker, of al twee of drie machines draait, kies dan in plaats daarvan de gratis Business-tier voor 3 nodes \u2014 het is dezelfde software met de Business-functies ontgrendeld, gratis zolang je op drie nodes of minder blijft. De betaalde plannen hebben pas zin als je echte aantallen nodes beheert binnen een team \u2014 en controleer de ondersteuningsregel voordat je aanneemt dat betaald ook ondersteund betekent: per augustus 2026 vermeldt de prijspagina van Portainer communityondersteuning bij het Starter-plan, 9&#215;5-ondersteuning met reactie op de volgende werkdag vanaf het Scale-plan, en ondersteuning met prioriteit bij Enterprise.<\/p>\n\n\n\n<h2 id=\"h-should-you-add-portainer-or-skip-it\" class=\"wp-block-heading\">Moet Je Portainer Toevoegen Of Overslaan?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Hier is het eerlijke antwoord in twee zinnen:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705 Als je deze server gaat delen, vanuit Git gaat implementeren, of over een jaar meer dan drie containers draait, installeer dan Portainer terwijl de host nieuw is en je gewoonten zich er nog omheen vormen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c Als je \u00e9\u00e9n rustige app draait en je je prettig voelt in de terminal, zul je de UI die je niet hebt ge\u00efnstalleerd niet missen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De echte vraag is niet Portainer versus geen Portainer. Het gaat erom of self-hosting \u00fcberhaupt de juiste keuze voor je is \u2014 en dat heb je beantwoord toen je deze tab opende.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Een 4 GB VPS, Docker en Portainer CE zijn genoeg om echt te beginnen met self-hosting: kies je apps, tel hun gedocumenteerde vereisten op en laat het rekenblad \u2014 niet het verlanglijstje \u2014 bepalen wanneer de box moet groeien.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dat is geen slechte deal.<\/p>\n\n\n\n<h2 id=\"h-frequently-asked-questions-about-docker-and-portainer\" class=\"wp-block-heading\">Veelgestelde Vragen Over Docker En Portainer<\/h2>\n\n\n\n<h3 id=\"h-can-you-run-docker-on-a-vps\" class=\"wp-block-heading\">Kun je Docker op een VPS draaien?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ja. Een VPS met root-toegang is een van de meest flexibele plekken om Docker te draaien: je installeert Docker Engine op het Linux-besturingssysteem van de server, en elke app draait in zijn eigen container. Het onderscheid waar mensen over struikelen, is dat de VPS de gehuurde virtuele server is, terwijl Docker de software is die je erop draait om applicaties in containers te isoleren. Elke VPS met root-toegang en genoeg RAM voor je containers werkt \u2014 <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/nl\/hosting\/vps\/docker\/\">DreamHost VPS Hosting<\/a> biedt zelfs een vooraf ge\u00efnstalleerde Docker + Portainer-image.<\/p>\n\n\n\n<h3 id=\"h-what-is-portainer-used-for\" class=\"wp-block-heading\">Waarvoor wordt Portainer gebruikt?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Portainer wordt gebruikt voor het beheren van Docker-, Docker Swarm- en Kubernetes-containers via een webinterface. Het draait zelf als een Docker-container, maakt verbinding met de Docker-socket van de host en geeft je een browserweergave en controle over elke andere container op de host \u2014 het starten en stoppen van containers, het implementeren van multi-container stacks, het bekijken van logs en het beheren van gebruikerstoegang zonder via SSH in te loggen.<\/p>\n\n\n\n<h3 id=\"h-do-i-need-portainer-if-i-have-docker\" class=\"wp-block-heading\">Heb ik Portainer nodig als ik Docker heb?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">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.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Portainer bewijst zijn waarde als je met 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 \u00e9\u00e9n of twee stabiele containers draait en je vertrouwd bent met Docker Compose.<\/p>\n\n\n\n<h3 id=\"h-what-port-does-portainer-run-on\" class=\"wp-block-heading\">Op welke poort draait Portainer?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Portainer biedt zijn web-UI standaard aan via HTTPS op poort 9443. Het offici\u00eble installatiecommando in <a href=\"https:\/\/docs.portainer.io\/start\/install-ce\/server\/docker\/linux\" target=\"_blank\">de Linux-installatiedocumentatie van Portainer<\/a> publiceert ook poort 8000, een TCP-tunnel die alleen door Edge Agents wordt gebruikt als je later externe Docker-hosts verbindt \u2014 die is optioneel, en daarom laat de installatie op \u00e9\u00e9n host in deze gids de vlag <strong><code>-p 8000:8000<\/code><\/strong> helemaal weg.<\/p>\n\n\n\n<h3 id=\"h-how-much-ram-does-portainer-need\" class=\"wp-block-heading\">Hoeveel RAM heeft Portainer nodig?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">De huidige systeemvereisten van Portainer noemen geen RAM-minimum \u2014 de Server draait als een lichtgewicht container, en de prestatierichtlijnen in de documentatie gaan over schijfopslag, niet over geheugen. Bepaal je RAM door de gedocumenteerde vereisten van het besturingssysteem, de Docker-daemon en elke app die je gaat draaien bij elkaar op te tellen, en houd daarna ruimte over voor pieken.<br><br>Bij DreamHost wordt ons instapplan voor <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/nl\/hosting\/vps\/\">VPS Hosting<\/a>, Stack 4, geleverd met 4 GB RAM \u2014 een startpunt voor een kleine stack van containers voor zijprojecten zoals <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/ghost-self-hosted\/\">Ghost<\/a> of <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/n8n-self-hosted\/\">n8n<\/a>. Of 4 GB genoeg is, hangt af van de apps die je echt draait; als de rekensom eroverheen groeit, kun je overstappen naar een groter Stack-plan.<\/p>\n\n\n\n<h3 id=\"h-is-portainer-free\" class=\"wp-block-heading\">Is Portainer gratis?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ja, zelfs dubbel. Portainer Community Edition is gratis en <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/open-source-vs-proprietary\/\">open-source<\/a>, zonder dat je een licentiesleutel nodig hebt. Portainer Business Edition (die functies toevoegt zoals op rollen gebaseerde toegangscontrole) is ook gratis voor maximaal 3 nodes, met alle functies en zonder tijdslimiet; je registreert je voor een gratis licentiesleutel in plaats van te betalen. Boven drie nodes begint de Business-prijs bij $105\/maand op het Starter-plan volgens de <a target=\"_blank\" href=\"https:\/\/www.portainer.io\/pricing\">prijspagina van Portainer<\/a> (per augustus 2026), en een Home &amp; Student-licentie van $155\/jaar dekt niet-commerci\u00eble homelabs tot 15 nodes.<\/p>\n\n\n\n<h3 id=\"h-can-portainer-manage-multiple-docker-hosts\" class=\"wp-block-heading\">Kan Portainer meerdere Docker-hosts beheren?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ja, Portainer beheert meerdere Docker-hosts via Agents en Edge Agents. De standaard Agent luistert op elke externe host op poort 9001; Edge Agents maken in plaats daarvan een uitgaande verbinding met tunnelpoort 8000 van de Portainer Server, en volgens de documentatie over vereisten van Portainer hebben ze zelf geen open inkomende poorten nodig. Voor een zelf-hoster met \u00e9\u00e9n VPS is niets daarvan nodig \u2014 en daarom laat de installatie in deze gids de vlag voor poort 8000 weg die het offici\u00eble commando van Portainer bevat. Op de dag dat je een externe omgeving via een Edge Agent verbindt, implementeer je Portainer opnieuw met <strong><code>-p 8000:8000<\/code><\/strong> erbij, en sta je daarna containerpoort 8000 toe via UFW vanaf het openbare uitgaande IP van elke Edge Agent, waarbij je hier <strong><code>EDGE_AGENT_IP<\/code><\/strong> vervangt: <strong><code>sudo ufw route allow proto tcp from EDGE_AGENT_IP to any port 8000<\/code><\/strong>.<\/p>\n\n\n\n<h3 id=\"h-does-docker-bypass-ufw-on-a-vps\" class=\"wp-block-heading\">Omzeilt Docker UFW op een VPS?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ja, Docker omzeilt standaard UFW omdat Docker het containerverkeer beheert op de iptables NAT-laag, die v\u00f3\u00f3r de INPUT- en OUTPUT-ketens van UFW zit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Volgens de <a target=\"_blank\" href=\"https:\/\/docs.docker.com\/engine\/network\/packet-filtering-firewalls\/\">packet-filtering-documentatie van Docker<\/a> &#8220;worden pakketten omgeleid voordat ze de INPUT- en OUTPUT-ketens bereiken die ufw gebruikt.&#8221; De oplossing is om je regels toe te voegen aan de <a target=\"_blank\" href=\"https:\/\/docs.docker.com\/engine\/network\/firewall-iptables\/\"><strong>DOCKER-USER<\/strong> iptables-keten<\/a>, en een communitytool om UFW daaraan te koppelen is <a target=\"_blank\" href=\"https:\/\/github.com\/chaifeng\/ufw-docker\">chaifeng\/ufw-docker<\/a> \u2014 in stap 4 van deze gids ge\u00efnstalleerd, nog voordat Portainer ooit start.<\/p>\n\n\n\n\n\n\n\n\n\n<div class=\"article-cta-shared article-cta-small article-cta--product\">\n\t<div class=\"tr-img-wrap-outer jsLoading\"><img decoding=\"async\" class=\"js-img-lazy \" src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/themes\/blog2018\/assets\/img\/lazy-loading-transparent.webp\" data-srcset=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/cta_image_a-877x522.webp 1x, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/cta_image_a.webp 2x\"  \/><\/div>\n\n\t<a href='https:\/\/www.dreamhost.com\/hosting\/vps\/' class='link-top' target='_blank' rel='noopener noreferrer'>\n\t\t<span>VPS<\/span>\n\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 384 512\" width=\"15\"><path d=\"M342.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L274.7 256 105.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"\/><\/svg>\n\t<\/a>\n\n\t<div class=\"content-btm\">\n\t\t<h2 class=\"h2--md\">\n\t\t\tOwn Your Entire Stack. Apps, AI, Databases, and More.\n\t\t<\/h2>\n\t\t<p class=\"p--md\">\n\t\t\tKeep every credential and conversation on a server you control, with NVMe speed and unmetered bandwidth built in.\n\t\t<\/p>\n\n\t\t        <a\n            href=\"https:\/\/www.dreamhost.com\/hosting\/vps\/\"\n                        class=\"btn btn--white-outline btn--sm btn--round\"\n                                    target=\"_blank\"\n            rel=\"noopener noreferrer\"\n            >\n                            Explore VPS Hosting Plans                    <\/a>\n\n\t<\/div>\n<\/div>\n\n\n\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Kun je Docker op een VPS draaien?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Ja. Een VPS met root-toegang is een van de meest flexibele plekken om Docker te draaien: je installeert Docker Engine op het Linux-besturingssysteem van de server, en elke app draait in zijn eigen container. De VPS is de gehuurde virtuele server; Docker is de software die je erop draait om applicaties in containers te isoleren.\"}},{\"@type\":\"Question\",\"name\":\"Waarvoor wordt Portainer gebruikt?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Portainer wordt gebruikt voor het beheren van Docker-, Docker Swarm- en Kubernetes-containers via een webinterface. Het draait zelf als een Docker-container, maakt verbinding met de Docker-socket van de host en geeft je een browserweergave en controle over elke andere container op de host \u2014 het starten en stoppen van containers, het implementeren van multi-container stacks, het bekijken van logs en het beheren van gebruikerstoegang zonder via SSH in te loggen.\"}},{\"@type\":\"Question\",\"name\":\"Heb ik Portainer nodig als ik Docker heb?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"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.\"}},{\"@type\":\"Question\",\"name\":\"Op welke poort draait Portainer?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Portainer biedt zijn web-UI standaard aan via HTTPS op poort 9443. Het offici\u00eble installatiecommando publiceert ook poort 8000, een TCP-tunnel die alleen door Edge Agents wordt gebruikt als je later externe Docker-hosts verbindt \u2014 bij een installatie op \u00e9\u00e9n host is die optioneel.\"}},{\"@type\":\"Question\",\"name\":\"Hoeveel RAM heeft Portainer nodig?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"De huidige systeemvereisten van Portainer noemen geen RAM-minimum \u2014 de Server draait als een lichtgewicht container, en de prestatierichtlijnen in de documentatie gaan over schijfopslag, niet over geheugen. Bepaal je RAM door de gedocumenteerde vereisten van het besturingssysteem, de Docker-daemon en elke app die je gaat draaien bij elkaar op te tellen, en houd daarna ruimte over voor pieken.\"}},{\"@type\":\"Question\",\"name\":\"Is Portainer gratis?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Ja, zelfs dubbel. Portainer Community Edition is gratis en open source, zonder dat je een licentiesleutel nodig hebt. Portainer Business Edition is ook gratis voor maximaal 3 nodes, met alle functies en zonder tijdslimiet; boven drie nodes begint de Business-prijs bij $105\/maand op het Starter-plan (per augustus 2026).\"}},{\"@type\":\"Question\",\"name\":\"Kan Portainer meerdere Docker-hosts beheren?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Ja, Portainer beheert meerdere Docker-hosts via Agents en Edge Agents. De standaard Agent luistert op elke externe host op poort 9001; Edge Agents maken in plaats daarvan een uitgaande verbinding met tunnelpoort 8000 van de Portainer Server en hebben zelf geen open inkomende poorten nodig.\"}},{\"@type\":\"Question\",\"name\":\"Omzeilt Docker UFW op een VPS?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Ja, Docker omzeilt standaard UFW omdat Docker het containerverkeer beheert op de iptables NAT-laag, die v\u00f3\u00f3r de INPUT- en OUTPUT-ketens van UFW zit. De oplossing is om regels toe te voegen aan de iptables-keten DOCKER-USER; een communitytool om UFW daaraan te koppelen is chaifeng\/ufw-docker.\"}}]},{\"@type\":\"HowTo\",\"name\":\"Hoe installeer je Docker en Portainer op een VPS\",\"description\":\"Installeer Docker en Portainer Community Edition in zeven stappen op een Ubuntu-VPS, van het kiezen van een Linux-distributie tot het aanmaken van het admin-account. De download- en installatietijd hangt af van je VPS en je netwerkverbinding.\",\"step\":[{\"@type\":\"HowToStep\",\"position\":1,\"name\":\"Kies een Linux-distributie\",\"text\":\"Deze gids gebruikt Ubuntu 24.04 LTS. Docker Engine ondersteunt Ubuntu 22.04, 24.04 en 26.04 LTS (per augustus 2026). Debian en distributies uit de RHEL-familie zoals AlmaLinux hebben hun eigen installatiepaden in de documentatie van Docker, en de installatiedocumentatie van Portainer gaat ervan uit dat SELinux is uitgeschakeld op systemen uit de RHEL-familie.\"},{\"@type\":\"HowToStep\",\"position\":2,\"name\":\"Installeer Docker vanuit de offici\u00eble repository\",\"text\":\"Doe geen apt install docker.io \u2014 de eigen installatiedocumentatie van Docker noemt docker.io bij de onoffici\u00eble pakketten die je eerst moet verwijderen. Verwijder conflicterende pakketten, voeg de GPG-sleutel en apt-repository van Docker toe volgens de offici\u00eble Docker-installatiedocumentatie, en voer dan uit: sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\"},{\"@type\":\"HowToStep\",\"position\":3,\"name\":\"Controleer of Docker draait\",\"text\":\"Voer sudo docker run hello-world uit. Als je het bericht \\\"Hello from Docker!\\\" niet krijgt, repareer dan de daemon voordat je Portainer eroverheen legt.\"},{\"@type\":\"HowToStep\",\"position\":4,\"name\":\"Koppel UFW aan Docker voordat je Portainer start\",\"text\":\"Door Docker gepubliceerde poorten omzeilen standaard UFW. Schakel UFW in (sta eerst SSH toe), installeer het script chaifeng\/ufw-docker, voer ufw-docker install uit, herlaad UFW en voeg een allow-regel op bron-IP toe voor containerpoort 9443 \u2014 sudo ufw route allow proto tcp from YOUR_HOME_IP to any port 9443 \u2014 voordat Portainer start, zodat de UI tijdens het vijfminutenvenster voor de eerste admin nooit publiek bereikbaar is.\"},{\"@type\":\"HowToStep\",\"position\":5,\"name\":\"Maak een persistent volume voor de gegevens van Portainer\",\"text\":\"Voer sudo 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.\"},{\"@type\":\"HowToStep\",\"position\":6,\"name\":\"Start Portainer Community Edition\",\"text\":\"Gebruik het offici\u00eble installatiecommando uit de Linux-installatiedocumentatie van Portainer, zonder de optionele tunnelpoort voor de Edge Agent: sudo docker run -d -p 9443:9443 --name portainer --restart=always -v \/var\/run\/docker.sock:\/var\/run\/docker.sock -v portainer_data:\/data portainer\/portainer-ce:lts. De vlag -d draait het op de achtergrond, -p 9443:9443 is de Portainer web-UI op HTTPS, --restart=always start Portainer opnieuw na een reboot, de -v-vlaggen zijn de socketbinding en het persistente volume uit stap 5, en de tag :lts is de Long Term Support-releaselijn van Portainer.\"},{\"@type\":\"HowToStep\",\"position\":7,\"name\":\"Open de Portainer UI en maak het admin-account aan\",\"text\":\"Richt je browser op https:\/\/YOUR_VPS_IP:9443 vanaf het IP-adres dat je in stap 4 hebt toegestaan. Klik door de waarschuwing van het zelfondertekende certificaat. Je komt op het scherm \\\"de eerste administratorgebruiker aanmaken\\\". Kies een gebruikersnaam die niet admin is, stel een sterk wachtwoord in en bewaar het op een echte plek.\"}]}]}<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Draai Docker op een VPS met de web-UI van Portainer aan de voorkant. Installatiestappen, grootte, beveiliging en de valkuilen die elke installatiehandleiding overslaat. Ongeveer 30 minuten van begin tot eind.<\/p>\n","protected":false},"author":2,"featured_media":82008,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_yoast_wpseo_opengraph-title":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_twitter-title":"","_yoast_wpseo_twitter-description":"","toc_headlines":"[[\"h-what-is-portainer-exactly\",\"Wat Is Portainer Precies?\"],[\"h-do-you-need-portainer-if-you-already-have-docker\",\"Heb Je Portainer Nodig Als Je Al Docker Hebt?\"],[\"h-how-big-a-vps-do-you-need-to-run-docker-and-portainer\",\"Hoe Groot Moet Een VPS Zijn Om Docker En Portainer Te Draaien?\"],[\"h-how-do-you-install-docker-and-portainer-on-a-vps\",\"Hoe Installeer Je Docker en Portainer Op Een VPS?\"],[\"h-why-did-portainer-just-time-out-on-me\",\"Waarom Heeft Portainer Zojuist Een Time-out Op Mij Gehad?\"],[\"h-how-do-you-stop-docker-from-bypassing-your-firewall\",\"Hoe Stop Je Docker Om Je Firewall Te Omzeilen?\"],[\"h-what-should-you-lock-down-right-after-the-first-login\",\"Wat Moet Je Beveiligen Direct Na De Eerste Inlog?\"],[\"h-how-do-you-actually-use-portainer-day-to-day\",\"Hoe Gebruik Je Portainer Dagelijks?\"],[\"h-what-does-portainer-cost-and-when-does-free-stop-being-free\",\"Wat Kost Portainer? (En Wanneer Is Gratis Niet Meer Gratis?)\"],[\"h-should-you-add-portainer-or-skip-it\",\"Moet Je Portainer Toevoegen Of Overslaan?\"],[\"h-frequently-asked-questions-about-docker-and-portainer\",\"Veelgestelde Vragen Over Docker En Portainer\"]]","hide_toc":false,"show_updated_at":"0","footnotes":""},"categories":[14932,14936,14938],"tags":[],"class_list":["post-82080","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials-nl","category-vps-hosting-nl","category-web-hosting-nl"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Hoe Docker en Portainer op een VPS te draaien (2026 Gids) - DreamHost Blog<\/title>\n<meta name=\"description\" content=\"Draai Docker op een VPS met Portainer&#039;s web-UI aan de voorkant. Installatiestappen, maatvoering, beveiliging en de valkuilen die elke installatiehandleiding overslaat. Ongeveer 30 minuten van begin tot eind.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dreamhost.com\/blog\/nl\/hoe-docker-en-portainer-op-een-vps-te-draaien-2026-gids-nl\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Hoe Docker en Portainer op een VPS te draaien (2026 Gids) - DreamHost Blog\" \/>\n<meta property=\"og:description\" content=\"Draai Docker op een VPS met Portainer&#039;s web-UI aan de voorkant. Installatiestappen, maatvoering, beveiliging en de valkuilen die elke installatiehandleiding overslaat. Ongeveer 30 minuten van begin tot eind.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dreamhost.com\/blog\/nl\/hoe-docker-en-portainer-op-een-vps-te-draaien-2026-gids-nl\/\" \/>\n<meta property=\"og:site_name\" content=\"DreamHost Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DreamHost\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-19T14:30:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-24T22:21:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/1460x1095-BLOG-HERO-Run-Docker-and-Portainer-on-a-VPS-2026-Guide_1x.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"1095\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Dallas Kashuba\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@http:\/\/twitter.com\/dallas\" \/>\n<meta name=\"twitter:site\" content=\"@dreamhost\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dallas Kashuba\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Hoe Docker en Portainer op een VPS te draaien (2026 Gids) - DreamHost Blog","description":"Draai Docker op een VPS met Portainer's web-UI aan de voorkant. Installatiestappen, maatvoering, beveiliging en de valkuilen die elke installatiehandleiding overslaat. Ongeveer 30 minuten van begin tot eind.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dreamhost.com\/blog\/nl\/hoe-docker-en-portainer-op-een-vps-te-draaien-2026-gids-nl\/","og_locale":"en_US","og_type":"article","og_title":"Hoe Docker en Portainer op een VPS te draaien (2026 Gids) - DreamHost Blog","og_description":"Draai Docker op een VPS met Portainer's web-UI aan de voorkant. Installatiestappen, maatvoering, beveiliging en de valkuilen die elke installatiehandleiding overslaat. Ongeveer 30 minuten van begin tot eind.","og_url":"https:\/\/www.dreamhost.com\/blog\/nl\/hoe-docker-en-portainer-op-een-vps-te-draaien-2026-gids-nl\/","og_site_name":"DreamHost Blog","article_publisher":"https:\/\/www.facebook.com\/DreamHost\/","article_published_time":"2026-06-19T14:30:00+00:00","article_modified_time":"2026-09-24T22:21:20+00:00","og_image":[{"width":1460,"height":1095,"url":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/1460x1095-BLOG-HERO-Run-Docker-and-Portainer-on-a-VPS-2026-Guide_1x.webp","type":"image\/webp"}],"author":"Dallas Kashuba","twitter_card":"summary_large_image","twitter_creator":"@http:\/\/twitter.com\/dallas","twitter_site":"@dreamhost","twitter_misc":{"Written by":"Dallas Kashuba","Est. reading time":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dreamhost.com\/blog\/nl\/hoe-docker-en-portainer-op-een-vps-te-draaien-2026-gids-nl\/#article","isPartOf":{"@id":"https:\/\/www.dreamhost.com\/blog\/nl\/hoe-docker-en-portainer-op-een-vps-te-draaien-2026-gids-nl\/"},"author":{"name":"Dallas Kashuba","@id":"https:\/\/www.dreamhost.com\/blog\/#\/schema\/person\/418697d2a49f38f84e7051458118d483"},"headline":"Hoe Docker en Portainer op een VPS te draaien (2026 Gids)","datePublished":"2026-06-19T14:30:00+00:00","dateModified":"2026-09-24T22:21:20+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dreamhost.com\/blog\/nl\/hoe-docker-en-portainer-op-een-vps-te-draaien-2026-gids-nl\/"},"wordCount":5117,"publisher":{"@id":"https:\/\/www.dreamhost.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.dreamhost.com\/blog\/nl\/hoe-docker-en-portainer-op-een-vps-te-draaien-2026-gids-nl\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/1460x1095-BLOG-HERO-Run-Docker-and-Portainer-on-a-VPS-2026-Guide_1x.webp","articleSection":["Handleidingen","VPS Hosting","Web Hosting"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.dreamhost.com\/blog\/nl\/hoe-docker-en-portainer-op-een-vps-te-draaien-2026-gids-nl\/","url":"https:\/\/www.dreamhost.com\/blog\/nl\/hoe-docker-en-portainer-op-een-vps-te-draaien-2026-gids-nl\/","name":"Hoe Docker en Portainer op een VPS te draaien (2026 Gids) - DreamHost Blog","isPartOf":{"@id":"https:\/\/www.dreamhost.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dreamhost.com\/blog\/nl\/hoe-docker-en-portainer-op-een-vps-te-draaien-2026-gids-nl\/#primaryimage"},"image":{"@id":"https:\/\/www.dreamhost.com\/blog\/nl\/hoe-docker-en-portainer-op-een-vps-te-draaien-2026-gids-nl\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/1460x1095-BLOG-HERO-Run-Docker-and-Portainer-on-a-VPS-2026-Guide_1x.webp","datePublished":"2026-06-19T14:30:00+00:00","dateModified":"2026-09-24T22:21:20+00:00","description":"Draai Docker op een VPS met Portainer's web-UI aan de voorkant. Installatiestappen, maatvoering, beveiliging en de valkuilen die elke installatiehandleiding overslaat. Ongeveer 30 minuten van begin tot eind.","breadcrumb":{"@id":"https:\/\/www.dreamhost.com\/blog\/nl\/hoe-docker-en-portainer-op-een-vps-te-draaien-2026-gids-nl\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dreamhost.com\/blog\/nl\/hoe-docker-en-portainer-op-een-vps-te-draaien-2026-gids-nl\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dreamhost.com\/blog\/nl\/hoe-docker-en-portainer-op-een-vps-te-draaien-2026-gids-nl\/#primaryimage","url":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/1460x1095-BLOG-HERO-Run-Docker-and-Portainer-on-a-VPS-2026-Guide_1x.webp","contentUrl":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/1460x1095-BLOG-HERO-Run-Docker-and-Portainer-on-a-VPS-2026-Guide_1x.webp","width":1460,"height":1095,"caption":"How To Run Docker and Portainer on a VPS (2026 Guide)"},{"@type":"BreadcrumbList","@id":"https:\/\/www.dreamhost.com\/blog\/nl\/hoe-docker-en-portainer-op-een-vps-te-draaien-2026-gids-nl\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dhblog2.dream.press\/blog\/"},{"@type":"ListItem","position":2,"name":"Hoe Docker en Portainer op een VPS te draaien (2026 Gids)"}]},{"@type":"WebSite","@id":"https:\/\/www.dreamhost.com\/blog\/#website","url":"https:\/\/www.dreamhost.com\/blog\/","name":"DreamHost Blog","description":"","publisher":{"@id":"https:\/\/www.dreamhost.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dreamhost.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.dreamhost.com\/blog\/#organization","name":"DreamHost","url":"https:\/\/www.dreamhost.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dreamhost.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/dhblog2.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","contentUrl":"https:\/\/dhblog2.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","width":1200,"height":168,"caption":"DreamHost"},"image":{"@id":"https:\/\/www.dreamhost.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DreamHost\/","https:\/\/x.com\/dreamhost","https:\/\/www.instagram.com\/dreamhost\/","https:\/\/www.linkedin.com\/company\/dreamhost\/","https:\/\/www.youtube.com\/user\/dreamhostusa"]},{"@type":"Person","@id":"https:\/\/www.dreamhost.com\/blog\/#\/schema\/person\/418697d2a49f38f84e7051458118d483","name":"Dallas Kashuba","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/05ab6fb1606be97d16c74efb0fba01b3c11e91501dc5f9661bdfbb5c5b0cd113?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/05ab6fb1606be97d16c74efb0fba01b3c11e91501dc5f9661bdfbb5c5b0cd113?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/05ab6fb1606be97d16c74efb0fba01b3c11e91501dc5f9661bdfbb5c5b0cd113?s=96&d=mm&r=g","caption":"Dallas Kashuba"},"description":"Dallas Kashuba co-founded DreamHost while attending Harvey Mudd College and has spent nearly three decades building infrastructure at scale. Today he serves as an advisor, board member, and investor for various tech startups, with a consistent focus on user privacy, open source, and data portability. When he's not thinking about the Open Web, he's probably making music. Follow Dallas on X.","sameAs":["http:\/\/www.idallas.com\/","https:\/\/x.com\/http:\/\/twitter.com\/dallas"],"url":"https:\/\/www.dreamhost.com\/blog\/author\/dallas\/"}]}},"lang":"nl","translations":{"nl":82080,"en":82006,"es":82076,"pt":82068,"de":82070,"fr":82074,"it":82082},"pll_sync_post":{},"_links":{"self":[{"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/82080","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"version-history":[{"count":2,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/82080\/revisions"}],"predecessor-version":[{"id":91782,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/82080\/revisions\/91782"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/media\/82008"}],"wp:attachment":[{"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/media?parent=82080"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/categories?post=82080"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/tags?post=82080"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}