带有一个挂载点的 Docker 多 postgres 容器

Posted

技术标签:

【中文标题】带有一个挂载点的 Docker 多 postgres 容器【英文标题】:Docker multi postgres containers with one mount point 【发布时间】:2021-04-08 05:08:56 【问题描述】:

我有两个 Postgres 数据库,我想在主题之间同步数据。

到目前为止,我有这两个容器,完全相同,不同的帖子和不同的名称。

docker container run --name='p1' -d -p 5435:5432 -v /tmp/dbs/test/:/var/lib/postgresql/data postgres


docker container run --name='p2' -d -p 5436:5432 -v /tmp/dbs/test/:/var/lib/postgresql/data postgres  

问题发生在某些事情发生变化时。

如果我在 p1 中更改某些内容,例如插入一行,那么我在 p2 中看不到它。

但如果我杀死并再次运行容器,那么我可以在两个主题中看到插入的数据。

为什么会这样? 有没有办法在主题之间同步数据?

【问题讨论】:

【参考方案1】:

在同一个文件上运行两个 postmaster 进程肯定会导致数据损坏。不要那样做。

您不能使用标准 PostgreSQL 进行多主复制,但您可以拥有只读备用服务器。

【讨论】:

以上是关于带有一个挂载点的 Docker 多 postgres 容器的主要内容,如果未能解决你的问题,请参考以下文章

通过 boot2docker 将卷挂载到 postgres 容器

同一挂载点的 Icecast 不同登录

docker-compose spring boot无法连接到Postgres [重复]

如何在 docker-compose 中访问 Postgres 数据库

来自不同挂载点的相同值

docker-compose 等待启动,直到挂载主机文件系统