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.