Назад | Перейти на главную страницу

Как получить доступ к сервису, который находится в другом стеке?

У меня есть конфигурация роя докеров, и там я развернул два стека (main и mon) Я могу открыть порт в одном стеке и ссылаться на него из другого. Однако я пытался найти способ не делать этого, а вместо этого получить доступ к нему с помощью 127.0.0.11 DNS.

В mon У меня есть служба называется grafana

С помощью https://docs.docker.com/docker-cloud/apps/service-links/#discovering-services-or-containers-on-another-stack что указывает на то, что я могу использовать имя стека для ссылки на него, не сработало, когда я попытался ping grafana.mon он только что вернул неверное имя хоста.

Для этого все, что вам нужно, это использовать одну и ту же сеть, тогда они будут видны. В моем случае я определил сеть под названием public, на который ссылаются извне все мои стеки

docker network create -d overlay --attachable public

Оттуда в моем файле docker-compose.yml у меня есть

networks:
  public:
    external:
      name: public

Чтобы получить к нему доступ, просто используйте имя службы.