sql >> Databasteknik >  >> RDS >> PostgreSQL

Beständig databas med dockningsvolymer

Enligt Dockment of Docker Compose , när du skriver något som:

volumes:
  - /var/lib/postgresql/data

Den skapar en ny dockningsvolym och mappar den till /var/lib/postgresql/data inuti behållaren. Därför varje gång du kör docker-compose up och docker-compose down , skapar det ny volym. Du kan bekräfta beteendet med docker volume ls .

För att undvika det har du två alternativ:

(A) Mappa värdkatalogen till container

Du kan mappa katalogen för värddatorn till container med <HOST_PATH>:<CONTAINER_PATH> .

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

Data för postgresql kommer att sparas i /path/to/your/host/directory av behållarvärden.

(B) Använd extern behållare

docker-compose har ett alternativ för extern behållare .När den är inställd på sant skapar den inte alltid volym. Här är ett exempel.

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

Med external: true , kommer docker-compose inte att skapa mypostgredb volym, så du måste skapa den själv med följande kommando:

docker volume create --name=mypostgredb

Data för postgresql kommer att sparas i dockervolymen med namnet mypostgredb . Läs referens för mer information.




  1. Konvertera varje tecken i en sträng till en rad

  2. ORA-01804-fel vid försök att ladda Oracle dbDriver

  3. Codeigniter hanterar användarroller

  4. Oracle - Transponera rader till kolumner