DevOpsFacile
AccueilParcours de formationCertificationsModulesCheat SheetÀ Propos
DevOpsFacile

Une plateforme d'apprentissage complète pour maîtriser les pratiques DevOps modernes, du débutant à l'expert.

contact@devopsfacile.fr

Formation

  • Parcours de formation
  • Modules

Informations

  • À Propos
  • Conditions d'utilisation
  • Confidentialité
  • Mentions légales

© 2026 DevOps Facile. Tous droits réservés.

Fait avec pour la communauté DevOps

ModulesDocker expliqué simplement : lancer ses premiers conteneurs04 - Configurer les ports et variables d'environnement

Détails

  • 30 minutes
  • Débutant

Objectifs

  • Exposer un port de conteneur sur l'hôte avec -p
  • Passer des variables d'environnement avec -e
  • Accéder à une application web tournant dans un conteneur
  • Inspecter les ports et variables d'un conteneur en cours
Module Docker expliqué simplement : lancer ses premiers conteneurs

Exercice 04 : Configurer les ports et variables d'environnement

🎯 Objectifs

À la fin de cet exercice, vous serez capable de :

  • ✅ Mapper un port hôte sur un port conteneur avec -p HOST:CONTAINER
  • ✅ Passer des variables d'environnement au conteneur avec -e NOM=valeur
  • ✅ Exposer plusieurs ports simultanément
  • ✅ Vérifier les ports exposés avec docker inspect et docker port
  • ✅ Accéder à une application web déployée dans un conteneur depuis votre navigateur

Durée estimée : 30 minutes

Difficulté : ⭐⭐⭐☆☆ (Débutant+)

Prérequis :

  • Exercices 01, 02 et 03 complétés
  • curl disponible dans le terminal (ou un navigateur)

📖 Contexte

Par défaut, un conteneur Docker est isolé réseau : ses ports ne sont pas accessibles depuis l'extérieur. Pour rendre une application accessible, il faut publier ses ports avec l'option -p. De même, les applications modernes se configurent via des variables d'environnement plutôt que des fichiers de config. Docker permet de les injecter au lancement avec -e.


📋 Énoncé

Déployez un serveur web Nginx et une base de données PostgreSQL avec les bons paramètres réseau et de configuration, puis vérifiez que les applications sont accessibles et correctement configurées.


🧭 Déroulement de l'exercice

Tâche 1 : Exposer un port et accéder à l'application

Lancez un conteneur Nginx nommé web en mode détaché, en mappant le port 8080 de votre machine sur le port 80 du conteneur.

Indice : La syntaxe du port mapping est -p PORT_HOTE:PORT_CONTENEUR. Nginx écoute sur le port 80 par défaut.

Vérification : curl -s http://localhost:8080 | grep "nginx" doit retourner du HTML contenant le mot "nginx".


Tâche 2 : Passer des variables d'environnement

Lancez un conteneur PostgreSQL nommé db en mode détaché, avec les variables d'environnement suivantes :

  • POSTGRES_USER=devops
  • POSTGRES_PASSWORD=motdepasse
  • POSTGRES_DB=formation

Mappez le port 5432 de l'hôte sur le port 5432 du conteneur.

Indice : Chaque variable d'environnement nécessite sa propre option -e. L'image postgres:16-alpine utilise ces variables pour initialiser la base au premier démarrage.

Vérification : docker ps doit lister les deux conteneurs web et db avec le statut Up.


Tâche 3 : Inspecter les ports d'un conteneur

Affichez les ports publiés du conteneur web en utilisant deux méthodes différentes.

Indice : docker port <conteneur> liste les mappings de ports. docker inspect <conteneur> --format '{{json .NetworkSettings.Ports}}' retourne le même résultat en JSON.

Vérification : Les deux commandes doivent montrer que le port 80/tcp du conteneur est mappé sur 0.0.0.0:8080.


Tâche 4 : Vérifier les variables d'environnement d'un conteneur

Inspectez le conteneur db et affichez ses variables d'environnement pour confirmer qu'elles ont bien été injectées.

Indice : docker inspect <conteneur> --format '{{.Config.Env}}' retourne la liste des variables. Vous pouvez aussi utiliser docker exec db env pour les afficher depuis l'intérieur du conteneur.

Vérification : La liste doit contenir POSTGRES_USER=devops, POSTGRES_DB=formation, et POSTGRES_PASSWORD=motdepasse.


Tâche 5 : Exposer plusieurs ports

Arrêtez et supprimez le conteneur web, puis relancez-le en exposant à la fois le port 8080→80 et un second mapping 8443→443.

Indice : Il est possible d'utiliser plusieurs options -p dans la même commande docker run.

Vérification : docker port web doit lister deux mappings de ports.


🗂️ Mini-Projet : Stack web + base de données

bash
# 1. Nginx avec port mapping
docker run -d --name web -p 8080:80 nginx:1.25-alpine

# 2. PostgreSQL avec variables d'environnement
docker run -d --name db \
  -p 5432:5432 \
  -e POSTGRES_USER=devops \
  -e POSTGRES_PASSWORD=motdepasse \
  -e POSTGRES_DB=formation \
  postgres:16-alpine

# 3. Vérifier les ports
docker port web
docker inspect web --format '{{json .NetworkSettings.Ports}}'

# 4. Vérifier les variables
docker inspect db --format '{{.Config.Env}}'

# 5. Accéder à l'application
curl http://localhost:8080

Checkpoints de validation :

  • curl http://localhost:8080 retourne la page par défaut de Nginx
  • docker ps liste web et db avec statut Up
  • docker port web affiche 80/tcp -> 0.0.0.0:8080
  • docker inspect db --format '{{.Config.Env}}' contient POSTGRES_USER=devops
  • docker port web liste 2 mappings après relance avec -p 8080:80 -p 8443:443

Retour au module

Sur cette page

  • 🎯 Objectifs
  • 📖 Contexte
  • 📋 Énoncé
  • 🧭 Déroulement de l'exercice
  • Tâche 1 : Exposer un port et accéder à l'application
  • Tâche 2 : Passer des variables d'environnement
  • Tâche 3 : Inspecter les ports d'un conteneur
  • Tâche 4 : Vérifier les variables d'environnement d'un conteneur
  • Tâche 5 : Exposer plusieurs ports
  • 🗂️ Mini-Projet : Stack web + base de données