Докер роится с кастомной сетью
Я пытаюсь понять, как правильно использовать режим роя в Docker. Сначала я попытался запустить контейнеры на своих 2 рабочих и управляющем компьютере без указания пользовательской сети (поэтому я использую входную оверлейную сеть по умолчанию). Однако, если я использую входную сеть, по какой-то причине я не могу решитьtasks.myservice
.
Поэтому я попытался настроить пользовательскую сеть следующим образом:
docker network create -d overlay elasticnet
Так что теперь, когда яbash
в один из контейнеров, я могу успешно решитьtasks.myservice
но я больше не могу получить доступ к порту, который я определил при создании службы под--publish
внешне (что я мог, когда я использовал входную сеть).
Есть ли способ либо:
Используйте входную сеть и сможете решитьtasks.myservice
или любая другая запись DNS, которая будет направлена на все мои сервисные контейнеры?
Или используйте пользовательскую сеть, но--publish
порты правильно, чтобы я мог получить к ним доступ извне?
РЕДАКТИРОВАТЬ
Вот как я создаю свой сервис,
Без кастомной сети:
docker service create --replicas 3 --label elasticsearch --endpoint-mode vip --name elastic -e ES_HOSTS="tasks.elastic" --publish 9200:9200 --mount type=bind,source=/tmp/es,destination=/usr/share/elasticsearch/config --update-delay 10s es:latest
С пользовательской сетью:
docker service create --replicas 3 --network elasticnet --label elasticsearch --endpoint-mode vip --name elastic -e ES_HOSTS="tasks.elastic" --publish 9200:9200 --mount type=bind,source=/tmp/es,destination=/usr/share/elasticsearch/config --update-delay 10s es:latest