Docker pour l'hebergement web : guide pratique 2026
Docker pour l’hebergement web : guide pratique 2026
La conteneurisation a revolutionne la facon dont les applications web sont deployees et gerees. Docker, la plateforme de conteneurisation la plus populaire, est devenu un outil incontournable pour les developpeurs et administrateurs systeme. En 2026, comprendre Docker n’est plus optionnel si vous gerez des applications web serieuses. Ce guide vous explique tout ce qu’il faut savoir pour utiliser Docker dans votre hebergement web.
Qu’est-ce que Docker ?
Docker est une plateforme open-source qui permet de creer, deployer et executer des applications dans des conteneurs. La documentation officielle de Docker fournit des guides complets pour demarrer. Un conteneur est un environnement isole et leger qui embarque tout le necessaire pour faire tourner une application : le code, les bibliotheques, les dependances et la configuration systeme.
Conteneur vs machine virtuelle
La distinction entre conteneur et machine virtuelle est fondamentale pour comprendre l’interet de Docker.
| Caracteristique | Machine virtuelle | Conteneur Docker |
|---|---|---|
| Taille | Plusieurs Go (OS complet) | Quelques Mo a quelques centaines de Mo |
| Demarrage | Minutes | Secondes |
| Isolation | Complete (hyperviseur) | Au niveau du processus (kernel partage) |
| Performance | Overhead notable | Quasi-native |
| Ressources | Allocation fixe | Allocation dynamique |
| Portabilite | Limitee | Excellente |
Un conteneur partage le noyau (kernel) du systeme hote, ce qui le rend beaucoup plus leger qu’une machine virtuelle qui embarque un systeme d’exploitation complet. Sur un VPS avec 4 Go de RAM, vous pouvez faire tourner des dizaines de conteneurs la ou vous ne pourriez lancer que 2 ou 3 machines virtuelles.
Pourquoi utiliser Docker pour l’hebergement web ?
1. Reproductibilite parfaite
Le probleme classique du “ca marche sur ma machine” disparait avec Docker. Votre application fonctionne de maniere identique en local, en staging et en production, car l’environnement est exactement le meme partout.
2. Isolation des services
Chaque service (serveur web, base de donnees, cache) tourne dans son propre conteneur. Si un service plante, les autres ne sont pas affectes. Cette isolation est particulierement precieuse quand vous hebergez plusieurs applications sur le meme serveur.
3. Facilite de deploiement
Deployer une mise a jour se resume a remplacer un conteneur par une version plus recente. En cas de probleme, le retour en arriere est instantane : il suffit de relancer l’ancien conteneur.
4. Scalabilite
Besoin de gerer plus de trafic ? Lancez des conteneurs supplementaires derriere un load balancer. Docker facilite la mise a l’echelle horizontale de vos applications.
5. Gestion des dependances
Fini les conflits de versions. Vous pouvez faire tourner PHP 7.4 pour un vieux projet WordPress et PHP 8.3 pour votre application moderne sur le meme serveur, sans aucune interference.
Docker vs hebergement traditionnel
Hebergement mutualise vs Docker
L’hebergement mutualise reste pertinent pour les sites simples (blogs, sites vitrine). Docker n’est pas adapte a ce contexte car vous n’avez pas acces a la configuration du serveur. En revanche, des que vous avez besoin de flexibilite, Docker sur un VPS offre des possibilites incomparables.
VPS classique vs VPS avec Docker
| Aspect | VPS classique | VPS avec Docker |
|---|---|---|
| Installation | Manuelle, service par service | Automatisee via Dockerfile |
| Mise a jour | Risque de conflit entre services | Conteneurs independants |
| Sauvegarde | Configuration complexe | Export d’images et volumes |
| Migration | Longue et risquee | Rapide : copier les images |
| Multi-sites | Conflits de dependances possibles | Isolation totale |
| Securite | Surface d’attaque large | Conteneurs isoles et minimaux |
Les bases de Docker : concepts cles
Images et conteneurs
Une image Docker est un modele en lecture seule qui contient tout le necessaire pour executer une application. Un conteneur est une instance en cours d’execution d’une image. Vous pouvez lancer plusieurs conteneurs a partir de la meme image.
Le Dockerfile
Le Dockerfile est un fichier texte qui decrit comment construire une image. Voici un exemple pour une application PHP :
# Image de base : PHP 8.3 avec Apache
FROM php:8.3-apache
# Installer les extensions PHP necessaires
RUN docker-php-ext-install pdo pdo_mysql mysqli
# Activer le mod_rewrite d'Apache
RUN a2enmod rewrite
# Copier le code de l'application
COPY ./src /var/www/html/
# Definir les permissions
RUN chown -R www-data:www-data /var/www/html
# Exposer le port 80
EXPOSE 80
Pour construire l’image et lancer le conteneur :
# Construire l'image
docker build -t mon-site-php .
# Lancer le conteneur
docker run -d -p 8080:80 --name mon-site mon-site-php
Votre site est maintenant accessible sur le port 8080 de votre serveur.
Les volumes : persister les donnees
Par defaut, les donnees d’un conteneur sont ephemeres : elles disparaissent quand le conteneur est supprime. Les volumes permettent de persister les donnees importantes (base de donnees, fichiers uploades, etc.).
# Creer un volume nomme
docker volume create donnees-mysql
# Lancer MySQL avec un volume persistant
docker run -d \
--name mysql-server \
-e MYSQL_ROOT_PASSWORD=motdepasse_securise \
-v donnees-mysql:/var/lib/mysql \
mysql:8.0
Les reseaux Docker
Docker cree des reseaux virtuels qui permettent aux conteneurs de communiquer entre eux de maniere isolee.
# Creer un reseau
docker network create mon-reseau
# Lancer les conteneurs sur le meme reseau
docker run -d --name php-app --network mon-reseau mon-site-php
docker run -d --name db --network mon-reseau mysql:8.0
Les conteneurs sur le meme reseau peuvent se joindre par leur nom (par exemple, db comme hote MySQL depuis le conteneur php-app).
Docker Compose : orchestrer plusieurs conteneurs
Pour un site web reel, vous avez generalement besoin de plusieurs services : un serveur web, une base de donnees, un cache, peut-etre un serveur mail. Docker Compose permet de definir et gerer tous ces services dans un seul fichier docker-compose.yml.
Exemple complet : site WordPress avec Docker Compose
version: "3.9"
services:
wordpress:
image: wordpress:6.7-php8.3-apache
restart: always
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wp_user
WORDPRESS_DB_PASSWORD: mot_de_passe_fort
WORDPRESS_DB_NAME: wordpress
volumes:
- wp-content:/var/www/html/wp-content
depends_on:
- db
networks:
- wp-network
db:
image: mariadb:11.4
restart: always
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wp_user
MYSQL_PASSWORD: mot_de_passe_fort
MYSQL_ROOT_PASSWORD: root_password_tres_securise
volumes:
- db-data:/var/lib/mysql
networks:
- wp-network
redis:
image: redis:7-alpine
restart: always
networks:
- wp-network
volumes:
wp-content:
db-data:
networks:
wp-network:
driver: bridge
Pour lancer l’ensemble :
# Demarrer tous les services en arriere-plan
docker compose up -d
# Voir les logs
docker compose logs -f
# Arreter tous les services
docker compose down
# Arreter et supprimer les volumes (attention : perte de donnees)
docker compose down -v
Exemple : stack Node.js avec Nginx reverse proxy
Pour les applications Node.js ou Python, Docker Compose est particulierement adapte :
version: "3.9"
services:
app:
build: ./app
restart: always
environment:
NODE_ENV: production
DATABASE_URL: postgresql://user:password@postgres:5432/mydb
depends_on:
- postgres
networks:
- app-network
nginx:
image: nginx:alpine
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./certbot/conf:/etc/letsencrypt:ro
depends_on:
- app
networks:
- app-network
postgres:
image: postgres:16-alpine
restart: always
environment:
POSTGRES_DB: mydb
POSTGRES_USER: user
POSTGRES_PASSWORD: password
volumes:
- pgdata:/var/lib/postgresql/data
networks:
- app-network
volumes:
pgdata:
networks:
app-network:
driver: bridge
Bonnes pratiques Docker pour l’hebergement
1. Utiliser des images officielles et minimales
Privilegiez les variantes alpine des images disponibles sur Docker Hub, beaucoup plus legeres (5-10 Mo contre 100+ Mo pour les images standard). Cela reduit la surface d’attaque et accelere les deploiements.
# Preferer ceci
FROM node:22-alpine
# Plutot que ceci
FROM node:22
2. Optimiser les couches du Dockerfile
Chaque instruction du Dockerfile cree une couche. Regroupez les commandes quand c’est possible et placez les instructions qui changent le moins en premier pour optimiser le cache.
FROM node:22-alpine
# Copier d'abord les fichiers de dependances (changent rarement)
COPY package.json package-lock.json ./
RUN npm ci --production
# Copier ensuite le code source (change souvent)
COPY . .
CMD ["node", "server.js"]
3. Ne jamais stocker de secrets dans les images
Utilisez des variables d’environnement ou des secrets Docker pour les mots de passe, cles API et certificats. Ne les incluez jamais dans le Dockerfile ou le code source.
4. Implementer des health checks
HEALTHCHECK --interval=30s --timeout=3s --retries=3 \
CMD curl -f http://localhost:3000/health || exit 1
5. Limiter les ressources
services:
app:
deploy:
resources:
limits:
cpus: "1.0"
memory: 512M
reservations:
cpus: "0.25"
memory: 128M
Quel hebergement choisir pour Docker ?
Pour utiliser Docker, vous avez besoin au minimum d’un VPS. Voici les options recommandees en 2026 :
| Hebergeur | Offre adaptee | RAM min. | Prix/mois | Docker pre-installe |
|---|---|---|---|---|
| Hetzner | Cloud CX22 | 4 Go | ~4.50 EUR | Non (facile a installer) |
| Infomaniak | VPS Cloud | 4 Go | ~9.90 CHF | Non |
| OVHcloud | VPS Starter | 4 Go | ~6.00 EUR | Oui (template) |
Hetzner se distingue par son excellent rapport qualite-prix pour les deployments Docker, avec des serveurs cloud performants et une facturation a l’heure.
Installation de Docker sur un VPS
Sur un VPS Ubuntu 24.04 :
# Mettre a jour le systeme
sudo apt update && sudo apt upgrade -y
# Installer Docker via le script officiel
curl -fsSL https://get.docker.com | sh
# Ajouter votre utilisateur au groupe docker
sudo usermod -aG docker $USER
# Installer Docker Compose (plugin)
sudo apt install docker-compose-plugin -y
# Verifier l'installation
docker --version
docker compose version
Securite Docker : les essentiels
- Ne pas executer les conteneurs en root : utilisez l’instruction
USERdans vos Dockerfiles - Mettre a jour regulierement les images de base
- Scanner les vulnerabilites avec
docker scoutou Trivy - Limiter les capabilities du kernel avec
--cap-drop ALL - Utiliser des reseaux dedies pour isoler les services
FAQ
Docker est-il adapte pour un simple site WordPress ?
Pour un seul site WordPress, Docker n’est pas indispensable. Un hebergement mutualise chez Infomaniak ou o2switch sera plus simple et moins cher. Docker devient pertinent quand vous gerez plusieurs sites, avez besoin de reproductibilite ou utilisez des technologies specifiques.
Combien de RAM faut-il pour Docker ?
Un minimum de 2 Go de RAM est necessaire, mais 4 Go est recommande pour etre confortable. Chaque conteneur consomme entre 50 et 500 Mo selon le service. Un stack WordPress complet (Apache + MariaDB + Redis) utilise environ 500 Mo a 1 Go.
Docker ralentit-il mon site ?
Non. L’overhead de Docker est negligeable (1-3%) car les conteneurs utilisent directement le kernel du systeme hote. C’est bien moins que la perte de performance d’une machine virtuelle classique.
Peut-on utiliser Docker sur un hebergement mutualise ?
Non. Docker necessite un acces root au serveur, ce qui n’est possible que sur un VPS ou un serveur dedie. L’hebergement mutualise ne permet pas d’installer Docker.
Docker Compose ou Kubernetes ?
Docker Compose est ideal pour un seul serveur (la majorite des cas). Kubernetes est concu pour orchestrer des conteneurs sur plusieurs serveurs (clusters). Pour un site web standard, Docker Compose est largement suffisant. Kubernetes devient pertinent a partir de centaines de milliers de visiteurs par jour.
Comment sauvegarder mes donnees Docker ?
Sauvegardez les volumes Docker et vos fichiers docker-compose.yml. Vous pouvez utiliser docker run --rm -v mon-volume:/data -v $(pwd):/backup alpine tar czf /backup/sauvegarde.tar.gz /data pour exporter un volume. Automatisez ces sauvegardes avec un cron job quotidien.
Conclusion
Docker est un outil puissant qui simplifie considerablement la gestion de l’hebergement web, surtout quand vous gerez plusieurs applications ou utilisez des technologies variees. En 2026, sa maturite et son ecosysteme en font un choix incontournable pour les developpeurs et administrateurs systeme.
Pour les debutants, commencez par un projet simple avec Docker Compose sur un VPS abordable. Vous decouvrirez rapidement les benefices de la conteneurisation : deploiements reproductibles, isolation des services et facilite de gestion.
Pour les projets plus simples (blog, site vitrine), un hebergement mutualise classique reste toutefois le choix le plus pragmatique et economique.