我在努力理解Docker,但在此过程中,我的应用程序的PostgreSQL数据库似乎出现了损坏。
我正在使用Docker Swarm启动我的应用程序,但在PostgreSQL容器中不断收到以下错误:
2021-02-10 15:38:51.304 UTC 120 LOG: database system was shut down at 2021-02-10 14:49:14 UTC
2021-02-10 15:38:51.304 UTC 120 LOG: invalid primary checkpoint record
2021-02-10 15:38:51.304 UTC 120 LOG: invalid secondary checkpoint record
2021-02-10 15:38:51.304 UTC 120 PANIC: could not locate a valid checkpoint record
2021-02-10 15:38:51.447 UTC 1 LOG: startup process (PID 120) was terminated by signal 6
2021-02-10 15:38:51.447 UTC 1 LOG: aborting startup due to startup process failure
2021-02-10 15:38:51.455 UTC 1 LOG: database system is shut down
起初,我试图通过进入文件系统中的挂载驱动器来修改容器中的 pg_hba.conf 文件,该驱动器位于
/var/lib/docker/volumes/postgres96-data-volume/_data
然而,每次我重启容器后,对于 pg_hba.conf 的更改都会被还原。因此今天早上,我在挂载文件夹中添加了一个名为test的虚拟文件,并重新启动容器,期望该文件将被删除,以获得一种视觉验证:重启容器会自动将该挂载点下的所有内容替换为其原始格式。但当我再次重启时,就开始出现阻止我的应用程序启动的错误消息了。
我删除了 test 文件并再次重启了容器,但错误消息仍然存在。
我看过许多解决方案,但我的问题更多地是想了解为什么添加一个文件会导致这种情况?我添加了一个文件,导致我的挂载卷已经被损坏了吗?
谢谢。