Microsoft corporate blog
Configuring Linux
Development for Linux
Development for Windows
Comments 11
+1

После первых анонсов была надежда на Docker без виртуальной машины. Но нет, ВМ на месте.


А заработает ли Docker с WSL 2? И если да, то это решение будет лучше или хуже того, что сейчас предлагается для Windows?

0
Докер контейнер по сути это запуск приложений в хост системе с нужными правами и окружением, а значит что даже если в винде докер заработает, это не будет иметь смысла, так как есть риск, что какой то софт через докер просто будет работать в винде не так как в линкусе, а это основная задача его, чтобы наша программа работала на дев машине точно так же на проде, где скорее всего будет линкус.
+3
Сейчас мы стремимся включить в WSL 2 возможность доступа к сетевым приложениям с помощью localhost.

Очень надеюсь, что вы это сделаете.

А появится ли нормальный мапинг директорий /mnt/d/folder/… -> D:\folder\… или хотя-бы возможность установить Docker Daemon внутрь linux системы, а не в Windows?
0
Как подсказывает интуиция, логика, прямой текст в существующих статьях по wsl 2, и, Вы не поверите, гифка в начале данной статьи и сам текст статьи — именно там и будет запущен докер. Что то на подобии apt install docker-ce вам поможет его установить. Потому что это будет немножко подкрученная(в плане интеграции с хостом и скорости запуска) полноценная виртуалка с linux на борту. Про маппинг — написано что будет доступ к файловой системе linux, будет ли обратный доступ — это вопрос на засыпку, но технических препятствий я не вижу, samba-share никто не отменял, и вполне вероятно что microsoft прикрутят или уже прикрутили что то более простое и быстрое.
0

Ну выполнить команду apt install docker-ce я и сейчас могу и установка, но это не отменяет того, что сам докер крутится под WSL, а подключется к daemon который установлен под windows по tcp://localhost:2375. Да можно выкрутится и запустить все под VirutualBox, но этого не хочется. Если будет возможность стратовать daemon из под linux, боз установки всего добра в Windows, то тогда это будет здорово. Но при этом надо чтобы сам daemon был виден из под windows по tcp://localhost:2375, ну либо по ip вирутальной машины, чтобы например подключится к нему с помощью Rider.


Про файловую систему я не много не понял, как оно будет работать, где мне нужно разместить проекты, чтобы они были доступны как из windows так и из под linux, сейчас у меня явная проблема, что я не могу пользоваться системной переменной linux $pwd для volume image, т.к. будет попытка смапить директорию /mnt/c(d)/… но на уровне Windows такая директория отсутствует. Если это будет работать адекватно, я буду в восторге.

+2
где мне нужно разместить проекты, чтобы они были доступны как из windows так и из под linux

Где удобнее. Файловая система Windows доступна из WSL2 через /mnt/c и т.д.


$ mount | grep /mnt/c
C:\ on /mnt/c type 9p (rw,noatime,sync,dirsync,aname=drvfs;path=C:\;uid=1000;gid=1000,access=client,trans=fd,rfd=9,wfd=9)

Из Windows файловая система WSL2 доступна через шару \wsl$\<Имя дистрибутива>


Докер теперь может работать внутри WSL2, то есть volumes в этом случае будут нормально подключаться по $pwd.

0

Спасибо за разъяснения, дождусь релиза и сразу же опробую новый функционал.

+7
Оказалось, что легковесная виртуалка производительней, чем маппинг линуксовых syscalls к винде.
+3
У нас есть проект WebAPI (netcore 2.1) + фронт часть (php, js). На проде всё крутится под linux и летает.
Задача: запускать локально на Windows 10 для разработки.
Включил WSL (ubuntu LTS), поставил туда nginx, php-fpm, библиотеки зависимостей.
Проект вытянут в папку на хосте (C:\project), в WSL корневая директория для PHP настроена на /mnt/c/project/frontend
API часть стартует в Visual Studio.

Схема получается такой: в браузере (хост) обращаюсь localhost -> nginx (WSL) -> php-fpm (WSL) -> запрос к API в Visual Studio (хост) -> и дальше ответ в обратном порядке.

Оказалось всё это просто люто тормозит. Запросы в браузере выполняются ненормированное время: может отработать за 5 секунд (что медленнее чем на проде), а может зависнуть за несколько минут и бесконечно что-то грузить-грузить-грузить (вращающаяся иконка в браузере). Причём ждать бессмысленно — можно нажать F5 раз, другой, и вот снова отработало «быстро» (5 сек).

Куда уходит производительность — непонятно. Пробовал профилировать PHP через XDebug — большая часть времени тратится на Unknown.

Развернул VirtualBox с Ubuntu, настроил аналогично (папка с проектом прокинута в виртуалку Shared Folder) — работает медленнее чем на проде, но зато нет этих многоминутных зависаний.

Надеюсь в WSL2 это будет исправлено.
Only those users with full accounts are able to leave comments. , please.