我有一个docker-compose文件,其中包含:
version: '3'
services:
postgres:
image: "postgres"
network_mode: "host"
volumes:
- "/run/postgresql:/run/postgresql:Z"
- "postgresData:/var/lib/postgresql/data"
volumes:
postgresData: {}
但是,当我运行docker-compose down
然后运行docker-compose up
时,postgres数据会丢失。据我了解,这是预期的默认行为,但是我想更改此设置,以便永远不会重置我的postgres数据。也许我误解了docker-compose down
的用途。我看到还有stop
和start
命令,但似乎不清楚是否可以不运行docker-compose pull
来运行down
。
如何确保我的postgres数据始终存在?
答案 0 :(得分:3)
如果您删除花括号,这应该可以Official doc
version: '3'
services:
postgres:
image: "postgres"
network_mode: "host"
volumes:
- postgresData:/var/lib/postgresql/data
volumes:
postgresData:
docker-compose up :offcial-doc up -构建,(重新)创建,启动并附加到服务容器。
docker-compose start :offcial-doc start -启动用于服务的现有容器。
docker-compose down :offcial-doc down -如果要删除卷,则默认情况下停止容器并删除容器,网络,请使用-v标志
docker-compose stop :offcial-doc stop
-停止运行容器而不删除它们。可以使用docker-compose start