Dans cet article
- L’image officielle grafana/grafana se lance en une seule commande Docker en moins de 2 minutes
- Le port par défaut de Grafana est le 3000, à mapper lors du docker run
- Un volume persistant évite de perdre vos dashboards : montez /var/lib/grafana sur votre hôte
- Le fichier grafana.ini se personnalise via un bind mount ou des variables d’environnement
- Docker Compose simplifie le déploiement de la stack complète Grafana + Prometheus en un seul fichier
- Grafana reste pertinent en 2026 avec plus de 20 millions de pulls sur Docker Hub
Sommaire
- Pourquoi utiliser Docker pour Grafana
- Prérequis avant l’installation
- Étape 1 : télécharger l’image officielle Grafana
- Étape 2 : lancer le conteneur Grafana
- Étape 3 : configurer grafana.ini dans Docker
- Étape 4 : persister les données avec des volumes
- Étape 5 : déployer la stack complète avec Docker Compose
- Surveiller Docker avec Grafana
- Erreurs fréquentes et solutions
- À retenir
Quand j’ai commencé à enseigner le monitoring en BTS SIO, mes étudiants butaient systématiquement sur l’installation de Grafana. Entre les dépendances système, les conflits de versions et les configurations manuelles, on perdait parfois une demi-journée avant de voir le moindre dashboard. Depuis que j’utilise Docker pour déployer Grafana, cette étape prend littéralement deux minutes. Je vous montre exactement comment faire, étape par étape.
Grafana est l’outil de visualisation de métriques le plus utilisé dans l’écosystème DevOps. Combiné à Docker, il devient trivial à installer, configurer et maintenir. Que vous soyez en formation ou en production, ce guide vous accompagne du premier docker pull jusqu’à une stack de monitoring fonctionnelle avec docker grafana et Prometheus.
Pourquoi utiliser Docker pour Grafana

Avant de plonger dans les commandes, il est légitime de se demander : peut-on exécuter Grafana dans Docker ? La réponse est oui, et c’est même la méthode recommandée par l’équipe Grafana Labs. L’image officielle grafana/grafana sur Docker Hub cumule plus de 20 millions de téléchargements et reçoit des mises à jour régulières.
Voici pourquoi je recommande systématiquement Docker pour installer Grafana :
- Isolation complète : Grafana tourne dans son propre conteneur sans polluer votre système hôte
- Reproductibilité : la même image produit le même résultat sur votre poste, en staging et en production
- Mise à jour simplifiée : un simple changement de tag d’image suffit pour monter de version
- Portabilité : vous pouvez migrer votre stack d’un serveur à l’autre en quelques minutes
- Intégration facilitée : Docker Compose permet d’orchestrer Grafana avec Prometheus, Tempo ou d’autres services
Certains se demandent si Docker est encore pertinent en 2026. La réponse est claire : Docker reste le standard de facto pour la conteneurisation. Des alternatives comme Podman existent, mais Docker conserve l’écosystème le plus large et la meilleure compatibilité. Pour un outil comme Grafana, Docker est le choix le plus pragmatique.
Prérequis avant l’installation
Avant de lancer votre premier conteneur docker grafana, assurez-vous d’avoir les éléments suivants en place. Je liste ici le strict nécessaire, rien de superflu.
| Élément | Version minimale | Vérification |
|---|---|---|
| Docker Engine | 20.10+ | docker --version |
| Docker Compose | 2.0+ (plugin) | docker compose version |
| Espace disque | 500 Mo libres | df -h |
| Port 3000 | Disponible | ss -tlnp | grep 3000 |
| Accès réseau | Vers Docker Hub | docker pull hello-world |
Si Docker n’est pas encore installé sur votre machine, je vous conseille de suivre la documentation officielle d’installation de Docker Engine qui couvre toutes les distributions Linux, macOS et Windows. Pour approfondir les bases de Docker, consultez notre guide de formation Docker.
Un point important : le port 3000 est celui utilisé par défaut par Grafana. Si un autre service l’occupe déjà (Node.js par exemple), vous pourrez le remapper lors du lancement du conteneur. Je vous montre comment dans l’étape suivante.
Étape 1 : télécharger l’image officielle Grafana
La première étape consiste à récupérer l’image Docker officielle de Grafana. Ouvrez votre terminal et lancez cette commande :
docker pull grafana/grafana:latest
Cette commande télécharge la dernière version stable de Grafana depuis Docker Hub. L’image pèse environ 150 Mo compressée, ce qui reste raisonnable. Si vous avez besoin d’une version spécifique, remplacez latest par le numéro de version souhaité :
docker pull grafana/grafana:11.4.0
Il existe aussi une variante Enterprise si vous avez besoin de fonctionnalités avancées :
docker pull grafana/grafana-enterprise:latest
Pour vérifier que l’image est bien présente sur votre machine, utilisez :
docker images | grep grafana
Vous devriez voir apparaître l’image avec son tag et sa taille. En formation, je recommande toujours de fixer un tag de version précis plutôt que d’utiliser latest. Cela garantit la reproductibilité de votre environnement, un principe fondamental quand on travaille avec le versioning Docker.
Étape 2 : lancer le conteneur Grafana

