NL和
直接的技术咨询?
立即致电经验丰富的DBA,以获取数据库帮助,支持和支持。如有必要,我们可以直接与您联系!035 369 0304
首页 > 博客

如何在Docker上运行Postgres第3部分

克雷格·希利 12/11/2019 10:17上午
分类: BLOG,DBMS,开源,PostgreSQL,技术

在先前的博客文章中,我解释了如何通过标准映像在容器中实现PostgreSQL数据库。在本文中,我将介绍PostgreSQL集群的实现。好吧...。 PostgreSQL的使用术语集群来指代“由单个PostgreSQL服务器实例管理的数据库的集合”。我在更一般的意义上使用它来指代高可用性。

使用预建项目进行基本复制

PostgreSQL的 从9.0版开始具有流复制,其中WAL日志在主数据库和只读从数据库之间传输(更多信息可以在这里找到)。设置非常容易,那么Doc​​ker增加了什么?您可以使用docker-compose命令和docker-compose.yml文件来控制某些Docker容器。主数据库和从数据库因此被视为一个单元。

我要去 Hamed Momeni的中级帖子,但有所更改。

首先,必须创建一个docker网络,以便我们的容器可以相互通信:

docker network create bridge-docker

然后,我们从BitBucket中提取文件和目录:

git clone //bitbucket.org/CraigOptimaData/docker-pg-cluster.git

将目录更改为新创建的名为docker-pg-cluster的目录。

cd docker-pg-cluster

然后,您可以使用docker-compose up命令:

docker-compose up

现在您必须要有耐心,因为在构建主映像和从属映像时需要做很多事情。您将看到一些红色信号,警告应延迟软件包配置。那是正常的。最终,映像已准备就绪并可以实际运行。此时,初始化时应显示pg_master_1和pg_slave_1的日志。如果一切顺利,日志将不再向上滚动。

如果是这样,则主机和从机都可以运行。但是由于我们在不带标志的情况下启动了docker-compose命令,因此要查看错误,我们必须将其关闭并在后台重启。使用Ctrl-C,我们离开容器,使其也停止。然后,使用-d标志运行“ docker compose up”命令:

docker-compose up -d

docker-compose文件

如果查看docker-pg-cluster目录,将看到以下结构:

Docker-pg集群:
docker-compose.yml

主:

Docker文件
setup-master.sh

奴隶:

Docker文件
setup-slave.sh

主要组件是由docker组成的YAML文件。由于它是一个YAML文件,因此必须格外小心。它分为三个部分,分别是主设备,从设备的声明以及最后的常规设置。绿色的数据是docker-compose用于创建容器的数据。容器名称如下:

Docker-compose.yml

版本:“ 3”
服务: