Postgresql 使用静态IP在两个容器之间进行通信
盖伊,我正试图用postgres和WAL技术在我的机器上创建WAL冗余,但我需要在postgres上的.conf文件中设置一些静态ip配置,我正在使用Docker和Docker compose来实现这一点,但我遇到了一个问题,它不起作用!!哈哈Postgresql 使用静态IP在两个容器之间进行通信,postgresql,docker,docker-compose,dockerfile,wal,Postgresql,Docker,Docker Compose,Dockerfile,Wal,盖伊,我正试图用postgres和WAL技术在我的机器上创建WAL冗余,但我需要在postgres上的.conf文件中设置一些静态ip配置,我正在使用Docker和Docker compose来实现这一点,但我遇到了一个问题,它不起作用!!哈哈 version: '3' services: master: build: dockerfile: ./Master/Dockerfile context: .
version: '3'
services:
master:
build:
dockerfile: ./Master/Dockerfile
context: .
restart: always
image: master_psql
container_name: master
hostname: master
ports:
- 5432:5432
volumes:
- ./master_volume:/var/lib/postgresql
networks:
psql-network:
ipv4_address: 192.168.200.2
slave:
build:
dockerfile: ./Slave/Dockerfile
context: .
restart: always
image: slave_psql
container_name: slave
hostname: slave
ports:
- 5433:5432
volumes:
- ./slave_volume:/var/lib/postgresql
networks:
psql-network:
ipv4_address: 192.168.200.3
depends_on:
- master
networks:
psql-network:
driver: bridge
ipam:
config:
- subnet: 192.168.200.0/32
这是我的docker compose,我正在尝试使用docker compose up-d
并收到此错误:错误:对于主用户,仅当连接到具有用户配置的子网的网络时,才支持指定的IP地址
我的dockerfile是:
大师:
FROM postgres:12
RUN apt update && \
apt install -y vim-tiny \
net-tools
COPY ./Master/postgresql.conf /postgresql.conf
COPY ./Master/pg_hba.conf /pg_hba.conf
COPY ./Scripts/init.sql /docker-entrypoint-initdb.d/
COPY ./Scripts/set-config_master.sh /docker-entrypoint-initdb.d/set-config_master.sh
EXPOSE 5432
奴隶:
FROM postgres:12
RUN apt update && \
apt install -y vim-tiny \
net-tools
COPY ./Slave/postgresql.conf /postgresql.conf
COPY ./Slave/recovery.conf /recovery.conf
COPY ./Scripts/init.sql /docker-entrypoint-initdb.d/
COPY ./Scripts/set-config_slave.sh /docker-entrypoint-initdb.d/set-config_slave.sh
EXPOSE 5433
你知道我怎么处理这个问题吗?或者,如果你们知道使用docker创建此结构的简单教程,我将连续2或3天对此进行研究
谢谢
编辑:
docker网络ls
NETWORK ID NAME DRIVER SCOPE
23f667e0fa76 aluradockercap06_production-network bridge local
56a50842c153 booksearcher_development-network bridge local
f1a8e3fa98a9 bridge bridge local
51d08684435f dockerfile_default bridge local
06ece1ec80aa host host local
75835a527e89 my-network bridge local
a566503cb776 none null local
e1c6830c371a postgres_psql-network bridge local
2754168d75b0 projeto_default bridge local
首先,您的网络子网是192.168.200.0/32,这意味着192.168.200.0是包含的唯一地址。我认为您可能打算使用192.168.200.0/24您几乎不需要在Docker中手动配置IP(在这个
Docker compose.yml
文件的上下文中,master
和slave
将可用作主机名);这个配置真的需要它吗?除了所有网络:
块之外,您可能还可以删除容器名称:
和主机名:
。我需要在配置时打开两个容器之间的通信,而不是启动容器,然后配置它们。。这就是为什么我需要配置静态IP,我没有尝试使用主机名进行连接。root@master:/#ping slave ping slave(172.26.0.3)56(84)字节的数据。来自slave.postgres_psql-network的64字节(172.26.0.3):icmp_seq=1 ttl=64 time=0.131 ms来自slave.postgres_psql-network的64字节(172.26.0.3):icmp_seq=2 ttl=64 time=0.057 ms来自slave.postgres_psql-network的64字节(172.26.0.3):icmp_seq=3 ttl=3 ttl=0.055 ms来自slave.postgres_psql-network的64字节(172.26.0.3):icmp_seq=4 ttl=64 time=0.066 ms来自slave.postgres_psql-network的64字节(172.26.0.3):icmp_seq=5 ttl=64 time=0.054 ms正常工作。我仍然需要静态IP。。。当我将主机名放入pg_hba.conf时,不允许使用主机名。------master 2019-12-08 23:21:02.109 UTC[1]上下文:配置文件/var/lib/postgresql/data/pg|u hba.conf“master 2019-12-08 23:21:02.109 UTC[1]致命:无法加载pg|u hba.conf master 2019-12-08 23:21:02.110 UTC[1]日志:数据库系统已关闭------主机复制postgres slave/32 Trust作为启动器您的网络子网是192.168.200.0/32,这意味着192.168.200.0是包含的唯一地址。我认为您可能打算使用192.168.200.0/24您几乎不需要在Docker中手动配置IP(在这个Docker compose.yml
文件的上下文中,master
和slave
将可用作主机名);这个配置真的需要它吗?除了所有网络:
块之外,您可能还可以删除容器名称:
和主机名:
。我需要在配置时打开两个容器之间的通信,而不是启动容器,然后配置它们。。这就是为什么我需要配置静态IP,我没有尝试使用主机名进行连接。root@master:/#ping slave ping slave(172.26.0.3)56(84)字节的数据。来自slave.postgres_psql-network的64字节(172.26.0.3):icmp_seq=1 ttl=64 time=0.131 ms来自slave.postgres_psql-network的64字节(172.26.0.3):icmp_seq=2 ttl=64 time=0.057 ms来自slave.postgres_psql-network的64字节(172.26.0.3):icmp_seq=3 ttl=3 ttl=0.055 ms来自slave.postgres_psql-network的64字节(172.26.0.3):icmp_seq=4 ttl=64 time=0.066 ms来自slave.postgres_psql-network的64字节(172.26.0.3):icmp_seq=5 ttl=64 time=0.054 ms正常工作。我仍然需要静态IP。。。当我将主机名放入pg_hba.conf时,不允许使用主机名。------master 2019-12-08 23:21:02.109 UTC[1]上下文:配置文件/var/lib/postgresql/data/pg|u hba.conf“master 2019-12-08 23:21:02.109 UTC[1]致命:无法加载pg|u hba.conf master 2019-12-08 23:21:02.110 UTC[1]日志:数据库系统已关闭------主机复制postgres slave/32信任