Ga naar hoofdinhoud

Docker installeren op Debian: een complete installatiegids

Deze gids behandelt vier installatiemethoden, van de officiële Docker-repository tot handmatige pakketinstallatie, plus essentiële configuratie na installatie voor enterprise-deployments. Je leert je Docker-omgeving te beveiligen, veelvoorkomende problemen op te lossen en een productieklare setup te onderhouden.
· 15 min lezen

Verken met AI

Docker installeren op Debian zou geen gokspel moeten zijn over welke methode je systeem niet breekt.

De meeste gidsen gooien meerdere installatiemogelijkheden naar je zonder uit te leggen wanneer je welke gebruikt. Je eindigt met verouderde pakketten uit de Debian-repository of, nog erger, permissiefouten die je buitensluiten van je eigen containers. Het resultaat? Je bent uren aan het troubleshooten in plaats van applicaties te deployen.

Debians voorspelbare releasecyclus en rotsvaste stabiliteit maken het perfect voor Docker in productie. Je krijgt consistente containerprestaties zonder verrassingsupdates die je setup breken. In theorie zou je na het lastige deel — de installatie — geen problemen meer moeten hebben.

In deze tutorial neem ik je mee langs vier installatiemethoden, essentiële beveiligingsversteviging, opslagconfiguratie en stappen voor troubleshooting om Docker betrouwbaar op Debian te laten draaien.

Helemaal nieuw met Docker? Begin met de Docker-basisprincipes voordat je aan de installatie begint.

Systeemvereisten

Docker draait op de meeste moderne Debian-systemen, maar je moet eerst een paar zaken controleren. In deze sectie laat ik je precies zien wat je systeem nodig heeft voordat je start met installeren.

Debian 10 (Buster) of nieuwer is vereist voor actuele Docker-versies. Oudere releases zoals Debian 9 werken niet met recente Docker Engine-builds. Je kernelversie moet 3.10 of hoger zijn — de meeste Debian-installaties van de afgelopen jaren voldoen hier automatisch aan.

Je hebt root-toegang of sudo-rechten nodig om Docker-pakketten te installeren en het systeem te configureren. Docker vereist ook deze kernpakketten: apt-transport-https, ca-certificates, curl en gnupg. De meeste Debian-systemen hebben deze al, maar je verifieert dit proces later.

Hardwarevereisten zijn minimaal:

  • 2GB RAM om basale containerworkloads aan te kunnen; 4GB of meer werkt beter voor ontwikkelomgevingen
  • 10GB vrije schijfruimte is het minimum voor Docker-images en containerdata. Productieomgevingen moeten voor veel meer plannen.

Als je de GNOME-desktop gebruikt, zorg dan dat het pakket gnome-terminal is geïnstalleerd. Sommige Docker-beheertools verwachten dit voor interactieve containersessies.

Verwijder oude Docker-installaties voordat je begint. Legacy-pakketten zoals docker, docker.io of docker-engine kunnen conflicteren met de huidige Docker Engine. Voer dit commando uit om oude versies op te ruimen:

sudo apt remove docker docker-engine docker.io containerd runc

Je firewall- en netwerkconfiguratie kan invloed hebben op containernetwerken. Docker maakt eigen netwerkinterfaces en iptables-regels aan. Als je UFW of aangepaste firewallregels gebruikt, moet je die na installatie mogelijk aanpassen om containerverkeer toe te staan.

Controleer deze vereisten nu — dat bespaart je later tijd met troubleshooting.

Installatiemethoden

Je hebt vier manieren om Docker op Debian te installeren, elk met eigen afwegingen. Ik help je de methode te kiezen die past bij jouw omgeving en beveiligingseisen.

Zoek je in plaats daarvan Ubuntu-instructies? We hebben een complete stapsgewijze gids voor Docker installeren op Ubuntu.

Methode 1: Officiële Docker-repository (aanbevolen)

Met deze methode krijg je de nieuwste Docker-versie met regelmatige beveiligingsupdates.

