В случае использования очень важно, чтобы докер автоматически выбирал порт в некоторых случаях, например, при сине-зеленом развертывании на одном хосте.
Например, вы запускаете свой контейнер в AWS ECS, и существует один экземпляр EC2, поэтому вы не сможете выполнить сине-зеленое развертывание, в этом случае вы получите сообщение об ошибке, похожее на
служебному тесту не удалось разместить задачу, поскольку ни один контейнерный экземпляр не удовлетворял всем его требованиям. Ближайший соответствующий экземпляр контейнера 97d97ce9-967d-49ad-83ad-f4f904aae1f6 уже использует порт, необходимый для вашей задачи. Для получения дополнительной информации см. Раздел «Устранение неисправностей».
Вы также можете заглянуть в эту статью,
Если у вас есть служба с 2 контейнерами (задачами), вам нужно как минимум 2 экземпляра контейнера ECS, поскольку несколько контейнеров не могут работать на одном и том же порту на одном сервере, каждый контейнер размещается на отдельном сервере. Поэтому для запуска нескольких контейнеров в одном и том же экземпляре контейнера нам нужно динамическое сопоставление портов!
Это в контексте AWS, вы можете реплицировать и в вашем случае, развернув несколько сервисов на вашем хосте, используя динамическое сопоставление портов.
понимание-динамический порт-отображение-в-Амазонка-ЭКС-с-прикладная балансировкой нагрузки
Это один случай, другой случай, вы можете запустить несколько служб одного и того же контейнера Docker, потому что всем нужен один и тот же порт, что может быть достигнуто с помощью динамического порта.
Другим случаем может быть потоковый движок Wowza, которому требуется динамический порт или диапазон портов для публикации и получения потока от клиента.
Здесь показано динамическое сопоставление портов в случае AWS.
https://aws.amazon.com/premiumsupport/knowledge-center/dynamic-port-mapping-ecs/