我正在Windows上运行由以下docker-compose文件生成的postgres数据库。在运行docker-compose up --build
之前,我使用docker volume --name postgresdata --driver local
创建了一个泊坞窗卷。后者是为了避免将Windows文件夹安装到Postgres中。
但是,当我运行docker-compose down
后跟docker-compose up --build
时,数据库为空,这是我不希望的。任何想法或建议?
这是我正在使用的docker-compose.yml文件:
version: '3.0'
services:
db:
image: postgres:latest
restart: always
ports:
- 5432:5432
env_file:
- env_file
volumes:
- postgresdata
networks:
- db1
market_data:
build: .
environment:
PYTHONUNBUFFERED: 'true'
stdin_open: true
tty: true
links:
- db:db
container_name: market_data_container
volumes:
- '.:/market_data'
depends_on:
- db
networks:
- db1
adminer:
image: adminer
restart: always
ports:
- 8080:8080
networks:
- db1
depends_on:
- db
volumes:
market_data:
postgresdata:
external: true
networks:
db1:
driver: bridge
答案 0 :(得分:1)
Postgres已使用volume来保留数据,但docker-compose down
会删除此卷。您正在撰写文件中使用命名卷,但不能正确安装它。
version: '3.0'
services:
db:
image: postgres:latest
restart: always
ports:
- 5432:5432
env_file:
- env_file
volumes:
- postgresdata:/var/lib/postgresql/data
networks:
- db1
将postgres数据的默认路径添加到您的卷postgresdata:/var/lib/postgresql/data
。这应该解决它。