Skip to content

Postgres sur Docker

LAB : Déploiement d'une base postgres dans Docker#

Objectifs:#

  • Utilisation des volumes Docker
  • Utilisation des réseaux Docker
  • Utilisation des variables d'environnement
  • Déploiement d'une base de données postgres

Prérequis#

  • Connaissance de Docker
  • Instance docker fonctionnel
  • Editeur de code
  • Utilitaire installé sur la machine: git

Déroulement du Lab#

Etape 1 : Création d'un volume#

La commande ci-dessous permet de créer un volume nommé pg-data qui sera utilisé par le conteneur postgres pour la persistance des données:

docker volume create pg-data 

Par défaut, c'est le driver local qui sera utilisé si aucun driver n'est spécifié.

Pour vérifier que le volume a été bien créé, exécutez la commande suivante:

docker volume ls --filter name=pg-data

Etape 3 : Création d'un network#

La commande ci-dessous permet de creér un réseau lab-network qui permettra de faciliter la communication entre les conteneurs.

docker network create --attachable lab-network

Par défaut, c'est le driver bridge qui sera utilisé si aucun driver n'est spécifié.

Pour vérifier que le réseau est bien créé, exécutez la commande suivante:

docker network ls --filter name=lab-network

Etape 4 : Création d'un conteneur postgres#

La commande ci-dessous permet de créer un conteneur postgres nommé lecloudfacile-postgres. Avant execution, remplacez <db-password> par un mot de passe de votre choix.

docker run -d --name lecloudfacile-postgres\
  --network lab-network\
  -e POSTGRES_USER=lecloudfacile\
  -e POSTGRES_DB=moodboard\
  -e POSTGRES_PASSWORD=<db-password>\
  -v pgdata:/var/lib/postgresql/data\
  postgres:16.4

Explication de la commande

  • docker run: créer et démarrer un conteneur
  • -d : executer le conteneur en arrière-plan
  • --name lecloudfacile-postgres : donner le nom lecloudfacile-postgres au conteneur qui sera créé
  • --network lab-network : rattacher le conteneur au réseau lab-network
  • -e POSTGRES_DB=mooadboard: définir une variable d'environnement pour la création d'une base données nommé mooadboard à créer à l'initisalition
  • -e POSTGRES_USER=lecloudfacile: définir une variable d'environnement pour la création d'un utilisateur nommé lecloudfacile à créer à l'initialisation. Cet utilisateur aura des accès super utilisateur(GRANT ALL) sur la base de donnéeslecloudfacile
  • -e POSTGRES_PASSWORD=<db-password>: définir une variable d'environnement contenant le mot de passe de l'utilisateur lecloudfacile
  • -v pg-data:/var/lib/postgresql/data : monter le volume pg-data à l'emplacement /var/lib/postgresql/data du conteneur pour la persistence des données
  • postgres:16.4: Utiliser la version 16.4 de l'image postgres

Retrouvez plus de détails sur l'image postgres

Executez la commande suivante pour s'assurer que le conteneur est bien démarré.

docker ps -a --no-trunc --filter name=lecloudfacile-postgres

Conclusion#

Ce lab a permis de déployer une base de données Postgres avec Docker. Nous allons par la suite voir comment déployer une application utilisant cette base.