Met Docker draai je websites, databases, bots en panelen in geïsoleerde containers, elk met zijn eigen afhankelijkheden en zonder het systeem te vervuilen.
Installeren
Het officiële script installeert Docker en de Compose-plug-in op Ubuntu en Debian:
curl -fsSL https://get.docker.com | sh
Controleer of het werkt:
docker run --rm hello-world
docker compose version
Een voorbeeld met Compose
Maak een map met een docker-compose.yml, bijvoorbeeld voor een eenvoudige website:
services:
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html:ro
restart: unless-stopped
docker compose up -d # op de achtergrond starten
docker compose logs -f # de logs bekijken
docker compose down # stoppen
Door restart: unless-stopped komt hij vanzelf terug na een herstart van de VPS.
Let op: Docker omzeilt ufw
Poorten die je publiceert met ports: (of -p) worden opengezet naar internet, ook als ufw zegt dat ze dicht zijn, omdat Docker zijn eigen regels in de firewall schrijft. Het is de oorzaak van heel wat databases die onbedoeld openstaan.
Wordt een service alleen gebruikt door andere containers of door de server zelf, publiceer hem dan alleen lokaal:
ports:
- "127.0.0.1:3306:3306"
En tussen containers in hetzelfde docker-compose.yml hoef je niets te publiceren: ze bereiken elkaar via de naam van de service.
Opruimen
Oude images stapelen zich op en vullen de schijf. Doe af en toe:
docker system prune
Dit verwijdert gestopte containers, ongebruikte netwerken en images zonder tag. Het vraagt eerst om bevestiging.