如何使用docker进行持久存储
我有一个多容器应用程序,即在docker-compose.yml文件中使用postgres图像。 Postgres容器在主机上具有永久存储容量。
当我第一次运行docker-compose时一切正常,postgres在我的主机文件夹中创建db文件。 之后,我需要使用docker临时关闭应用程序 - 如果我要更改Web容器的代码,请将其关闭。
当我第二次运行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
我解决了这个问题。 这可能是因为我使用主机root用户更改了pgdb目录的权限。 默认情况下,我无法在主机中打开pgdb,因为所有者是postgres用户。 我可能是错的,但在我停下来改变决议后,问题就没有了。
链接地址: http://www.djcxy.com/p/18247.html上一篇: How to make persistent storage with docker
下一篇: How to mount host volumes into docker containers in Dockerfile during build