Maintenant que l’image est téléchargée, lançons le conteneur. Voici la commande de base que j’utilise systématiquement :
docker run -d \
--name grafana \
-p 3000:3000 \
grafana/grafana:latest
Décortiquons chaque option :
-d: lance le conteneur en arrière-plan (mode détaché)--name grafana: attribue un nom lisible au conteneur-p 3000:3000: mappe le port 3000 du conteneur sur le port 3000 de l’hôte
Une fois la commande exécutée, ouvrez votre navigateur et rendez-vous sur http://localhost:3000. Vous arrivez sur la page de connexion de Grafana. Les identifiants par défaut sont admin / admin. Grafana vous demandera immédiatement de changer ce mot de passe ; faites-le, même en environnement de développement.
Si le port 3000 est déjà occupé sur votre machine, remappez-le simplement :
docker run -d \
--name grafana \
-p 8080:3000 \
grafana/grafana:latest
Grafana sera alors accessible sur http://localhost:8080. Pour vérifier que le conteneur tourne correctement :
docker ps | grep grafana
docker logs grafana
Si vous voyez le message HTTP Server Listen dans les logs, tout fonctionne. En cas de problème, vérifiez d’abord les permissions et les ports avec docker logs ; la plupart des erreurs courantes y apparaissent clairement.
Étape 3 : configurer grafana.ini dans Docker
Grafana se configure principalement via le fichier grafana.ini. Dans un conteneur Docker, vous avez deux approches pour personnaliser cette configuration.
Méthode 1 : variables d’environnement
C’est la méthode la plus simple et celle que je recommande pour les configurations courantes. Grafana convertit automatiquement les variables d’environnement préfixées par GF_ en paramètres de configuration :
docker run -d \
--name grafana \
-p 3000:3000 \
-e GF_SECURITY_ADMIN_PASSWORD=MonMotDePasse123 \
-e GF_USERS_ALLOW_SIGN_UP=false \
-e GF_SERVER_ROOT_URL=https://grafana.mondomaine.fr \
grafana/grafana:latest
La convention de nommage est simple : GF_ suivi de la section en majuscules, puis du paramètre. Par exemple, [security] admin_password dans le fichier ini devient GF_SECURITY_ADMIN_PASSWORD en variable d’environnement.
Méthode 2 : bind mount du fichier grafana.ini
Pour une configuration plus poussée, vous pouvez monter directement votre propre fichier grafana.ini dans le conteneur :
docker run -d \
--name grafana \
-p 3000:3000 \
-v /chemin/local/grafana.ini:/etc/grafana/grafana.ini \
grafana/grafana:latest
Cette approche est idéale quand vous avez de nombreux paramètres à modifier. Vous pouvez récupérer le fichier de configuration par défaut depuis le conteneur pour l’utiliser comme base :
docker run --rm grafana/grafana:latest cat /etc/grafana/grafana.ini > grafana.ini
Voici les paramètres que je configure systématiquement en production :
GF_SECURITY_ADMIN_PASSWORD: mot de passe administrateur fortGF_USERS_ALLOW_SIGN_UP: désactiver l’inscription publique (false)GF_AUTH_ANONYMOUS_ENABLED: désactiver l’accès anonyme (false)GF_SERVER_ROOT_URL: URL publique si derrière un reverse proxy
Pour approfondir les questions de sécurité autour de vos déploiements, consultez notre article sur la sensibilisation à la cybersécurité. En contexte conteneurisé, la sécurité commence par la configuration.
Étape 4 : persister les données avec des volumes
Par défaut, toutes les données de Grafana (dashboards, sources de données, utilisateurs) sont stockées à l’intérieur du conteneur. Si vous supprimez le conteneur, vous perdez tout. C’est une erreur classique que je vois régulièrement chez mes étudiants.
La solution : utiliser un volume Docker pour persister le répertoire /var/lib/grafana :
docker run -d \
--name grafana \
-p 3000:3000 \
-v grafana-data:/var/lib/grafana \
-e GF_SECURITY_ADMIN_PASSWORD=MonMotDePasse123 \
grafana/grafana:latest
Ici, grafana-data est un volume nommé géré par Docker. Vos données survivront aux redémarrages et aux mises à jour du conteneur. Pour vérifier que le volume existe bien :
docker volume ls | grep grafana
Vous pouvez aussi utiliser un bind mount si vous préférez contrôler l’emplacement exact des fichiers sur votre hôte :
mkdir -p /opt/grafana/data
chown 472:472 /opt/grafana/data
docker run -d \
--name grafana \
-p 3000:3000 \
-v /opt/grafana/data:/var/lib/grafana \
grafana/grafana:latest
Le chown 472:472 est crucial. L’utilisateur grafana à l’intérieur du conteneur a l’UID 472. Sans cette permission, le conteneur ne pourra pas écrire dans le répertoire et plantera au démarrage. C’est l’une des erreurs les plus fréquentes que je rencontre.
Étape 5 : déployer la stack complète avec Docker Compose

