Enxame do Docker com uma rede personalizada

Estou tentando descobrir como usar corretamente o modo enxame no Docker. Primeiro, tentei executar contêineres na minha máquina de 2 trabalhadores e gerenciadores sem especificar uma rede personalizada (então estou usando a rede de sobreposição de entrada padrão). No entanto, se eu usar a rede de entrada, por algum motivo não consigo resolvertasks.myservice.

Então, tentei configurar uma rede personalizada como esta:

docker network create -d overlay elasticnet

Então agora, quando eubash em um dos contêineres, posso resolver com êxitotasks.myservice mas não consigo mais acessar a porta que defini em minha criação de serviço em--publish externamente (o que eu pude quando usei a rede de entrada).

Existe alguma maneira de:

Use a rede de entrada e seja capaz de resolvertasks.myservice ou qualquer outro registro DNS que direcione para todos os meus contêineres de serviço?

Ou, use uma rede personalizada, mas--publish portas corretamente para que eu pudesse acessá-las externamente?

EDITAR

É assim que eu crio meu serviço,

Sem uma rede personalizada:

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

Com uma rede personalizada:

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

questionAnswers(2)

yourAnswerToTheQuestion