PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Trwała baza danych przy użyciu woluminów Docker

Według Dockment Docker Compose , kiedy piszesz coś takiego:

volumes:
  - /var/lib/postgresql/data

Tworzy nowy wolumin dockera i mapuje go do /var/lib/postgresql/data wewnątrz kontenera. Dlatego za każdym razem, gdy uruchamiasz docker-compose up i docker-compose down , tworzy nową objętość. Możesz potwierdzić zachowanie za pomocą docker volume ls .

Aby tego uniknąć, masz dwie możliwości:

(A) Mapuj katalog hosta do kontenera

Możesz mapować katalog hosta do kontenera za pomocą <HOST_PATH>:<CONTAINER_PATH> .

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

Dane postgresql zostaną zapisane w /path/to/your/host/directory hosta kontenera.

(B) Użyj zewnętrznego kontenera

docker-compose ma opcję zewnętrznego kontenera .Kiedy jest ustawione na true, nie zawsze tworzy głośność.Oto przykład.

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

Z external: true , docker-compose nie utworzy mypostgredb wolumin, więc musisz go utworzyć samodzielnie za pomocą następującego polecenia:

docker volume create --name=mypostgredb

Dane postgresql zostaną zapisane w woluminie dockera o nazwie mypostgredb . Przeczytaj odnośnik po więcej szczegółów.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie Psycopg2 zwracające Decimal('value')

  2. Zastosowanie szyn dla wielu najemców:jakie są zalety i wady różnych technik?

  3. Czy PostgreSQL utrzymuje stałe ładowanie swoich interpreterów pl*?

  4. Aktualizacje oparte na niestandardowych wyzwalaczach dla PostgreSQL

  5. dowolny sposób na tworzenie sparametryzowanych zapytań i enkapsulację pythona w funkcji