Principes Fondamentaux des Variables d'Environnement Docker
Qu'est-ce que les Variables d'Environnement Docker ?
Les variables d'environnement Docker sont des valeurs dynamiques qui peuvent être utilisées pour configurer les conteneurs et modifier le comportement des applications sans modifier le code. Elles offrent un moyen flexible de transmettre les paramètres de configuration entre le système hôte et les conteneurs Docker.
Types de Variables d'Environnement
1. Variables d'Environnement Statiques
Les variables d'environnement statiques sont prédéfinies et définies directement dans le Dockerfile ou le fichier docker-compose.
FROM ubuntu:22.04
ENV APP_VERSION=1.0
ENV DATABASE_HOST=localhost
2. Variables d'Environnement en Temps d'exécution
Les variables d'environnement en temps d'exécution sont transmises lors du démarrage d'un conteneur à l'aide du flag -e
ou --env
.
docker run -e DATABASE_PASSWORD=secret myapp
Portées des Variables d'Environnement
graph TD
A[Portées des Variables d'Environnement Docker] --> B[Niveau Conteneur]
A --> C[Niveau Service]
A --> D[Niveau Global]
Portée |
Description |
Exemple |
Niveau Conteneur |
Variables spécifiques à un seul conteneur |
docker run -e DEBUG=true |
Niveau Service |
Variables appliquées à un service spécifique dans docker-compose |
Définition de service dans docker-compose |
Niveau Global |
Variables définies dans le système hôte |
Variables d'environnement système |
Bonnes Pratiques
- Utilisez les variables d'environnement pour les informations sensibles.
- Évitez de coder en dur les valeurs de configuration.
- Utilisez des fichiers
.env
pour gérer plusieurs variables d'environnement.
- Utilisez les secrets Docker pour les données sensibles.
Exemple : Implémentation Pratique
## Créer un fichier .env
echo "DATABASE_URL=postgresql://user:password@localhost/mydb" > .env
## Utiliser les variables d'environnement dans docker-compose
docker-compose --env-file .env up
Conseil LabEx
Lors de l'apprentissage des variables d'environnement Docker, LabEx fournit des environnements interactifs pour pratiquer et expérimenter différents scénarios de configuration.