
Image by: Maarten Ceulemans
Préparation du VPS Linux
Saviez-vous que 85% des conteneurs en production tournent sur Linux (Statista)? Avant tout déploiement de conteneurs Docker, votre serveur cloud VPS nécessite une configuration optimale. Commencez par choisir une distribution LTS comme Ubuntu 22.04 ou Debian 11, réputées pour leur stabilité dans les environnements cloud. Après connexion SSH, exécutez ces commandes fondamentales :
- Mise à jour système :
sudo apt update && sudo apt upgrade -y - Configuration du pare-feu :
- Autorisez SSH :
sudo ufw allow OpenSSH - Activez UFW :
sudo ufw enable
- Autorisez SSH :
- Création d’utilisateur dédié :
sudo adduser deployer --gecos "" && sudo usermod -aG sudo deployer
Vérifiez l’accès réseau avec ping 8.8.8.8 et la résolution DNS avec nslookup google.com. Ces étapes garantissent une base solide pour votre infrastructure de conteneurs. Pour approfondir la configuration des serveurs Linux, consultez notre guide avancé.
Installation du moteur Docker
L’installation de Docker diffère selon les distributions. Voici la procédure pour Ubuntu/Debian :
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io
Validez l’installation avec sudo docker run hello-world. Configurez ensuite les permissions :
Expert Tip : Évitez les droits root permanents avec
sudo usermod -aG docker $USER. Cette pratique réduit les risques de sécurité tout en facilitant les opérations quotidiennes.
| Commande | Fonction | Exemple |
|---|---|---|
docker ps |
Liste des conteneurs actifs | docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Status}}" |
docker logs |
Consultation des journaux | docker logs -f mon_conteneur |
docker stats |
Monitoring des ressources | docker stats --no-stream |
Déploiement d’applications avec Docker Compose
Docker Compose simplifie la gestion d’applications multi-conteneurs via un fichier YAML. Imaginons un stack WordPress avec base de données :
version: '3.8'
services:
db:
image: mysql:8.0
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: motdepasse_securise
MYSQL_DATABASE: wordpress
wordpress:
image: wordpress:php8.1-apache
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: motdepasse_securise
volumes:
db_data:
Lancez le déploiement avec docker compose up -d. Cette architecture illustre comment Docker Compose orchestre la communication inter-conteneurs via le réseau bridge par défaut. Pour des configurations complexes, explorez nos templates Docker Compose.
Sécurisation avec reverse proxy
Exposer directement les ports Docker compromet la sécurité. Un reverse proxy comme Nginx agit comme intermédiaire :
- Installez Nginx :
sudo apt install nginx -y - Créez un fichier de configuration (
/etc/nginx/sites-available/mon_app) :server { listen 80; server_name mon-domaine.fr; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } - Activez la configuration :
sudo ln -s /etc/nginx/sites-available/mon_app /etc/nginx/sites-enabled/
Renforcez la sécurité avec Let’s Encrypt :
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d mon-domaine.fr
Diagnostic réseau avancé
Validez votre configuration avec ces outils indispensables :
- Vérification des ports :
sudo netstat -tulpn | grep LISTEN - Inspection DNS :
dig A mon-domaine.fr - Test de connectivité :
docker exec -it wordpress curl -I http://db:3306 - Analyse des réseaux Docker :
docker network inspect bridge
Pour résoudre les erreurs de connexion courantes, consultez la documentation officielle sur le networking Docker. Ces commandes vous aideront à identifier les problèmes de firewall, de routage ou de résolution DNS.
Frequently asked questions
Comment choisir entre Docker Engine et Docker Desktop pour un serveur cloud ?
Docker Desktop est conçu pour les postes de développement (Windows/macOS), tandis que Docker Engine est l’option serveur optimale pour les VPS Linux. Sur un cloud, installez toujours Docker Engine via les dépôts officiels, car Docker Desktop n’est pas supporté dans les environnements headless.
Quelles pratiques de sécurité essentielles pour Docker en production ?
1) Mettez toujours à jour Docker et les images
2) N’utilisez jamais le réseau bridge par défaut pour les services sensibles
3) Limitez les ressources avec --cpus et --memory
4) Scannez les images avec Docker Scan ou Trivy
5) Appliquez le principe du moindre privilège en évitant le mode root.
Mon conteneur s’arrête inexplicablement, comment investiguer ?
1) Vérifiez les logs : docker logs --tail 50 NOM_CONTENEUR
2) Inspectez le statut de sortie : docker inspect NOM_CONTENEUR --format='{{.State.ExitCode}}'
3) Analysez la consommation mémoire : docker stats NOM_CONTENEUR
4) Testez manuellement : docker exec -it NOM_CONTENEUR sh
Traefik ou Nginx : quel reverse proxy choisir ?
Nginx excelle pour les configurations statiques et le traitement HTTP haute performance. Traefik est idéal pour les environnements dynamiques avec découverte automatique de services via les labels Docker. Pour des stacks simples, Nginx reste plus léger. Pour des microservices complexes avec TLS automatique, privilégiez Traefik.
Conclusion
Ce guide complet vous a accompagné dans le déploiement sécurisé de conteneurs Docker sur un VPS Linux, depuis l’installation du moteur jusqu’à l’exposition sécurisée via reverse proxy. La maîtrise des commandes de diagnostic réseau (netstat, docker network inspect) et des bonnes pratiques Docker Compose constitue un atout majeur pour tout technicien IT. Pour industrialiser ces processus, explorez nos templates d’automatisation CI/CD. Testez immédiatement ces techniques sur un VPS et partagez vos retours en commentaires !
