Я пытаюсь настроить очень простой сервис с использованием Docker Swarm, и у меня проблема с отображением портов.
У меня есть две машины, давайте назовем их xxx и yyy. Когда я делаю простые
docker run -d -p 9200:9200 -p 9300:9300 elasticsearch:7.4.0
, они оба работают правильно, я могу перейти к xxx: 9200, чтобы получить экземпляр Elasticsearch
Я попытался сделать то же самое с режимом роя, поэтому наХХХ машина, которую я сделал:
docker swarm init --advertise-addr [external IP of xxx machine]
Я получил правильный токен и успешно подключил свою машину к рою. Затем я создал новую оверлейную сеть с использованием
docker network create -d overlay dockerdemo
и создал службу в этом рое с использованием
docker service create --name swarmelasticsearch --network dockerdemo --replicas 2 -p 9200:9200 -p 9300:9300 elasticsearch:7.4.0
Служба успешно создается, на обеих машинах запущены контейнеры с Elasticsearch, но я не могуиди к ним снаружи. Когда я захожу на xxx: 9200 или yyy: 9200 или port-of-xxx: 9200, ничего не происходит. Я не могу добраться до моего сайта. Почему? Нужно ли делать что-то еще? Обе мои машины находятся на виртуальной машине Azure с Ubuntu + последний докер.