Docker : mes données PostgreSQL disparaissent à chaque redémarrage

asked 4 months ago262 viewsfr

5

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.

asked 4 months ago

1 Answer

7
✓
✓ Accepted 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.

answered 4 months ago

Sign in and verify your email to post an answer.