У меня есть docker рой, состоящий из нескольких сервисов. Я создал рой с помощью файла docker -compose.yml. Файл содержит несколько определений служб, таких как
my_service_1:
image: my_service_1_image
ports:
- 5000
my_service_2:
image: my_service_2_image
ports:
- 5000
...
Когда я делаю docker-compose up
, я могу получить порт контейнера через docker-compose port my_service_1 5000
.
Теперь я запускаю свои службы через docker stack deploy --compose-file docker-compose.yml my_stack
. Я могу получить порт my_service_1 через что-то вроде
docker service inspect --format=='{{.Endpoint.Ports}}' my_stack_my_service_1 | cut -d" " -f4
, но я бы предпочел правильную, родную команду docker, если таковая имеется.