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-postgresau 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'utilisateurlecloudfacile - -v pg-data:/var/lib/postgresql/data : monter le volume
pg-dataà l'emplacement/var/lib/postgresql/datadu conteneur pour la persistence des données - postgres:16.4: Utiliser la version
16.4de l'imagepostgres
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.