Если использование хост-сети является жестким требованием, то ничто в пространстве Docker не сможет контролировать или ограничивать те порты, которые служба использует или не использует.Вам необходимо изменить специфический для службы файл конфигурации, переменную среды или аргумент командной строки, чтобы он прослушивался где-то еще.
Особенно для серверов, которые прослушивают один TCP-порт (например, для большинства баз данных и на основе HTTP).серверы) настройка моста Docker / NAT по умолчанию должна работать нормально;альтернативные настройки, такие как хост-сеть и macvlan, не нужны.Если вы хотите использовать стандартную настройку, это тривиально:
version: '3'
services:
mysql:
image: mysql
ports: ['9999:3306'] # listen on host port 9999 instead