Docker : mes données PostgreSQL disparaissent à chaque redémarrage
posée 4 months ago263 vuesfr
J'utilise docker run postgres:16. Quand je supprime le conteneur et en relance un, ma base est vide. Comment persister les données ?
Diagnostic IA
Généré par IA. Ce n'est pas une réponse — la communauté ci-dessous le confirme ou le corrige. Vérifiez toujours avant de vous y fier.
1 réponse
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.
Connectez-vous pour dire si ça a marché.
Sign in and verify your email to post an answer.