Придётся убрать изоляцию с сети, иначе к localhost на хостовой машие из контейнера не обратиться.
Либо, можешь заставить сервис на хостовой машине слушать на всех интерфейсах и обращаться к нему из контейнера по адресу шлюза в виртуальной сети к которой подключен контейнер.
lssssssssssl, там чистая правда и полный ответ на твой вопрос со ссылкой на официальную документацию с инструкцией, а так же лайвхак если не хочется лишаться изоляции сети.
Что именно непонятно?
host.docker.internal - это фишка Docker Desktop она не работает в реальных условиях. Да действительно host.docker.internal отрезолвиться в IP шлюза в контейнере (в тот IP который назначен интефейсу в хостовой системе), но что толку если это работает только в виртуалке Docker Desktop?
У каждого контейнера свой изолированный loopback интерфейс и он никак не связан с loopback-ом на хостовой машине. Да он выглядит точно также. Да ему назначен IP из подсети 127.0.0.0/8, но он изолирован от хостовой машины и доступен только для процесса в контейнере.
Если надо обратиться к сервису который запущен на хостовой машине есть только два способа - снять изоляцию с сети или заставить сервис слушать на всех интерфейсах и обращаться к нем по IP шлюза контейнера.