Docker vous permet d'exécuter des applications dans des conteneurs : des environnements isolés qui contiennent tout ce dont l'application a besoin. Plus de conflits de versions, plus de « mais ça marche sur ma machine ». Sites web, bases de données, bots et serveurs de jeu : tout tourne dans son propre conteneur avec ses propres dépendances.
Installer Docker sur Ubuntu
Utilisez toujours le dépôt officiel Docker, pas le dépôt Ubuntu (qui contient une version obsolète) :
curl -fsSL https://get.docker.com | sh
Ce script détecte votre distribution et installe la dernière version de Docker Engine et Docker Compose. Vérifiez l'installation :
docker --version docker compose version
Votre premier conteneur
Lancez un serveur web Nginx dans un conteneur :
docker run -d --name webserver -p 80:80 nginx
Ouvrez l'IP de votre VPS dans un navigateur. Vous voyez la page d'accueil Nginx. Le conteneur tourne en arrière-plan (-d) et mappe le port 80 du conteneur au port 80 de l'hôte.
Docker Compose
Pour des configurations plus complexes (plusieurs conteneurs qui coopèrent), vous utilisez Docker Compose. Créez un docker-compose.yml :
services:
web:
image: nginx
ports:
- "80:80"
volumes:
- ./site:/usr/share/nginx/html
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: motdepassefort
MYSQL_DATABASE: madb
volumes:
- dbdata:/var/lib/mysql
volumes:
dbdata:
Lancez avec docker compose up -d. Les deux conteneurs démarrent et peuvent communiquer entre eux via le nom du réseau Docker interne.
Exemples pratiques
- WordPress :
docker composeavec WordPress + MariaDB. Un site complet en cinq minutes. - Bot Discord : créez un Dockerfile pour votre bot Python ou Node.js, avec redémarrage automatique via
restart: unless-stopped. - Base de données : MariaDB, PostgreSQL ou MongoDB dans un conteneur avec un volume pour les données persistantes.
Commandes importantes
| Commande | Fonction |
|---|---|
docker ps | Afficher les conteneurs en cours d'exécution |
docker logs nomconteneur | Consulter les logs |
docker stop nomconteneur | Arrêter un conteneur |
docker rm nomconteneur | Supprimer un conteneur |
docker exec -it nomconteneur bash | Ouvrir un shell dans un conteneur |
docker compose up -d | Démarrer tous les services |
docker compose down | Arrêter et supprimer tous les services |
Volumes : conserver les données
Les conteneurs sont jetables. Si vous supprimez un conteneur, les données disparaissent. Les volumes résolvent cela : ils stockent les données en dehors du conteneur. Utilisez toujours un volume pour les bases de données et les fichiers que vous souhaitez conserver.
Docker est-il difficile à apprendre ?
Les bases (lancer des conteneurs, les arrêter, écrire des fichiers compose) s'apprennent en une après-midi. Les sujets avancés (réseaux, builds multi-étapes, orchestration) demandent plus de temps mais ne sont pas nécessaires pour la plupart des utilisateurs de VPS.
Puis-je combiner Docker avec Nginx sur l'hôte ?
Oui. Une configuration très utilisée : Nginx sur l'hôte comme reverse proxy, qui redirige le trafic vers les conteneurs Docker. Chaque conteneur écoute sur un port interne ; Nginx route le trafic en fonction du domaine.
Docker consomme-t-il de la mémoire supplémentaire ?
Très peu. Docker partage le noyau de l'hôte ; un conteneur ajoute 10 à 50 Mo de surcharge, bien moins qu'une machine virtuelle. L'application dans le conteneur utilise la même quantité de mémoire qu'en dehors de Docker.
Faire tourner Docker sur un VPS KVM de HostValues avec un accès root complet.