Я хочу создать кластер PostgreSQL, состоящий из главного и двух подчиненных в трех контейнерах.Я хочу сделать это с помощью docker-compose.Все работает нормально, но я не могу пропинговать контейнеры с моего Mac.
Вот код моего docker-compose.yml.
В Stackoverflow есть эта нить Как я могу пропинговать свой докер-контейнер с моего хоста , который адрес докера автономный, а не docker-compose.
version: '3.6'
volumes:
pgmaster_volume:
pgslave1_volume:
pgslave2_volume:
services:
pgmaster:
container_name: pgmaster
build:
context: ../src
dockerfile: Dockerfile
image: docker-postgresql:latest
environment:
NODE_NAME: pgmaster # Node name
ports:
- 5422:5432
volumes:
- pgmaster_volume:/home/postgres/data
networks:
cluster:
ipv4_address: 10.0.2.31
aliases:
- pgmaster.domain.com
pgslave1:
container_name: pgslave1
build:
context: ../src
dockerfile: Dockerfile
image: docker-postgresql:latest
environment:
NODE_NAME: pgslave1 # Node name
ports:
- 5441:5432
volumes:
- pgslave1_volume:/home/postgres/data
networks:
cluster:
ipv4_address: 10.0.2.32
aliases:
- pgslave1.domain.com
pgslave2:
container_name: pgslave2
build:
context: ../src
dockerfile: Dockerfile
image: docker-postgresql:latest
environment:
NODE_NAME: pgslave2 # Node name
ports:
- 5442:5432
volumes:
- pgslave2_volume:/home/postgres/data
networks:
cluster:
ipv4_address: 10.0.2.33
aliases:
- pgslave2.domain.com
networks:
cluster:
driver: bridge
ipam:
config:
- subnet: 10.0.2.1/24
На моем MacУ меня есть локальная сеть 192.168.0.0.Я ожидаю, что при выполнении ping 10.0.2.31 я могу пропинговать свой контейнер, но это невозможно.Я думаю, что это связано с созданием виртуальной машины Linux внутри Mac, где контейнеры живут, а IP-адреса вне этой виртуальной машины недоступны.
Может ли кто-нибудь помочь мне понять, как сделать эти три IP-адреса доступными?IP-адреса доступны из одного контейнера в другой.
Вот мой полный код: https://github.com/sasadangelo/docker-postgres