docker run --detach --rm -p 5432:5432 --name pg-0 --network my-network --env REPMGR_PARTNER_NODES=pg-0,pg-1 --env REPMGR_NODE_NAME=pg-0 --env REPMGR_NODE_NETWORK_NAME=pg-0 --env REPMGR_PRIMARY_HOST=pg-0 --env REPMGR_PASSWORD=repmgrpass --env POSTGRESQL_POSTGRES_PASSWORD=adminpassword --env POSTGRESQL_USERNAME=customuser --env POSTGRESQL_PASSWORD=custompassword --env POSTGRESQL_DATAbase=customdatabase bitnami/postgresql-repmgr:latest docker run --detach --rm -p 5432:5432 --name pg-1 --network my-network --env REPMGR_PARTNER_NODES=pg-0,pg-1 --env REPMGR_NODE_NAME=pg-1 --env REPMGR_NODE_NETWORK_NAME=pg-1 --env REPMGR_PRIMARY_HOST=pg-0 --env REPMGR_PASSWORD=repmgrpass --env POSTGRESQL_POSTGRES_PASSWORD=adminpassword --env POSTGRESQL_USERNAME=customuser --env POSTGRESQL_PASSWORD=custompassword --env POSTGRESQL_DATAbase=customdatabase bitnami/postgresql-repmgr:latest docker run --detach --rm --name pgpool -v -p 9999:5432 --network my-network --env PGPOOL_BACKEND_NODES=0:pg-0:5432,1:pg-1:5432 --env PGPOOL_SR_CHECK_USER=customuser --env PGPOOL_SR_CHECK_PASSWORD=custompassword --env PGPOOL_ENABLE_LDAP=no --env PGPOOL_POSTGRES_USERNAME=postgres --env PGPOOL_POSTGRES_PASSWORD=adminpassword --env PGPOOL_ADMIN_USERNAME=admin --env PGPOOL_ADMIN_PASSWORD=adminpassword bitnami/pgpool:latest
以上方法非常简单,最后程序直接访问9999端口即可实现读写分离。
缺点:
1.只能再一个宿主机上执行,不能跨主机。
2.不能挂载数据库路径,数据安全无法保证。



