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

poze 4 months ago259 gadefr

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 ?

Dyagnostik IA

Se IA ki fè l. Se pa yon repons — kominote a anba a konfime oswa korije l. Toujou verifye anvan ou fye l.

poze 4 months ago

1 Repons

7
✓
✓ Repons yo aksepte

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.

Konekte pou di lòt moun si li te mache.

answered 4 months ago

Sign in and verify your email to post an answer.