1
ccccccccw OP 丢失的是测试服务器的数据,数据应该是恢复不了了,但是想弄懂到底是因为什么原因造成的,后续又重新找了一个服务器做测试,相同的步骤,发现数据并没有丢失
|
2
novolunt 2022-07-07 17:32:09 +08:00
version: '2'
services: postgresql: image: docker.io/bitnami/postgresql:11 volumes: - 'postgresql_data:/bitnami/postgresql' volumes: postgresql_data: driver: local |
3
ccccccccw OP 有大佬可以帮忙分析一下吗,还是没想明白原因
|
4
defunct9 2022-07-25 13:58:34 +08:00
开 ssh ,让我上去看看
|
5
rushssss 2022-08-05 14:15:13 +08:00
因为 postgresql 的数据实际存储在 /var/lib/postgresql/data 下,它直接在 Dockerfile 中声明了一个 VOLUME 是在 /var/lib/postgresql/data
而你挂载的是 /var/lib/postgresql ,由于 UnionFS 的特性,挂载 /var/lib/postgresql 并不影响下边再挂一个 /var/lib/postgresql/data 最后你的数据实际上没有丢,在宿主机上的 /var/lib/docker/volumes 下找找有惊喜 |
8
rushssss 2022-08-05 16:17:58 +08:00
哦,我看的是 2 楼的例子
不过我试了一下,以下这个例子是 OK 的,在 ./postgresql/data 出现了数据,无法复现你的问题 ```yaml version: '3' services: db: image: postgres:12-alpine restart: on-failure environment: POSTGRES_USER: demo POSTGRES_DB: demo POSTGRES_PASSWORD: demo volumes: - ./postgresql/data:/var/lib/postgresql/data ``` |