PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Постоянна база данни, използваща докер томове

Според Документ на Docker Compose , когато напишете нещо като:

volumes:
  - /var/lib/postgresql/data

Създава нов докер том и го свързва с /var/lib/postgresql/data вътре в контейнера. Следователно всеки път, когато стартирате docker-compose up и docker-compose down , създава нов обем. Можете да потвърдите поведението с docker volume ls .

За да го избегнете, имате две възможности:

(A) Карта на хост директория в контейнер

Можете да картографирате директория на хост в контейнер, като използвате <HOST_PATH>:<CONTAINER_PATH> .

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

Данните на postgresql ще бъдат запазени в /path/to/your/host/directory на хоста на контейнера.

(B) Използвайте външен контейнер

docker-compose има опция за външен контейнер .Когато е зададено на true, няма винаги да създава обем. Ето един пример.

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

С external: true , docker-compose няма да създаде mypostgredb обем, така че трябва да го създадете сами, като използвате следната команда:

docker volume create --name=mypostgredb

Данните на postgresql ще бъдат записани в докер том с име mypostgredb . Прочетете референция за повече подробности.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Споделете връзка с postgres db между процеси в Python

  2. При неуспешно инсталиране на pg gem, mkmf.rb не може да намери заглавни файлове за ruby ​​(Mac OSX 10.6.5)

  3. Как да използвам ALIAS в клауза ORDER BY на PostgreSQL?

  4. Разрешението за дъмп на Postgresql е отказано

  5. Как да рендирате обект в Django Views?