De officiële Docker-repository bevat altijd de nieuwste stabiele releases, plus je krijgt automatische updates via je pakketbeheerder. Je zit niet vast aan verouderde versies die belangrijke beveiligingspatches of nieuwe features missen.

Begin met het updaten van je systeem en het installeren van de pakketten die Docker nodig heeft:

sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release

Voeg vervolgens Docker's officiële GPG-sleutel toe om de echtheid van pakketten te verifiëren:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Configureer de repository door deze toe te voegen aan je sources-lijst:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Installeer tot slot Docker Engine, CLI en Compose:

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Dit geeft je alles wat je nodig hebt voor Docker-deployments in productie.

Methode 2: Standaard Debian-repository

Deze aanpak installeert Docker met één commando, maar je krijgt een oudere versie.

Debians standaardrepository maakt installeren eenvoudig — voer gewoon sudo apt install docker.io uit. Maar er is een addertje: vaak krijg je Docker-versies die maanden of jaren achterlopen op de huidige release.

sudo apt update
sudo apt install docker.io

Deze methode is prima voor basistests of wanneer je een specifieke oudere versie nodig hebt voor compatibiliteit. Maar je mist beveiligingsupdates, prestatieverbeteringen en nieuwe features die met recente Docker-releases meekomen.

Gebruik deze methode alleen als de officiële repository geen optie is.

Methode 3: Handmatige DEB-pakketinstallatie

Ik laat je zien hoe je pakketten direct downloadt en installeert wanneer je geen toegang hebt tot repositories.

Deze methode werkt voor air-gapped systemen, bedrijfsnetwerken met beperkte internettoegang, of wanneer je dezelfde Docker-versie op meerdere machines wilt installeren zonder herhaaldelijk te downloaden.

Download de DEB-pakketten van Docker's website:

  1. Ga naar https://download.docker.com/linux/debian/dists/

  2. Kies je Debian-versie (bullseye, bookworm, enz.)

  3. Navigeer naar pool/stable/amd64/

  4. Download deze pakketten: docker-ce_*.deb, docker-ce-cli_*.deb en containerd.io_*.deb

Installeer de pakketten in deze volgorde:

sudo dpkg -i containerd.io_*.deb
sudo dpkg -i docker-ce-cli_*.deb
sudo dpkg -i docker-ce_*.deb

Krijg je afhankelijkheidsfouten, voer dan sudo apt-get install -f uit om ze op te lossen.

Deze methode vergt meer handwerk voor updates, maar geeft je volledige controle over welke versie wordt geïnstalleerd.

Methode 4: Convenience-scripts

De laatste methode die ik behandel biedt snelle installatie voor testomgevingen, maar je moet het script eerst auditen.

Docker levert installatiescripts die je systeem detecteren en Docker automatisch installeren. Handig om snel testomgevingen op te zetten of wanneer je Docker op meerdere systemen inricht.

curl -fsSL https://get.docker.com -o get-docker.sh

Controleer het script altijd voordat je het uitvoert:

cat get-docker.sh

Let op alles wat verdacht of onverwacht is. Het script wijzigt je systeemconfiguratie, dus je wilt weten wat het doet.

Voer het script uit nadat je het hebt beoordeeld:

sudo sh get-docker.sh

Gebruik convenience-scripts niet in productie. Ze zijn bedoeld voor snelle setup, niet voor veilige, reproduceerbare deployments. Houd je voor kritieke systemen aan de methode met de officiële repository.

Ik raad de officiële repositorymethode aan, tenzij je specifieke beperkingen hebt die een andere aanpak vereisen.

Je installatie verifiëren

Installeren is slechts de eerste stap — je moet bevestigen dat Docker echt werkt voordat je iets deployt. Deze snelle tests vertellen je of je Docker-setup klaar is voor echte workloads.

Controleer je Docker-versie om te bevestigen dat de installatie voltooid is:

docker --version

Je zou uitvoer moeten zien zoals Docker version xx.x.x, build x. Krijg je een "command not found"-fout, dan is Docker niet goed geïnstalleerd of staat het niet in je PATH.

