Там нет прямой путь, чтобы получить, что еще Вы должны просто забыть о работе с IP-адресов и полагаться. разрешая использование имен DNS (имена служб).
Если вы действительно этого хотите, вы можете создать скрипт, который сделает следующее.
Получить идентификаторы задач и их имена узлов для вашей службы.
docker service ps myservice
Это будет возвращать что-то вроде
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR
31cb7clxw3lfi1y6ko12edjys foo.1 alpine:3.4 vmw-node03 Running Running 30 minutes ago
9gkzs118txbc8a8gvla3bildq foo.2 alpine:3.4 vmw-node01 Running Running 30 minutes ago
Услуга имеет две задачи, работающие на разных узлах.
Получить идентификатор контейнера для каждой задачи
Я просто делаю это для одной задачи здесь
docker inspect --format "{{.Status.ContainerStatus.ContainerID}}" 31cb7clxw3lfi1y6ko12edjys
которая возвращает идентификатор контейнера для выполнения этой задачи
13a24dff4bd1f9351938b09d32db451406ed64b5f890f66f18fec12c611e9175
Получение контейнера IP
docker $(docker-machine config vmw-node03) inspect --format "{{.NetworkSettings.IPAddress}}" 13a24dff4bd1f9351938b09d32db451406ed64b5f890f66f18fec12c611e9175
Который возвращает
172.17.0.2
'Докер inspect' претендует на поддержку задач в дополнение к изображениям и контейнеров. – BMitch