Guide pour déployer et configurer rapidement vos bases de données de développement avec Docker.
Le problÚme : Installer et configurer une base de données pour le développement prend du temps, pollue votre systÚme et peut créer des conflits de versions.
La solution : Docker ! Ce guide vous fournit des configurations prĂȘtes Ă l'emploi pour dĂ©marrer n'importe quelle base de donnĂ©es en quelques secondes, avec des environnements isolĂ©s et reproductibles.
⚠Points clés :
- đïž 13 bases de donnĂ©es (SQL et NoSQL)
- ⥠Installation en < 5 minutes par BDD
- đ§ Multiples configurations (basique, IP fixe, avec GUI)
- đ Gestion des utilisateurs et permissions
- đ AccĂšs rĂ©seau local configurĂ©
- đ 7 annexes de rĂ©fĂ©rence complĂštes
- đ 5 cas pratiques (stacks complĂštes)
- đ«đ· En français et gratuit (CC BY 4.0)
Idéal pour : Développeurs, étudiants, formateurs, tests d'applications
| Base | Version | Fiches | Use Case Principal |
|---|---|---|---|
| đŹ MariaDB | 10.11+ | 5 | Alternative MySQL open source |
| đ PostgreSQL | 15+ | 5 | BDD relationnelle avancĂ©e |
| đ· MS SQL Server | 2022 | 4 | Environnements .NET |
| đŠ SQLite | 3.x | 3 | BDD embarquĂ©e lĂ©gĂšre |
| đ„ Firebird | 4.x | 5 | Applications Delphi/Pascal, embedded |
| Base | Type | Fiches | Use Case Principal |
|---|---|---|---|
| đ MongoDB | Document | 5 | Applications web modernes |
| đŽ Redis | ClĂ©-Valeur | 5 | Cache et temps rĂ©el |
| đ¶ Cassandra | Colonnes | 4 | Big Data distribuĂ© |
| đ Neo4j | Graphe | 4 | RĂ©seaux sociaux, graphes |
| đ InfluxDB | SĂ©ries temporelles | 4 | MĂ©triques et IoT |
| ⥠DynamoDB | Document | 4 | Compatible AWS |
| đ Elasticsearch | Recherche | 4 | Moteur de recherche |
Total : 53 fiches de configuration couvrant tous les cas d'usage !
# Vérifier Docker
docker --version
# Minimum requis : Docker 20.10+
# Vérifier Docker Compose
docker-compose --version
# Minimum requis : Docker Compose 2.0+Installer Docker :
- đȘ Windows : Docker Desktop
- đ macOS : Docker Desktop
- đ§ Linux :
curl -fsSL https://get.docker.com | sh
# 1. Créer le fichier docker-compose.yml
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
postgres:
image: postgres:15
container_name: postgres_dev
environment:
POSTGRES_PASSWORD: dev_password
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
EOF
# 2. Démarrer
docker-compose up -d
# 3. Connecter
docker exec -it postgres_dev psql -U postgres
# đ C'est prĂȘt !Se connecter depuis un client :
- HĂŽte :
localhostou127.0.0.1 - Port :
5432 - Utilisateur :
postgres - Mot de passe :
dev_password
đ SOMMAIRE.md - Table des matiĂšres dĂ©taillĂ©e
| Vous voulez... | Consultez... |
|---|---|
| đ DĂ©marrer une BDD rapidement | Les fiches 01-config-basique-* |
| đ§ Configuration avancĂ©e | Les fiches 02-config-avec-* et suivantes |
| đ IP fixe pour conteneur | Les fiches *-config-ip-fixe |
| đ„ GĂ©rer les utilisateurs | Les fiches *-gestion-utilisateurs |
| đ„ïž Interface graphique | Les fiches *-avec-[GUI] |
| đ RĂ©fĂ©rence commandes | Annexe A |
| đ Stack complĂšte | Cas pratiques |
# 1. Choisir votre BDD
cd 02-postgresql # Par exemple
# 2. Lire le README de la BDD
cat README.md
# 3. Suivre une fiche
cat 01-config-basique-docker-compose.md
# 4. Copier le docker-compose.yml
# 5. Personnaliser (mots de passe, ports...)
# 6. Lancer : docker-compose up -dbdd-docker-dev/
âââ README.md # Ce fichier
âââ SOMMAIRE.md # Table des matiĂšres dĂ©taillĂ©e
âââ LICENSE # Licence CC BY 4.0
â
âââ 00-introduction/ # Concepts de base
âââ 01-mariadb/ # 5 fiches MariaDB
âââ 02-postgresql/ # 5 fiches PostgreSQL
âââ 03-mssql/ # 4 fiches MS SQL Server
âââ 04-sqlite/ # 3 fiches SQLite
âââ 05-mongodb/ # 5 fiches MongoDB
âââ 06-redis/ # 5 fiches Redis
âââ 07-cassandra/ # 4 fiches Cassandra
âââ 08-neo4j/ # 4 fiches Neo4j
âââ 09-influxdb/ # 4 fiches InfluxDB
âââ 10-dynamodb/ # 4 fiches DynamoDB
âââ 11-elasticsearch/ # 4 fiches Elasticsearch
âââ 12-firebird/ # 5 fiches Firebird
â
âââ annexes/ # 7 annexes de rĂ©fĂ©rence
â âââ A-reference-commandes.md
â âââ B-gestion-reseaux.md
â âââ C-gestion-volumes.md
â âââ D-securite-bonnes-pratiques.md
â âââ E-depannage.md
â âââ F-outils-gestion.md
â âââ G-comparaison-bdd.md
â
âââ cas-pratiques/ # 5 stacks complĂštes
âââ 01-stack-lamp.md # Apache + MariaDB + PHP
âââ 02-stack-mean.md # MongoDB + Express + Node
âââ 03-stack-elk.md # Elasticsearch + Logstash + Kibana
âââ 04-env-dev-complet.md # Multi-BDD
âââ 05-migration-donnees.md # Migration entre BDD
# Tester différentes BDD pour un cours
docker-compose up -d # MariaDB pour SQL
docker-compose up -d # MongoDB pour NoSQL
# Suppression propre aprĂšs : docker-compose down -v# Stack complĂšte MEAN
# MongoDB + Express + Angular + Node
# Voir : cas-pratiques/02-stack-mean.md# Créer un environnement de test isolé
# Plusieurs versions de PostgreSQL en parallĂšle
# Sur des ports différents (5432, 5433, 5434...)# Partager les docker-compose.yml via Git
# Toute l'Ă©quipe a le mĂȘme environnement
# Reproductibilité garantie# Migrer des applications legacy vers Docker
# Firebird en conteneur pour dev/test
# Voir : 12-firebird/# Démarrer une BDD
docker-compose up -d
# Voir les logs
docker-compose logs -f
# Se connecter au conteneur
docker exec -it <nom_conteneur> bash
# ArrĂȘter (sans supprimer les donnĂ©es)
docker-compose stop
# Redémarrer
docker-compose start
# Supprimer (ATTENTION : supprime les données)
docker-compose down -v
# Vérifier l'état
docker-compose ps
# Voir les réseaux
docker network ls
# Voir les volumes
docker volume lsđĄ Astuce : Consultez l'Annexe A pour la liste complĂšte !
| Fonctionnalité | MariaDB | PostgreSQL | MongoDB | Redis | Neo4j | Firebird | Autres |
|---|---|---|---|---|---|---|---|
| â Config basique | â | â | â | â | â | â | â |
| đ§ Config avancĂ©e | â | â | â | â | â | â | â |
| đ IP fixe | â | â | â | â | â | â | â |
| đ„ Gestion users | â | â | â | â | â | â | Selon BDD |
| đ„ïž Interface GUI | phpMyAdmin | pgAdmin | Mongo Express | Redis Commander | Browser | FlameRobin | Selon BDD |
| đ RĂ©plication | â | â | â | â | â | â | Selon BDD |
| đŠ Cluster | â | â | â | â | â | â | Cassandra, Elastic |
Q : Docker ralentit-il les performances de la BDD ? R : Impact minimal (< 5%) pour le développement. Production : utiliser des BDD natives.
Q : Puis-je utiliser ces configs en production ? R : Non, elles sont optimisées pour le développement. Production = configurations durcies.
Q : Comment sauvegarder mes données ? R : Les volumes Docker persistent les données. Voir Annexe C.
Q : Plusieurs versions de la mĂȘme BDD ? R : Oui ! Utilisez des ports et noms de conteneurs diffĂ©rents.
Q : Comment gérer les mots de passe ?
R : Utilisez des fichiers .env. Voir Annexe D.
Q : ProblÚme de connexion depuis un client ? R : Vérifiez ports, mots de passe, permissions. Voir Annexe E.
Q : Firebird fonctionne-t-il bien dans Docker ? R : Oui ! Parfait pour dev/test. Utilisez le mode embedded pour les applications desktop.
đ« NE JAMAIS utiliser ces configurations en production sans :
- Changer TOUS les mots de passe par défaut
- Configurer un pare-feu
- Activer le chiffrement SSL/TLS
- Restreindre les accÚs réseau
- Mettre en place des backups
- Suivre les bonnes pratiques de sécurité
đ Consultez l'Annexe D - SĂ©curitĂ© pour les dĂ©tails.
- â 13 bases de donnĂ©es couvertes
- â Configurations multiples par BDD
- â 7 annexes de rĂ©fĂ©rence
- â 5 cas pratiques
- đ VidĂ©os tutoriels
- đ Scripts d'automatisation
- đ Templates de projets
Ce projet est sous licence CC BY 4.0 (Creative Commons Attribution 4.0 International).
â Libre d'utiliser, modifier, partager (mĂȘme commercialement) avec attribution.
Attribution :
Bases de Données avec Docker par Nicolas DEOUX
https://github.com/NDXDeveloper/bdd-docker-dev
Licence CC BY 4.0
Nicolas DEOUX
- đ§ [email protected]
- đ GitHub @NDXDeveloper
Merci Ă la communautĂ© Docker, aux mainteneurs des images officielles, et Ă tous les dĂ©veloppeurs qui partagent leurs connaissances ! đ
Ressources complémentaires : Docker Docs ⹠Docker Hub ⹠Awesome Docker