Haal gedetailleerde buildinformatie op om te zien welke componenten draaien:

docker version

Dit toont afzonderlijke client- en serverversies plus architectuurdetails. Het servergedeelte bevestigt dat de Docker-daemon draait en bereikbaar is.

Draai een testcontainer om te valideren dat alles end-to-end werkt:

docker run hello-world

Docker downloadt de hello-world-image en voert die uit. Je ziet een bericht dat uitlegt hoe Docker-containers werken als alles correct functioneert. Deze test bevestigt dat Docker images kan pullen, containers kan aanmaken en commando's kan uitvoeren.

Je kunt verifiëren dat Docker Compose is geïnstalleerd en werkt:

docker compose version

Je zou uitvoer moeten zien zoals Docker Compose version vX.xx.x. Let op dat nieuwere Docker-installaties docker compose (met een spatie) gebruiken in plaats van het oude docker-compose-commando.

Als al deze commando's zonder fouten werken, is je Docker-installatie klaar voor productiegebruik.

Klaar om je eerste echte container te draaien? Leer stap voor stap Docker-images draaien.

Configuratie na installatie

Docker werkt out-of-the-box, maar je wilt een paar dingen configureren voor dagelijks gebruik. In deze sectie behandel ik servicemanagement en gebruikersrechten die Docker handiger en veiliger maken.

Servicemanagement

Je kunt bepalen wanneer Docker draait met deze systemd-commando's:

sudo systemctl start docker    # Start Docker
sudo systemctl stop docker     # Stop Docker
sudo systemctl restart docker  # Restart Docker service

Om Docker automatisch te laten starten bij het booten van je systeem, voer je het volgende uit:

sudo systemctl enable docker

Dit zorgt ervoor dat Docker elke keer draait wanneer je je server opnieuw opstart — precies wat je wilt voor productiesystemen.

Als je wilt controleren of Docker draait en de huidige status wilt zien, voer dan dit commando uit:

sudo systemctl status docker

Je ziet of de service actief is, hoe lang hij draait en recente logberichten. Als Docker niet werkt, laat dit commando meestal zien waarom.

Om serviceproblemen op te lossen, bekijk de logs:

sudo journalctl -u docker.service

Dit toont gedetailleerde logs van de Docker-daemon die helpen bij het diagnosticeren van opstartproblemen, permissiefouten of configuratie-issues.

Toegang voor niet-rootgebruikers

Als je je gebruiker aan de docker-groep wilt toevoegen om Docker-commando's zonder sudo uit te voeren:

sudo usermod -aG docker $USER

Dit voegt je huidige gebruiker toe aan de docker-groep, wat je toestemming geeft om met de Docker-daemon te communiceren.

Daarna moet je uit- en weer inloggen om de groepswijziging te laten gelden:

logout

Of herstart je terminalsessie. Je kunt ook newgrp docker uitvoeren om de groep in je huidige sessie te activeren zonder uit te loggen.

Test tot slot niet-roottoegang door dit Docker-commando uit te voeren:

docker run hello-world

Als dit zonder sudo werkt, ben je klaar.

Maar hier zit het beveiligingscompromis: gebruikers in de docker-groep hebben root-equivalente toegang tot je systeem. Ze kunnen hostmappen mounten, bij gevoelige bestanden, en mogelijk containers ontsnappen om de host te compromitteren.

Voeg alleen vertrouwde gebruikers toe aan de docker-groep, en doe dit nooit op gedeelde systemen waar je niet alle gebruikers beheert.

Configureer deze instellingen één keer en Docker wordt dagelijks veel prettiger in gebruik.

Opslagdriverconfiguratie

De opslagdriver van Docker beheert hoe containerimages en -data op je systeem worden opgeslagen. De meeste gebruikers hoeven dit nooit te wijzigen, maar je opties begrijpen helpt prestaties te optimaliseren voor specifieke workloads.

Docker kiest automatisch de beste opslagdriver voor je systeem tijdens de installatie. Op Debian is dat meestal overlay2, dat uitstekende prestaties en stabiliteit biedt voor de meeste use-cases.

