Docker : mes données PostgreSQL disparaissent à chaque redémarrage
asked 4 months ago262 viewsfr
J'utilise docker run postgres:16. Quand je supprime le conteneur et en relance un, ma base est vide. Comment persister les données ?
AI diagnosis
AI-generated. Not an answer — the community below confirms or corrects it. Always verify before relying on it.
1 Answer
Les fichiers écrits dans un conteneur vivent dans sa couche inscriptible, qui est supprimée avec lui. Il faut un volume monté sur le répertoire de données de Postgres :
docker volume create pgdata
docker run -d --name db \
-e POSTGRES_PASSWORD=secret \
-v pgdata:/var/lib/postgresql/data \
-p 5432:5432 postgres:16
Avec Compose :
services:
db:
image: postgres:16
environment:
POSTGRES_PASSWORD: secret
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:
Attention : docker compose down -v supprime les volumes nommés. Utilise simplement docker compose down pour garder les données.
Préfère un volume nommé à un montage de dossier (./data:/var/lib/...) : c'est plus simple côté permissions, surtout sous Windows et macOS.
Sign in to tell others whether this worked.
Sign in and verify your email to post an answer.