我有一个多容器应用程序,即使用docker-compose.yml文件中的postgres图像。 Postgres容器在主机上有卷用于持久存储。
当我第一次运行docker-compose时一切正常时,postgres会在我的主机文件夹中创建db文件。 之后,如果我要更改Web容器的代码,我需要暂时关闭应用程序并使用docker-compose。
当我第二次运行docker-compose时,postgres会覆盖所有db文件,但我需要这些数据不会更改。我该如何解决这个问题?
我的docker-compose.yml
version: '2'
services:
web:
build: ./web
command: python3 main.py
volumes:
- ./web:/app
ports:
- "80:80"
depends_on:
- db
- redis
links:
- db:db
- redis:redis
db:
image: postgres
ports:
- "5432:5432"
environment:
- POSTGRES_PASSWORD:0000
volumes:
- ./pgdb:/var/lib/postgresql/data
redis:
image: redis
ports:
- "6379:6379"
command: redis-server --appendonly yes
volumes:
- ./redisdb:/data
答案 0 :(得分:0)
我解决了这个问题。这可能是因为我使用主机 root 用户更改了 pgdb 目录的权限。默认情况下,我无法在主机中打开 pgdb ,因为所有者是 postgres 用户。我可能是错的但是在我停下来改变分辨率后问题就消失了。