У меня есть конфигурация роя докеров, и там я развернул два стека (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
Чтобы получить к нему доступ, просто используйте имя службы.