#windows #docker #networking
Вопрос:
У меня установлен docker на Windows Server, и мне нужно получить доступ к чему-то, работающему на хост-компьютере. Контейнеры являются контейнерами Windows.
Все остальные ответы, которые я могу найти в каком состоянии host.docker.internal
, docker.for.win.localhost
или docker.for.win.host.internal
не работают, поскольку вы не можете установить «Docker Desktop» на компьютере с Windows Server (эти имена не разрешаются).
Это подтверждается официальными документами Docker:
У хоста есть изменяющийся IP-адрес (или его нет, если у вас нет доступа к сети). Мы рекомендуем вам подключиться к специальному DNS-имени host.docker.internal, которое преобразуется во внутренний IP-адрес, используемый хостом. Это предназначено для разработки и не будет работать в производственной среде за пределами Docker Desktop для Windows.
Так какова же альтернатива?
Комментарии:
1. «нужно получить доступ к чему-то» — что? Вы можете сделать
docker-compose run /foo/bar docker-container-name
.2. @CodeCaster MariaDB, который по соображениям бизнеса должен выполняться на хосте, а не в другом контейнере.
3. То есть … неудачно. Но затем подключиться к хосту по его DNS-имени и предоставить DNS-сервер (или значение)?