Каков вариант использования, позволяющий докеру автоматически выбирать диапазон портов с флагом -P?
Это просто удобство, чтобы вам не нужно было явно передавать определенный порт? Но тогда любая вещь, нуждающаяся в доступе к этой службе, должна знать порт, верно?
Что касается варианта использования, очень важно позволить докеру автоматически выбирать порт в некоторых случаях, таких как сине-зеленое развертывание на одном хосте.
Например, вы запускаете свой контейнер на AWS ECS и есть один экземпляр EC2, поэтому вы не сможете выполнить сине-зеленое развертывание, в этом случае вы получите сообщение об ошибке, например
service test was unable to place a task because no container instance met all of its requirements. The closest matching container-instance 97d97ce9-967d-49ad-83ad-f4f904aae1f6 is already using a port required by your task. For more information, see the Troubleshooting section.
Вы также можете ознакомиться с этой статьей,
If you have a service with 2 containers (tasks), you need at least 2 ECS container instances because multiple containers can’t run on the same port on the same server, each container is hosted on a separate server. So in order to run multiple containers over the same container instance, we need Dynamic port mapping!
Это в контексте AWS, вы также можете реплицировать в своем случае, развернув несколько сервисов на своем хосте с помощью динамического сопоставления портов.
понимание-динамического-сопоставления-портов-в-amazon-ecs-с-приложением-балансировщиком нагрузки
Это один случай, другой случай может заключаться в том, что вы сможете запускать несколько служб одного и того же контейнера докеров, потому что всем нужен один и тот же порт, что может быть достигнуто с помощью динамического порта.
Другим случаем может быть механизм потоковой передачи Wowza, которому требуется динамический порт или диапазон портов для публикации и получения потока от клиента.
Здесь объясняется динамическое сопоставление портов в случае AWS.
https://aws.amazon.com/premiumsupport/knowledge-center/dynamic-port-mapping-ecs/