Не открытые порты в режиме Docker Swarm - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь настроить очень простой сервис с использованием 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 + последний докер.

...