[英]How to connect 2 running containers to each other in docker-compose?
[英]bitnami/postgresql-repmgr docker containers not finding each other
我正在為兩個數據庫容器使用 bitnami/postgresql-repmgr docker 圖像。 如果兩個容器都在一台服務器上運行並與我的本地 docker.network 相互連接,它們工作沒有問題並且復制完成(在 bitnami 的 dockerhub 中注意到默認配置),但是當我將它們分成兩部分時服務器並發布它們的端口(與我們為服務器所做的所有常見配置相同)復制無法完成,容器無法找到彼此作為伙伴節點。
數據庫一的 docker-compose 配置的一部分:
pg-0:
image: bitnami/postgresql-repmgr:14
ports:
- "5432:5432"
container_name: db1
volumes:
- pg_0_data:/bitnami/postgresql
environment:
- POSTGRESQL_POSTGRES_PASSWORD=adminpassword
- POSTGRESQL_USERNAME=customuser
- POSTGRESQL_PASSWORD=custompassword
- POSTGRESQL_DATABASE=customdatabase
- REPMGR_PASSWORD=repmgrpassword
- REPMGR_PRIMARY_HOST=pg-0
- REPMGR_PARTNER_NODES=pg-0,< second database servers public ip >
- REPMGR_NODE_NAME=pg-0
- REPMGR_NODE_NETWORK_NAME=pg-0
networks:
- main
對於數據庫二:
pg-1:
image: bitnami/postgresql-repmgr:14
ports:
- "5432:5432"
container_name: db2
volumes:
- pg_1_data:/bitnami/postgresql
environment:
- POSTGRESQL_POSTGRES_PASSWORD=adminpassword
- POSTGRESQL_USERNAME=customuser
- POSTGRESQL_PASSWORD=custompassword
- POSTGRESQL_DATABASE=customdatabase
- REPMGR_PASSWORD=repmgrpassword
- REPMGR_PRIMARY_HOST=< first database servers public ip>
- REPMGR_PARTNER_NODES=< first database servers public ip >,pg-1
- REPMGR_NODE_NAME=pg-1
- REPMGR_NODE_NETWORK_NAME=pg-1
networks:
- main
請注意,我在第三台服務器上的 pgpool 容器可以連接到第一台服務器並寫入數據庫,但是當涉及到復制時,它們無法正常工作。 感謝您的關注!
我試圖通過重疊的 docker.network 來做到這一點。 當我將它們部署在單個主機上時,副本可以正常工作。
當我將它們部署在不同的主機上時,無法建立網絡。 並且日志顯示:
postgresql-repmgr 03:18:22.32 INFO ==> Waiting for primary node...
我已經使用 docker alpine 容器測試了 basic.network 配置,我可以 ping 不同主機上的不同容器。
此外,不可能將圖像作為 docker 群運行的配置。
我找到了解決辦法。
sudo ethtool -K .network interface> tx off
有關此問題(一般)的更多詳細信息,請參見: https://serverfault.com/questions/1073337/docker-swarm-containers-in-one-overlay.network-but-on-different-nodes-cant-rea
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.