Controleer je huidige opslagdriver met dit commando:

docker info | grep "Storage Driver"

De overlay2-driver werkt goed omdat deze:

  • Snel copy-on-write-bewerkingen afhandelt wanneer containers bestanden wijzigen
  • Lagen tussen images deelt om schijfruimte te besparen
  • Alle Docker-features ondersteunt zonder compatibiliteitsproblemen
  • Betrouwbaar werkt op verschillende bestandssystemen

Je hebt mogelijk een andere opslagdriver nodig als je gespecialiseerde workloads draait of specifieke bestandssysteemvereisten hebt. 

Sommige enterprise-opslagsystemen werken bijvoorbeeld beter met de devicemapper-driver, of je hebt vfs nodig om problemen met containerbestandssystemen te debuggen.

Je kunt de opslagdriver wijzigen door de configuratie van de Docker-daemon te bewerken:

sudo nano /etc/docker/daemon.json

Voeg hier de instelling voor storage-driver toe of wijzig deze:

{
  "storage-driver": "devicemapper"
}

Vergeet tot slot niet Docker te herstarten om de wijziging toe te passen:

sudo systemctl restart docker

Wees je ervan bewust dat het wijzigen van opslagdrivers je bestaande containers en images ontoegankelijk maakt. Maak eerst een back-up van belangrijke data, of exporteer containers die je wilt bewaren.

Je kunt de nieuwe driver nu testen door een image te pullen en een container te draaien:

docker pull hello-world
docker run hello-world

Kort gezegd: blijf bij overlay2 tenzij je specifieke vereisten hebt die een andere driver noodzakelijk maken.

Beveiligingsversteviging

Standaard Docker-installaties zijn prima voor ontwikkeling, maar productieomgevingen hebben extra beveiligingslagen nodig. Deze configuraties beschermen je host tegen containeruitbraken en aanvallen die resources uitputten.

SELinux/AppArmor-integratie

Verplichte toegangscontroles voegen een beveiligingslaag toe die beperkt wat containers kunnen doen, zelfs als ze gecompromitteerd zijn. Zonder deze controles kan een container die als root draait mogelijk bij hostresources waar hij niet aan mag komen.

Je kunt AppArmor inschakelen voor Docker, Debians standaard beveiligingsframework, door deze commando's uit te voeren:

sudo apt install apparmor-utils
sudo systemctl enable apparmor
sudo systemctl start apparmor

Zodra AppArmor draait, laad je Docker's beveiligingsprofiel:

sudo apparmor_parser -r /etc/apparmor.d/docker

Nu kun je containers draaien met AppArmor-bescherming ingeschakeld:

docker run --security-opt apparmor=docker-default nginx

Het docker-default-profiel beperkt container-capabilities zoals bestandssystemen mounten, toegang tot ruwe netwerkinterfaces en het laden van kernelmodules.

Voor SELinux-systemen (als je dat gebruikt in plaats van AppArmor), schakel eerst containerbeheer in:

sudo setsebool -P container_manage_cgroup on

Draai daarna containers met SELinux-labels:

docker run --security-opt label=type:container_t nginx

Deze controls blokkeren veelvoorkomende container-escapetechnieken en beperken de schade van gecompromitteerde containers.

Daemonconfiguratie

Je kunt (en moet) Docker-daemoninstellingen aanpassen om het aanvalsoppervlak te verkleinen en je beveiligingshouding te verbeteren. Maak of bewerk het bestand /etc/docker/daemon.json:

{
  "live-restore": true,
  "userland-proxy": false,
  "no-new-privileges": true,
  "icc": false,
  "disable-legacy-registry": true
}

Dit doet elke instelling:

  • live-restore: true houdt containers draaiend als de Docker-daemon crasht

  • userland-proxy: false gebruikt iptables direct in plaats van de userland-proxy voor betere performance

  • no-new-privileges: true voorkomt dat containers nieuwe privileges krijgen

  • icc: false schakelt inter-containercommunicatie standaard uit disable-legacy-registry: true blokkeert toegang tot oude, onveilige registryprotocollen

