version: '3'
services:
db:
image: postgres
web:
build: .
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
为什么我在运行 docker-compose build --force-em --no-cache
时不会丢失数据。如果这是正常的,为什么我们需要为数据文件夹创建卷?
最佳答案
当运行命令 docker-compose build --force-em --no-cache
时,这只会从你的 Dockerfile
构建 web Docker 镜像案例在同一目录中。
此命令不会停止您之前使用此组合文件启动的容器,因此您希望在运行此命令时丢失任何数据。
但是,一旦您使用 docker-compose down
删除容器或当容器停止 docker-compose rm
时,您将找不到 postgres 数据你重新启动容器。
如果你想持久化数据,并让容器在重新创建时拾取它,你需要给 postgres 数据卷一个这样的名称。
version: '3'
services:
db:
image: postgres
volumes:
- pgdata:/var/lib/postgresql/data
web:
build: .
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
现在重新创建容器时,postgres 数据不会丢失。
关于postgresql - 为什么我在重建 docker 镜像时不会丢失 postgresql 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48077901/