Épreuve E6 : Infrastructure Docker
Contexte
Dans le cadre de mon épreuve technique E6 du BTS SIO, j'ai déployé une infrastructure complète pour une entreprise fictive. L'objectif était de centraliser plusieurs outils métiers essentiels pour les administrateurs systèmes et réseaux, en offrant un point d'entrée unique et facile d'accès.
L'infrastructure repose sur un serveur Dell avec Proxmox, hébergeant des conteneurs LXC Debian qui exécutent Docker. Cette architecture à plusieurs niveaux de virtualisation offre flexibilité et isolation des services.
Architecture
L'infrastructure se compose de deux conteneurs Docker principaux, chacun hébergeant plusieurs services :
857Docker (172.20.57.24)
- → Portainer :9443 : Interface de gestion Docker
- → Wiki.js :2480 : Documentation avec intégration LDAP
- → Stirling-PDF :2580 : Outil de conversion PDF
- → IT-Tools :2680 : Boîte à outils IT
- → Dozzle :8080 : Monitoring des logs
- → Nginx :80 : Portail intranet
857DockerSl (172.20.57.25)
- → Nginx :80 : Réplica haute disponibilité
- → HAProxy :8080 : Load balancer
- → phpMyAdmin :8081 : Administration BDD
- → MySQL :3306 : Base de données
Services Déployés
Portainer
Interface web pour gérer l'ensemble des conteneurs Docker, leurs déploiements et redémarrages.
Wiki.js + LDAP
Documentation technique connectée à l'infrastructure LDAP pour authentification centralisée.
Nginx Intranet
Portail intranet centralisé servant de point d'entrée unique vers tous les services de l'entreprise.
HAProxy
Load balancer distribuant le trafic entre les réplicas Nginx.
phpMyAdmin + MySQL
Stack de base de données automatisé pour la formation des stagiaires.
Dozzle
Monitoring des logs en temps réel pour tous les conteneurs.
Docker Compose
Pour la formation des stagiaires, j'ai créé un stack automatisé avec phpMyAdmin et MySQL :
version: '3.8'
services:
mysql:
image: mysql:8.0
container_name: mysql_formation
environment:
MYSQL_ROOT_PASSWORD: root2024!
MYSQL_DATABASE: formation_db
MYSQL_USER: john.doe0610
MYSQL_PASSWORD: MySecurePass123
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql
networks:
- formation_network
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
container_name: phpmyadmin_formation
environment:
PMA_HOST: mysql
PMA_USER: john.doe0610
PMA_PASSWORD: MySecurePass123
ports:
- "8081:80"
depends_on:
- mysql
networks:
- formation_network
volumes:
mysql_data:
networks:
formation_network:
driver: bridge
Portail Intranet Nginx
J'ai configuré un serveur web Nginx agissant comme intranet centralisé pour l'ensemble des services de
l'entreprise.
Ce portail offre un point d'accès unique permettant de naviguer facilement vers tous les outils
déployés.
Le fichier HTML est monté via un bind mount depuis
/opt/intranet/index.html sur l'hôte,
facilitant les mises à jour du contenu sans reconstruire l'image Docker.
Bilan
Cette réalisation m'a permis de maîtriser plusieurs compétences clés : conception d'infrastructure, déploiement et supervision de solutions conteneurisées, tout en utilisant des outils modernes pour simplifier la gestion et améliorer la fiabilité du système.