Herstart Docker na deze wijzigingen om ze toe te passen:

sudo systemctl restart docker

Draai containers ook zoveel mogelijk als niet-rootgebruikers:

docker run --user 1000:1000 nginx

Dit beperkt wat gecompromitteerde containers met je systeem kunnen doen.

Resourcelimieten met control groups (cgroups)

Containers zonder resourcelimieten kunnen alle beschikbare CPU, geheugen en I/O opsouperen en uiteindelijk je hele host neerhalen. Control groups (cgroups) voorkomen dit door harde limieten op resourcegebruik af te dwingen.

Begin met geheugenlimieten om te voorkomen dat containers teveel RAM gebruiken:

docker run --memory=512m nginx

Je kunt ook CPU-gebruik beperken zodat één container niet alle rekenkracht opslokt:

docker run --cpus=1.5 nginx

Voor systemen met hoge schijf-I/O, regel lees-/schrijfsnelheden:

docker run --device-read-bps /dev/sda:1mb nginx

Je kunt ook meerdere limieten combineren voor volledige resourcecontrole:

docker run \
  --memory=1g \
  --cpus=2 \
  --pids-limit=100 \
  nginx

Voor consistente limieten over alle containers, configureer defaults in je daemon.json:

{
  "default-ulimits": {
    "nofile": {
      "Hard": 64000,
      "Name": "nofile",
      "Soft": 64000
    }
  }
}

Deze limieten voorkomen aanvallen die resources uitputten en zorgen voor eerlijke verdeling tussen containers.

Configureer deze beveiligingsmaatregelen één keer en je Docker-omgeving wordt veel lastiger te compromitteren.

Dagelijks Docker-commando's onder de knie krijgen? Deze 18 essentiële Docker-commando's maken je productief.

Veelvoorkomende problemen oplossen

Zelfs met een correcte installatie kan Docker haperingen krijgen waardoor containers niet goed draaien. Dit zijn de meest voorkomende problemen en hoe je ze snel oplost.

Permissiefouten

De meeste Docker-permissieproblemen komen erop neer dat je gebruiker geen juiste toegang heeft tot het socketbestand van Docker. Als je Got permission denied while trying to connect to the Docker daemon socket ziet, betekent dit dat je nog niet in de docker-groep zit.

Dit gebeurt omdat Docker als root draait, maar een socket maakt die leden van de docker-groep kunnen benaderen. Voeg jezelf toe aan de groep:

sudo usermod -aG docker $USER

Je moet uit- en weer inloggen om de wijziging te laten gelden. Wil je nu niet uitloggen, activeer de groep in je huidige sessie:

newgrp docker

Bestandspermissiefouten binnen containers zijn anders maar net zo gebruikelijk. Deze ontstaan wanneer het containerproces geen bestanden kan lezen of schrijven die je vanaf je host hebt gemount. De container draait mogelijk als een ander gebruikers-ID dan de eigenaar van je bestanden.

Controleer welke gebruiker eigenaar is van je bestanden:

ls -la /path/to/your/files

De meeste Docker-containers draaien standaard als gebruikers-ID 1000. Als je bestanden eigendom zijn van root of een andere gebruiker, wijzig dan het eigenaarschap:

sudo chown -R 1000:1000 /path/to/your/files

Als je SELinux draait (in plaats van AppArmor), kun je andere permissieweigeringen zien die in de auditlogs verschijnen. Deze zijn complexer omdat SELinux bepaalt waar processen toegang toe hebben op basis van security-contexts, niet alleen gebruikers-ID's.

Zoek recente toegangsproblemen op:

sudo ausearch -m avc -ts recent

Los SELinux-contexten op door containerbeheer in te schakelen en correcte labels op je Docker-volumes te herstellen:

sudo setsebool -P container_manage_cgroup on
sudo restorecon -R /path/to/your/volume

Servicefouten

Als Docker niet wil starten of blijft crashen, moet je begrijpen wat er faalt voordat je het kunt oplossen. De systemd-servicestatus geeft snel overzicht:

