Aller au contenu
Runbook

Installer PostgreSQL sur Docker

Base de données relationnelle SQL open source, robuste et conforme aux standards.

Base de donnéessqlrdbmsrelationnelacidbase-de-donnees

Installation

Conteneur (image officielle) · Docker
docker run -d --name postgres -e POSTGRES_PASSWORD=secret -p 5432:5432 -v pgdata:/var/lib/postgresql/data postgres:17

Remplacez 'secret' par un mot de passe fort. Le volume nommé pgdata persiste les données.

Vérifier l'installation

Vérifier
docker exec postgres psql -U postgres -c 'SELECT version();'

Fichiers importants

TypeCheminDescription
data/var/lib/postgresql/dataRépertoire de données DANS le conteneur, à monter sur un volume pour la persistance.

Ports par défaut

5432

Outils en ligne de commande

  • psqlClient interactif SQL, accessible via docker exec.
  • pg_dumpSauvegarde logique, via docker exec.
  • pg_restoreRestauration depuis une sauvegarde au format custom, via docker exec.

Désinstaller

Supprimer le conteneur
docker rm -f postgres

N'efface PAS le volume pgdata.

Supprimer aussi les données
docker volume rm pgdata

Irréversible : détruit toutes les données du cluster.

À savoir

  • POSTGRES_PASSWORD est OBLIGATOIRE au premier démarrage, sinon le conteneur refuse de s'initialiser.
  • Sans volume, les données sont perdues à la suppression du conteneur : utilisez toujours un volume nommé ou un bind mount en production.
  • Variables utiles : POSTGRES_USER (superutilisateur, défaut postgres) et POSTGRES_DB (base créée au démarrage).

Démarrer PostgreSQL avec Docker

L'image officielle postgres (Docker Official Image) fournit un serveur prêt à l'emploi. La commande ci-dessus lance un conteneur détaché, publie le port 5432 et stocke les données dans un volume nommé pgdata.

La variable POSTGRES_PASSWORD est obligatoire au tout premier démarrage : elle fixe le mot de passe du superutilisateur postgres. Sans elle, l'initialisation du cluster échoue (sauf à autoriser explicitement une authentification non sécurisée, fortement déconseillée).

Persistance des données

Le répertoire de données interne est /var/lib/postgresql/data. Tant qu'il n'est pas monté sur un volume ou un bind mount, les données disparaissent à la suppression du conteneur. Le volume nommé pgdata de l'exemple garantit que vos bases survivent aux recréations du conteneur.

Personnalisation et connexion

Au premier lancement, vous pouvez définir POSTGRES_USER (nom du superutilisateur, postgres par défaut) et POSTGRES_DB (base créée automatiquement). Pour ouvrir un shell SQL : docker exec -it postgres psql -U postgres. Depuis l'hôte, connectez-vous sur localhost:5432 avec votre client habituel.