sql >> Database teknologi >  >> RDS >> PostgreSQL

Vedvarende database ved hjælp af docker-volumener

Ifølge Dockment of Docker Compose , når du skriver noget som:

volumes:
  - /var/lib/postgresql/data

Det opretter en ny docker-volumen og knytter den til /var/lib/postgresql/data inde i containeren. Derfor hver gang du kører docker-compose up og docker-compose down , det skaber ny lydstyrke. Du kan bekræfte adfærden med docker volume ls .

For at undgå det har du to muligheder:

(A) Tilknyt værtsmappe til container

Du kan tilknytte værtsmappen til container ved hjælp af <HOST_PATH>:<CONTAINER_PATH> .

volumes:
  - /path/to/your/host/directory:/var/lib/postgresql/data

Dataene for postgresql vil blive gemt i /path/to/your/host/directory af containerværten.

(B) Brug ekstern beholder

docker-compose har en mulighed for ekstern container .Når den er sat til sand, vil den ikke altid skabe lydstyrke. Her er et eksempel.

version: '2'
services:
  dbdata:
    image: postgres:9.5.2
    volumes:
      - mypostgresdb:/var/lib/postgresql/data
volumes:
  mypostgresdb:
    external: true

Med external: true , vil docker-compose ikke oprette mypostgredb volumen, så du skal oprette den på egen hånd ved at bruge følgende kommando:

docker volume create --name=mypostgredb

Dataene for postgresql vil blive gemt i docker-volumen med navnet mypostgredb . Læs reference for flere detaljer.




  1. Får en Entity Framework-fejl ved at køre migreringer på en MySQL-database. Forkert brug af rumligt/fuldtekst/hash-indeks og eksplicit indeksrækkefølge

  2. Importer Excel-data til relationelle tabeller på MySQL

  3. TIMESTAMPDIFF i Oracle 11g?

  4. Viser BLOB-billede fra Mysql-database til dynamisk div i html