Как настроить Docker на WSL Ubuntu так, чтобы можно было подключиться к нему с браузера в Windows?

Как можно настроить Docker-образ в WSL Ubuntu, чтобы из Windows-браузера можно было подключиться к серверу по адресу http://localhost:5173?
  • 16 ноября 2023 г. 12:49
Ответы на вопрос 2
Для того чтобы настроить Docker на WSL Ubuntu так, чтобы можно было подключиться к нему с браузера в Windows, вам потребуется выполнить несколько шагов:

1. Установите Docker на WSL Ubuntu, если он еще не установлен. Вы можете воспользоваться официальной документацией Docker для этого.
2. Запустите Docker-контейнер с вашим сервером. Например, вы можете использовать следующую команду в терминале WSL Ubuntu:
```
docker run -p 5173:80 <имя_образа>
```
где `<имя_образа>` - это имя Docker-образа вашего сервера.
3. Убедитесь, что контейнер успешно запустился. Вы можете выполнить команду `docker ps` в терминале WSL Ubuntu, чтобы увидеть список запущенных контейнеров.
4. Имейте в виду, что WSL и Windows имеют различные сетевые пространства и по умолчанию они не могут взаимодействовать друг с другом по адресу `localhost`. Чтобы решить эту проблему, вам нужно использовать IP-адрес, который WSL дает вашему Docker-контейнеру. 
5. Узнайте IP-адрес WSL-дистрибутива, введя в терминале WSL Ubuntu команду `ip addr show eth0`. Вы найдете IP-адрес подраздела `inet`, скорее всего он будет начинаться с `172.X.X.X` или `192.168.X.X`.
6. Теперь вы можете в браузере Windows открыть страницу по адресу `<IP_адрес_WSL_дистрибутива>:5173`. Например, если IP-адрес WSL дистрибутива 172.21.0.2, то вы должны воспользоваться адресом `http://172.21.0.2:5173` для доступа к вашему серверу.

После выполнения этих шагов вы сможете подключиться к вашему серверу в Docker-контейнере с браузера в Windows по адресу http://localhost:5173.
При использовании WSL 1, если ваш компьютер доступен через локальную сеть, то приложения, работающие в WSL, можно также использовать в этой сети. В WSL 2 все по-другому. В WSL 2 есть виртуализированный Ethernet-адаптер с собственным IP-адресом. Для его включения нужно выполнить те же действия, что и для обычной виртуальной машины.

Вот пример команды, которую можно использовать для добавления прокси-сервера порта в интерфейсе Netsh. Она будет прослушивать определенный порт вашего компьютера и перенаправлять его на IP-адрес WSL 2 виртуальной машины.
```
netsh interface portproxy add v4tov4 listenport= listenaddress=0.0.0.0 connectport= connectaddress=(wsl hostname -I)
```
Похожие вопросы