docker postgresql 如何保存实例中的 config

2022-02-21 09:47:46 +08:00
 rationa1cuzz
如题,我在一个启动的 postgresql (镜像:postgres )中修改了配置文件( pg_hba.conf postgresql.conf ),主要是一些日志输出格式。想把这个实例保存下来,就像往常一样 commit ,然后重新启动就报错 initdb: error: directory "/var/lib/postgresql/data" exists but is not empty 。

网上搜了一圈大致原因是应该走了初始化,默认的是初始化路径下又有内容,也尝试了-e PGDATA 参数无效,有没有大佬知道如何处理该问题,
1085 次点击
所在节点    Docker
5 条回复
yangyaofei
2022-02-21 10:18:17 +08:00
commit 之前删了 "/var/lib/postgresql/data" 就好了吧
rationa1cuzz
2022-02-21 15:18:23 +08:00
@yangyaofei 删掉我就无法保存状态的,相当于恢复出厂设置
另外找到解决办法了参考这边文章: https://www.cnblogs.com/runnerjack/p/7417881.html
yangyaofei
2022-02-21 16:48:22 +08:00
@rationa1cuzz 这..... 如果想保存状态不应该是把那个文件夹作为 volumes 映射出来么....
rationa1cuzz
2022-02-21 17:01:57 +08:00
@yangyaofei 映射出来太麻烦了,想直接放在镜像中,只能这样做,确实映射出来更好更安全,但是我想关于这个镜像的东西都在镜像中,另外,我对启动后的实例的数据并不关心。
512357301
2022-04-02 21:18:22 +08:00
正常情况下 docker 容器就像一个个虚拟机一样,你在里面的改动是会被保留的,不清楚你是怎么重新启动的,我是通过可视化界面管理的,日常点击启动停止都没事的。
其次你可以把你已经修改了配置的这个容器导出来,导出成一个新的镜像,然后启动这个镜像,也可以
还有就是映射到本地文件夹确实是最好的方案,因为这样确实更稳妥,也更利于持久化

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/835306

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX