Например, у нас есть такая конфигурация docker-compose:
version: '3'
services:
web:
build:
context: .
dockerfile: Dockerfile
ports:
- "8069:8069"
volumes:
- .:/code
depends_on:
- postgres1
- postgres2
postgres1:
image: postgres:11
environment:
- POSTGRES_DB=my_postgres1
- POSTGRES_PASSWORD=password
- POSTGRES_USER=user
volumes:
- postgres1:/var/lib/postgresql/data
postgres2:
image: postgres:11
environment:
- POSTGRES_DB=my_postgres2
- POSTGRES_PASSWORD=password
- POSTGRES_USER=user
volumes:
- postgres2:/var/lib/postgresql/data
volumes:
postgres1:
postgres2:
Здесь у нас есть два экземпляра базы данных, которые работают на отдельных хостах postgres1
и postgres2
. И web
служба должна иметь доступ к ним с одного имени хоста.
Нет необходимости обращаться к службам вне докера, например, третья служба должна иметь доступ к этим базам данных с одного хоста. Это ограничение используемой системы, оно не может работать с базами данных с разных хостов.
Эти экземпляры можно присоединить к одному общему хосту, например, получить доступ к базам данных my_postgres1
и my_postgres2
изодин хост?