docker组成不坚持数据

我有以下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是我之前构build的一个docker镜像。 这样做的问题是在执行docker-compose stop后数据丢失。 任何人都知道问题是什么?

看起来你正在定义一个卷,但是指定要使用的绑定挂载。

不同的是,在某种意义上,卷实际上是自己的独立“驱动器”,其中绑定挂载需要映射到本地系统上的特定文件path。

如果您检入当地的./pgdata目录,您应该find您以前的所有数据; 并要解决您的问题,您将要删除./从中, 只需指定名称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: {}