sudo systemctl status docker

Dit toont of Docker draait en recente foutmeldingen. Voor gedetailleerde troubleshooting wil je de live logs volgen terwijl Docker probeert te starten:

sudo journalctl -u docker.service -f

Een veelvoorkomende opstartfout treedt op wanneer Docker niet netjes is afgesloten. Je ziet een fout als "failed to start daemon: pid file found, ensure docker is not running." Er is dan een achtergebleven procesbestand dat het opstartscript in de war brengt.

Verwijder het oude bestand en probeer opnieuw te starten:

sudo rm /var/run/docker.pid
sudo systemctl start docker

Opslagproblemen zijn een andere veelvoorkomende oorzaak van daemonfouten. Docker slaat alle data op in /var/lib/docker, en als deze map vol raakt of corrupt is, kan Docker niet goed starten.

Controleer hoeveel ruimte beschikbaar is:

df -h /var/lib/docker

Als je weinig ruimte hebt, ruim oude containers en images op die je niet gebruikt:

docker system prune -a

Netwerkconflicten kunnen Docker ook verhinderen te starten. Dit gebeurt wanneer Docker's standaard bridge-netwerk (meestal 172.17.0.0/16) botst met je bestaande netwerk. Je ziet fouten over niet-beschikbare adresbereiken.

Los dit op door een aangepast bridge-IP te configureren dat niet conflicteert met je netwerk. Bewerk /etc/docker/daemon.json:

{
  "bip": "192.168.1.1/24"
}

Herstart Docker na de wijziging om de nieuwe netwerkconfiguratie te gebruiken:

sudo systemctl restart docker

Verouderde kernelproblemen

Docker is afhankelijk van Linux-kernelfeatures voor containerisatie, netwerken en beveiliging. Als je kernel te oud is, loop je tegen problemen aan die je niet kunt oplossen zonder te upgraden.

Controleer welke kernelversie je draait met dit commando:

uname -r

Docker heeft minimaal kernel 3.10 nodig voor basisfunctionaliteit, maar voor productie wil je echt 4.0 of nieuwer. Alles ouder dan 3.10 werkt simpelweg niet met moderne Docker-versies.

Je kernel updaten op Debian is eenvoudig: installeer gewoon het nieuwste kernelpakket:

sudo apt update
sudo apt install linux-image-amd64

De nieuwe kernel is pas actief nadat je je systeem herstart:

sudo reboot

Soms is de kernel nieuw genoeg, maar zijn bepaalde kernelmodules niet geladen. Docker heeft specifieke modules nodig voor netwerk- en containerfeatures. Je ziet dan fouten over niet-beschikbare netwerkinterfaces of containers die niet goed starten.

Laad de essentiële modules handmatig:

sudo modprobe bridge
sudo modprobe ip_tables
sudo modprobe iptable_nat

Deze modules zouden automatisch moeten laden, maar als dat niet gebeurt, maak ze dan permanent door ze toe te voegen aan je systeemconfiguratie:

echo "bridge" | sudo tee -a /etc/modules
echo "ip_tables" | sudo tee -a /etc/modules  
echo "iptable_nat" | sudo tee -a /etc/modules

Zelfs met een recente kernel kun je runtime-fouten zien die "operation not supported" melden. Dit betekent meestal dat je kernel zonder bepaalde features is gecompileerd die Docker verwacht. Helaas is er geen workaround voor ontbrekende kernelfeatures — je hebt een correct geconfigureerde kernel nodig.

De meeste Docker-installatieproblemen zijn terug te voeren op deze drie gebieden: gebruikersrechten, serviceconfiguratie of kernelcompatibiliteit. Los het onderliggende probleem op in plaats van symptomen te omzeilen, en je Docker-omgeving wordt veel stabieler.

Werk je met databases in containers? PostgreSQL-configuratie in Docker is makkelijker dan je denkt.

Docker verwijderen

Soms moet je Docker volledig van je systeem verwijderen, of je nu overstapt op een andere containerruntime of schoon wilt beginnen na configuratieproblemen. 

