我有以下docker-compose.yml
文件:
version: '2'
services:
web:
image: myspringapp:1
ports:
- "8080:8080"
depends_on:
- myspringapp_postgres
myspringapp_postgres:
image: postgres:9.4
ports:
- "5432:5432"
volumes:
- ./pgdata:/var/lib/postgresql/data
volumes:
pgdata: {}
myspringapp是我之前构建的docker镜像。这样做的问题是在执行docker-compose stop
后数据丢失了。有谁知道问题是什么?
答案 0 :(得分:0)
看起来您正在定义卷,但指定要使用的绑定装载。
这里的不同之处在于卷实际上是它自己的孤立“驱动器”,在某种意义上,绑定挂载需要映射到本地系统上的特定文件路径。
如果您在当地./pgdata
目录中办理登机手续,则应找到以前的所有数据;要修复您的问题,您需要从中移除./
,只需指定名称pgdata
,以便它使用定义的卷。当然,这会让你重新焕发活力。
<强>撰写-file.yml 强>
version: '2'
services:
web:
image: myspringapp:1
ports:
- "8080:8080"
depends_on:
- myspringapp_postgres
myspringapp_postgres:
image: postgres:9.4
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata: {}