Docker te permet de monter des sites, des bases de données, des bots et des panels dans des conteneurs isolés, chacun avec ses dépendances, sans encombrer le système.
L'installer
Le script officiel installe Docker et le plugin Compose sur Ubuntu et Debian :
curl -fsSL https://get.docker.com | sh
Vérifie que ça fonctionne :
docker run --rm hello-world
docker compose version
Un exemple avec Compose
Crée un dossier avec un docker-compose.yml, par exemple pour un site simple :
services:
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html:ro
restart: unless-stopped
docker compose up -d # démarrer en arrière-plan
docker compose logs -f # voir les logs
docker compose down # l'arrêter
restart: unless-stopped le fait revenir tout seul après un redémarrage du VPS.
Attention : Docker contourne ufw
Les ports que tu publies avec ports: (ou -p) sont ouverts sur Internet même si ufw dit qu'ils sont fermés, car Docker écrit ses propres règles dans le pare-feu. C'est la cause de beaucoup de bases de données exposées sans le vouloir.
Si un service n'est utilisé que par d'autres conteneurs ou par le serveur lui-même, publie-le uniquement en local :
ports:
- "127.0.0.1:3306:3306"
Et entre conteneurs d'un même docker-compose.yml, inutile de publier quoi que ce soit : ils se voient par le nom du service.
Nettoyage
Les vieilles images s'accumulent et remplissent le disque. De temps en temps :
docker system prune
Ça supprime les conteneurs arrêtés, les réseaux inutilisés et les images sans étiquette. Une confirmation t'est demandée avant.