Мои текущие настройки - это мой ноутбук и рабочий стол, они подключены к одной сети. Я делаю webdev, поэтому я пишу код на своем ноутбуке и вижу результаты в браузере моего рабочего стола. После установки docker я больше не могу получить доступ к веб-серверам моего ноутбука, которые работают внутри WSL2 напрямую, ТОЛЬКО если они работают внутри контейнера Docker.
Эта проблема не присутствовала в WSL1, а именно:
Если вы установите docker рабочий стол на свой windows компьютер и включите новую интеграцию WSL2, он испортит ваш windows файл 'hosts' (находится на %SYSTEMROOT%\System32\drivers\etc\hosts
)
Docker автоматически добавляет следующее:
# Added by Docker Desktop
192.168.1.77 host.docker.internal
192.168.1.77 gateway.docker.internal
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
Обратите внимание, что 192.168.1.77 - это мой ноутбук stati c IP, который я установил в своем маршрутизаторе
Я предполагаю, что эти входы перенаправляют запросы моего рабочего стола на docker, полностью нарушая прямой доступ. Это не идеально, потому что мне нужно создать контейнер для кодирования простого приложения реакции, которое приводит к множеству бесполезных сложностей
пс: я пробовал следующие записи в файле hosts, но безуспешно:
192.168.1.77 localhost
также:
172.22.3.92 ubuntu.wsl # managed by wsl2-host (service that creates a hostname for WSL2 ip)
192.168.1.77 ubuntu.wsl
Единственный обходной путь - отключить docker и очистить файл hosts, что на самом деле не является тем, чем предполагалось.