En production, on ne lance jamais Grafana seul. On l’associe généralement à une source de données comme Prometheus pour les métriques ou Tempo pour les traces distribuées. Docker Compose est l’outil parfait pour orchestrer cette stack.
Voici le fichier docker-compose.yml que j’utilise en formation et que j’adapte ensuite pour la production :
version: '3.8'
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus-data:/prometheus
networks:
- monitoring
grafana:
image: grafana/grafana:latest
container_name: grafana
ports:
- "3000:3000"
environment:
- GF_SECURITY_ADMIN_PASSWORD=SecurePassword2026
- GF_USERS_ALLOW_SIGN_UP=false
volumes:
- grafana-data:/var/lib/grafana
depends_on:
- prometheus
networks:
- monitoring
volumes:
prometheus-data:
grafana-data:
networks:
monitoring:
driver: bridge
Et le fichier prometheus.yml minimal correspondant :
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
Pour lancer la stack complète :
docker compose up -d
Une fois démarré, connectez-vous à Grafana sur le port 3000, ajoutez Prometheus comme source de données avec l’URL http://prometheus:9090 (le nom du service Docker fait office de résolution DNS interne), et vous pouvez commencer à créer vos premiers dashboards.
Pour comprendre en détail comment fonctionne la communication entre conteneurs dans ce type de stack, je vous recommande nos articles sur les configurations réseau Docker Compose et les différences entre net et network. La gestion du réseau est un aspect souvent sous-estimé mais essentiel pour une stack de monitoring fiable.
Grafana s’intègre également avec Grafana Alloy (anciennement Grafana Agent), un collecteur de télémétrie léger qui remplace avantageusement les agents traditionnels. Alloy peut aussi être déployé en conteneur Docker dans cette même stack.
Surveiller Docker avec Grafana
Une question revient souvent : comment utiliser Grafana pour surveiller vos conteneurs Docker eux-mêmes ? C’est un cas d’usage très courant et parfaitement adapté à notre stack.
La méthode la plus répandue consiste à utiliser cAdvisor comme exportateur de métriques Docker vers Prometheus, puis à visualiser ces métriques dans Grafana. Ajoutez cAdvisor à votre fichier Docker Compose :
cadvisor:
image: gcr.io/cadvisor/cadvisor:latest
container_name: cadvisor
ports:
- "8080:8080"
volumes:
- /:/rootfs:ro
- /var/run:/var/run:ro
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
networks:
- monitoring
Puis ajoutez cette cible dans votre configuration Prometheus :
- job_name: 'cadvisor'
static_configs:
- targets: ['cadvisor:8080']
Vous obtiendrez des métriques détaillées sur chaque conteneur : consommation CPU, utilisation mémoire, I/O disque et trafic réseau. Grafana Labs fournit des dashboards communautaires prêts à l’emploi pour cAdvisor ; il suffit d’importer le dashboard numéro 193 ou 14282 depuis le site officiel.
Pour aller plus loin dans le monitoring de votre infrastructure, consultez le guide officiel de la documentation Grafana qui détaille les nombreuses sources de données supportées.
Si vous envisagez de migrer cette stack vers le cloud, notre guide sur la migration d’infrastructure dans le cloud vous aidera à planifier cette transition. Les principes de conteneurisation que nous venons de voir s’appliquent parfaitement aux environnements cloud.
Erreurs fréquentes et solutions
Après avoir accompagné des dizaines d’étudiants et de professionnels dans l’installation de docker grafana, voici les problèmes que je rencontre le plus souvent et leurs solutions :
| Erreur | Cause probable | Solution |
|---|---|---|
| Permission denied sur /var/lib/grafana | UID/GID incorrect sur le volume | chown 472:472 sur le répertoire hôte |
| Port 3000 déjà utilisé | Conflit avec un autre service | Remapper avec -p 8080:3000 |
| Conteneur redémarre en boucle | Fichier grafana.ini invalide | Vérifier la syntaxe avec docker logs grafana |
| Prometheus inaccessible depuis Grafana | Mauvaise URL de source de données | Utiliser le nom du service Docker, pas localhost |
| Dashboards perdus après redémarrage | Pas de volume persistant | Ajouter -v grafana-data:/var/lib/grafana |
| Erreur « database is locked » | Plusieurs instances écrivent sur le même volume | Vérifier qu’un seul conteneur utilise le volume |
Un conseil que je donne systématiquement : prenez l’habitude de consulter les logs du conteneur avant de chercher sur internet. La commande docker logs grafana --tail 50 vous donnera dans 90 % des cas l’information nécessaire pour résoudre votre problème.
Pour structurer vos fichiers Docker Compose de manière optimale et éviter les erreurs de syntaxe, notre guide pratique Docker Compose YML vous sera utile. Et si vous déployez d’autres services conteneurisés comme un gestionnaire d’identité, découvrez comment déployer Keycloak avec Docker en suivant la même logique.
Enfin, certains professionnels se demandent pourquoi des équipes migrent vers d’autres solutions de conteneurisation. Les raisons sont variées : licences Docker Desktop en entreprise, préférences pour des outils rootless, ou adoption de Kubernetes qui n’a plus besoin de Docker comme runtime. Cela dit, pour un outil de monitoring comme Grafana, Docker reste le choix le plus direct et le mieux documenté. Consultez la recommandation de la CNIL sur la sécurité des données si vous manipulez des métriques contenant des données personnelles dans vos dashboards.
À retenir
À retenir
- Utilisez toujours un volume persistant pour le répertoire
/var/lib/grafanaafin de ne jamais perdre vos dashboards - Appliquez un chown 472:472 sur les répertoires montés pour éviter les erreurs de permission
- Préférez les variables d’environnement GF_ au bind mount du grafana.ini pour les configurations simples
- Fixez un tag de version précis sur l’image Docker plutôt que d’utiliser latest en production
- Combinez Grafana avec Prometheus et cAdvisor via Docker Compose pour un monitoring complet de vos conteneurs
Questions fréquentes
Peut-on exécuter Grafana dans un conteneur Docker ?
Oui, c’est même la méthode d’installation recommandée par Grafana Labs. L’image officielle grafana/grafana est disponible sur Docker Hub et se lance en une seule commande. Elle contient tout le nécessaire pour faire tourner Grafana sans installer de dépendances sur votre système hôte. Un simple docker run -d -p 3000:3000 grafana/grafana suffit pour démarrer.
Comment modifier le fichier grafana.ini dans Docker ?
Vous avez deux options. La première consiste à utiliser des variables d’environnement préfixées par GF_ lors du lancement du conteneur, par exemple -e GF_SECURITY_ADMIN_PASSWORD=monmotdepasse. La seconde option est de monter votre propre fichier grafana.ini via un bind mount avec l’option -v /chemin/local/grafana.ini:/etc/grafana/grafana.ini. Pour les configurations complexes, le bind mount est plus lisible et maintenable.
Comment surveiller ses conteneurs Docker avec Grafana ?
La méthode standard consiste à déployer cAdvisor comme exportateur de métriques Docker, connecté à Prometheus qui collecte ces métriques, puis à visualiser le tout dans Grafana. cAdvisor expose des données sur la consommation CPU, mémoire, I/O et réseau de chaque conteneur. Des dashboards communautaires prêts à l’emploi sont disponibles sur le site de Grafana Labs pour une mise en route immédiate.
Pourquoi certaines équipes abandonnent-elles Docker ?
Les principales raisons sont le changement de licence de Docker Desktop (devenu payant pour les entreprises de plus de 250 employés), l’émergence d’alternatives rootless comme Podman, et le fait que Kubernetes n’utilise plus Docker comme runtime de conteneur par défaut depuis la version 1.24. Cela dit, Docker reste le standard pour le développement local et le déploiement de services comme Grafana, grâce à son écosystème et sa documentation très fournie.
Quel port utiliser pour accéder à Grafana dans Docker ?
Par défaut, Grafana écoute sur le port 3000. Lors du lancement du conteneur, vous mappez ce port avec l’option -p 3000:3000. Si le port 3000 est déjà occupé sur votre machine, vous pouvez choisir n’importe quel autre port disponible, par exemple -p 8080:3000, et accéder à Grafana via http://localhost:8080.
Docker Compose est-il nécessaire pour utiliser Grafana ?
Non, Docker Compose n’est pas obligatoire. Vous pouvez parfaitement lancer Grafana avec une simple commande docker run. Cependant, Docker Compose devient très utile dès que vous souhaitez déployer Grafana avec d’autres services comme Prometheus, Tempo ou Alloy. Il permet de définir toute la stack dans un seul fichier YAML reproductible et de gérer les dépendances entre services.
Formatrice IT indépendante depuis 2016, ancienne étudiante BTS SIO SLAM. 6 ans d'expérience en entreprise.