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数据不会丢失。