阅读后
How to persist data in a dockerized postgres database using volumes
我知道将卷挂载到本地主机文件夹,这是防止数据丢失的好方法,以防止在docker进程中发生致命错误。
我使用Windows作为主机和基于Linux的docker镜像。 Windows将postgres数据(基于Linux的docker映像)挂载到Windows主机目录时出现问题 - Mount Postgres data to Windows host directory
后来,我发现了另一种技术
postgres:
build:
context: ./postgres
dockerfile: Dockerfile
restart: always
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data: {}
我可以使用非外部卷(我还不知道那是什么)
实施后,我尝试执行
docker-compose down
docker-compose up
数据仍在那里。
我可以知道,
答案 0 :(得分:1)
但一个好的做法是在主机或2个容器中的容器1上有2个DB 1(然后在容器内有数据),在主/从模式下同步,以便具有高容量的容器维护,例如,这是高可用性只是不备份! :)如果它不存在你必须创建它当然:-)
不,它是您共享/ var / lib / postgres的地方所以在您的示例中,在主机上名为postgres_data的目录中
(使用完整路径是一种很好的做法,然后你自己看到/猜测文件中定义的位置):)