Dit proces omvat meer dan alleen pakketten verwijderen — je wilt ook data en systeemwijzigingen opruimen.

Begin met het verwijderen van alle Docker-pakketten van je systeem. Het exacte commando hangt af van hoe je Docker oorspronkelijk hebt geïnstalleerd.

Als je via de officiële Docker-repository hebt geïnstalleerd:

sudo apt purge docker-ce docker-ce-cli containerd.io docker-compose-plugin

Als je via Debians standaardrepository hebt geïnstalleerd:

sudo apt purge docker.io docker-compose

Dit verwijdert de pakketten, maar laat configuratiebestanden en afhankelijkheden achter die andere pakketten mogelijk nog nodig hebben. Om die ook te verwijderen:

sudo apt autoremove --purge

Verwijder daarna de datamap van Docker als je alle images, containers en volumes wilt verwijderen. Deze stap is optioneel, maar aanbevolen voor een complete opschoning.

Docker slaat standaard alles op in /var/lib/docker. Deze map verwijderen wist al je containers, images, netwerken en volumes permanent:

sudo rm -rf /var/lib/docker

Verwijder ook de configuratiemap van Docker:

sudo rm -rf /etc/docker

Ga verder met het opschonen van systeemgroepen en -gebruikers die Docker tijdens de installatie heeft aangemaakt. Docker voegt een docker-groep toe aan je systeem en kan gebruikersrechten hebben aangepast.

Verwijder de docker-groep:

sudo groupdel docker

Als je gebruikers aan de docker-groep hebt toegevoegd, wordt hun groepslidmaatschap automatisch opgeruimd wanneer je de groep verwijdert. Je kunt ook specifieke gebruikers handmatig uit de groep verwijderen voordat je deze wist:

sudo gpasswd -d username docker

Verwijder daarna de systemd-servicebestanden en socketbestanden van Docker:

sudo rm -f /lib/systemd/system/docker.service
sudo rm -f /lib/systemd/system/docker.socket
sudo systemctl daemon-reload

Controleer tot slot op overgebleven Docker-processen die mogelijk nog draaien:

ps aux | grep docker

Als je iets vindt, stop ze dan handmatig:

sudo pkill -f docker

Na deze stappen zou Docker volledig van je systeem verwijderd moeten zijn, zonder achtergebleven bestanden of configuraties.

Alternatieven voor Docker overwegen? Bekijk andere containerplatforms voordat je overstapt.

Conclusie en best practices

Je hebt nu Docker draaiend op Debian, maar installatie is nog maar het begin. Hoe je je Docker-omgeving configureert en onderhoudt, bepaalt of je een soepele productie-ervaring hebt of nachtenlang containerproblemen aan het troubleshooten bent.

Multi-platform containers bouwen voor verschillende architecturen? Docker Buildx maakt cross-platform builds eenvoudig.

Kies je installatiemethode op basis van je beperkingen. De officiële Docker-repository werkt het best voor de meeste productieomgevingen omdat je de nieuwste features en beveiligingspatches krijgt. Maar air-gapped netwerken of eisen voor versieconsistentie kunnen handmatige DEB-installatie vereisen.

Beveilig je Docker-omgeving direct. Schakel AppArmor of SELinux in voor verplichte toegangscontrole, configureer restrictieve daemoninstellingen en gebruik cgroups om containerresources te beperken. Houd Docker up-to-date met automatische beveiligingsupdates, maar test ze eerst in staging.

Gebruik Docker Compose voor multi-container-applicaties. In plaats van complexe docker run-commando's te beheren, definieer je je applicatiestack in YAML.

Monitor schijfgebruik en ruim regelmatig op. Voer docker system prune uit om ongebruikte images te verwijderen en stel logrotatie in om te voorkomen dat containers je schijf vollopen.

Wanneer je meer gedetailleerde informatie nodig hebt, behandelt de officiële documentatie geavanceerde onderwerpen die deze gids niet raakt. Bekijk de Docker-documentatie voor diepgaande info over networking, storage drivers en orchestratie. De Debian Docker-pakketdocumentatie legt pakketspecifieke configuraties en bekende issues uit.

Docker op Debian geeft je een stabiel, krachtig platform voor gecontaineriseerde applicaties — maar alleen als je het doordacht configureert en consequent onderhoudt.

Wil je meer leren over Docker, containerization en de toepassing in data science en machine learning? Deze DataCamp-cursussen zijn je beste volgende stap:

Dario Radečić

Auteur

Dario Radečić

Senior Data Scientist, gevestigd in Kroatië. Top Tech-schrijver met meer dan 700 gepubliceerde artikelen en meer dan 10 miljoen weergaven. Auteur van het boek Machine Learning Automation with TPOT.

FAQs

Wat is de beste manier om Docker op Debian te installeren voor productiegebruik?

De methode met de officiële Docker-repository is de beste keuze voor productieomgevingen omdat die de nieuwste stabiele releases met regelmatige beveiligingsupdates biedt. Deze methode zorgt ervoor dat je alle nieuwste features en kritieke patches krijgt die mogelijk niet beschikbaar zijn in Debians standaardrepositories. Je profiteert ook van automatische updates via je pakketbeheerder, waardoor je Docker-installatie veilig blijft zonder handmatig ingrijpen.

Moet ik me zorgen maken over beveiliging bij het draaien van Docker op Debian?

Ja, bij Docker-beveiliging komt meer kijken dan alleen de basisinstallatie. Containers delen de hostkernel, dus een gecompromitteerde container kan mogelijk bij hostresources als die niet goed is geïsoleerd. Je moet AppArmor of SELinux inschakelen voor verplichte toegangscontrole, resourcelimieten met cgroups configureren en containers waar mogelijk als niet-root draaien. Houd Docker bovendien up-to-date en voeg geen gebruikers toe aan de docker-groep tenzij strikt noodzakelijk, want dit geeft root-equivalente systeemtoegang.

Kan ik Docker draaien op oudere versies van Debian?

Docker vereist Debian 10 (Buster) of nieuwer om met huidige Docker Engine-versies te werken. Oudere releases zoals Debian 9 missen de benodigde kernelfeatures en pakketafhankelijkheden die moderne Docker nodig heeft. Zit je vast aan een oudere Debian-versie, dan moet je eerst upgraden; er is geen betrouwbare workaround voor de ontbrekende kernelfunctionaliteit waarop Docker voor containerisatie en netwerking steunt.

Waarom start Docker niet na installatie en hoe los ik daemonproblemen op?

Docker-daemonfouten komen meestal door drie hoofdoorzaken: opslagproblemen, netwerkconflicten of achtergebleven procesbestanden van eerdere installaties. Controleer of /var/lib/docker voldoende schijfruimte heeft met df -h /var/lib/docker, en ruim op met docker system prune -a indien nodig. Bij netwerkconflicten kan Docker's standaard bridge-IP (172.17.0.0/16) botsen met je bestaande netwerksetup, waardoor je een aangepast bridge-IP in /etc/docker/daemon.json moet configureren. Zie je "pid file found"-fouten, verwijder dan het oude bestand met sudo rm /var/run/docker.pid en herstart de service.

Hoe verwijder ik Docker en alle data correct van mijn Debian-systeem?

Docker volledig verwijderen vereist meer dan alleen pakketten deïnstalleren — je moet ook datamappen, systeemgroepen en servicebestanden opruimen. Begin met het purgen van de Docker-pakketten met sudo apt purge docker-ce docker-ce-cli containerd.io docker-compose-plugin, verwijder daarna de datamap met sudo rm -rf /var/lib/docker (dit verwijdert alle containers en images permanent). Verwijder de docker-groep met sudo groupdel docker, haal systemd-servicebestanden weg en controleer op overgebleven Docker-processen met ps aux | grep docker. Zo start je met een schone lei als je wilt herinstalleren of overstappen op een andere containerruntime.

Onderwerpen

Gerelateerd