Разработка с Docker на Linux внутри Windows без двойной загрузки – WSL 2

Как перенести Windows 10 на новый SSD/HDD со старого носителя?

Это статья, которую я ждал с нетерпением, в течение многих лет, чтобы ввести, наконец, удается, как просто и оптимизацию, разработать, используя все преимущества Linux прямо из Windows. Долгое время я решил настроить мой компьютер с двойной загрузкой, носил Windows для игр, и других приложений, и Ubuntu , чтобы работать и развивать в день. Linux среде дает некоторые преимущества для развития в повседневной жизни, так эффективность выше, некоторые приложения и службы, Docker, например, до мощной командной строки. Однако, отсутствие некоторых приложений, которые очень часто используются и совместимость с игры приводят к тому, что Windows по-прежнему было необходимо. Пока, наконец, в 2004 обновления Windows WSL2 (Windows Subsytem for Linux) было добавлено, что позволяет теперь интеграция с родной некоторые системы в linux, как например, Docker.

Что Подсистема Windows для Linux (Windows Subsystem for Linux – WSL2)?

В WSL-это функция, доступная в Windows 10 по абилитации, присутствует, начиная с версии 1607 году, но, начиная с версии 2004 версия WSL 2, было выпущено для всех. В WSL позволяет запускать команды в дистрибутиве Linux прямо в Windows, не требуя виртуальной машины или двойной загрузки.

В WSL позволяет вам установить несколько популярных дистрибутивов Linux на вашей машине, он создает структуру файлов изолированным и независимым от основной системы, но также позволяет получить доступ к файлам установки Windows.

В документации от Microsoft-это хорошо дидактики и учит вас, как включить и настроить WSL в свою машину, проверьте здесь.

WSL2 и Docker

Как Подсистема Windows для Linux WSL 2 вводит изменения архитектурного смысл, потому что это ядро, полное Linux, она позволяет контейнеры с Linux не запускаются изначально без эмуляции («Прощай, Hyper-V).

С Docker Desktop работает на WSL 2, пользователи могут воспользоваться рабочими Linux и избежать техническое обслуживание сценарии сборки для Linux и Windows. Кроме того, WSL 2 обеспечивает улучшение общего доступа к файловой системе, во время загрузки и позволяет получить некоторые интересные новые функции для пользователей Docker Desktop.

The Docker Desktop использует функции выделения динамической памяти, в WSL 2, чтобы значительно улучшить потребление ресурсов. Это означает, что Docker Desktop использует только необходимое количество ресурсов ПРОЦЕССОРА и памяти, что нужно, кроме того, разрешить те задачи, которые требуют много ресурсов ПРОЦЕССОРА и памяти, как строительство, контейнера, они позволяют выполнять гораздо быстрее.

Кроме того, с WSL 2, время, необходимое, чтобы запустить демон Docker после запуска холодного двигателя значительно быстрее. Это занимает менее 10 секунд, чтобы запустить демон Docker по сравнению почти минуту в предыдущей версии Docker Desktop.

Практический пример для разработчиков nodejs и docker, вам больше не нужно использовать флаг --legacy-watch с помощью nodemon, изменения в файлы распространяются с одинаковой скоростью и совместимость, в конце концов, они будут, работающих на linux.

Настройка VS Code и Docker с WSL2

Я буду объяснять процесс, который я сделал, чтобы мой сценарий, я использую редактор VS Code (Исследовал и видел, что многие другие ide есть поддержка WSL), и я разрабатываю практически всех моих приложений с Docker, мы разберемся, как настроить это, чтобы использовать в WSL также.

Первое, что нужно понять, это то, как мы будем иметь дело с файлами, после того, как вы включили WSL и установили свой дистрибутив Linux любимый, теперь у вас есть две среды, как если бы виртуальная машина с собственного диска. Хотя вы можете получить доступ к данным Windows из командной строки WSL, этот доступ не является родным, он использует наконечник для обмена файлами, что влияет на производительность, так что все, что вы хотите развивать в linux, чтобы воспользоваться преимуществами усовершенствований, должна быть создана структура данных с прямым WSL.

Так что если вы находитесь в папку похожа /mnt/c/, вы обращаетесь к файлам в Windows, не хотим, чтобы это развитие.

VS Code – Расширение WSL

Настройка VS Code, чтобы получить поддержку в WSL, просто установить расширение Remote WSL, разработанный самой Microsoft, она делает все волшебство произойдет. Она позволяет открывать файлы прямо из системы Linux, и уже объединяет свой терминал с терминалом Linux.

Remote – WSL

После установки и настройки, вам нужно будет установить расширения VS Code в пределах подсистемы. Не волнуйтесь, она довольно легко, расширение Remote – WSL уже включает параметр, чтобы переустановить расширения:

Docker и WSL 2

Настроить Docker, чтобы использовать обработчик WSL-это просто, а также, просто зайдите в его настройки и найдите опцию для включения использования.

После включения, необходимо включить интеграции с дистрибутивом установки:

Если все происходит, как и ожидалось, теперь вы можете использовать Docker прямо из командной строки в WSL:

Оптимизация WSL 2

Вскоре после того, как я настроил, и я начал тестировать этот новый setup, я заметил, что потребление памяти было абсурдным (только столкнетесь 8 гб Оперативной памяти), разделенные только для WSL 2. После исследования, я увидел, что уже есть issue на github , чтобы adereçar проблема, по-видимому, в WSL 2 сохраняет много файлов кэша. Но существует простое решение, ограничить объем памяти, что WSL можно потреблять:

Просто создайте файл %UserProfile%\.wslconfig со следующим содержимым:

[wsl2]
memory=4GB # Limita para 4GB
swap=0
localhostForwarding=true

И если начать потреблять много, до сих пор, мы можем выполнить команду, чтобы очистить кэш:

echo 1 | sudo tee /proc/sys/vm/drop_caches

Я надеюсь, что они решают эту проблему в ближайшее время, не impeditivo, но, безусловно, мешает опыт, потому что порог объем памяти может привести к неожиданным последствиям внутри подсистемы.

Уменьшение размера Docker Дата

The Docker Desktop для Windows, который использует WSL2, хранит все ваши файлы изображений и контейнер, объем виртуальной (vhdx). Этот файл виртуального жесткого диска может автоматически расти, когда вам нужно больше места (до определенного предела). К сожалению, если вы, освободить место, то есть, удаление изображений, которые не используются, vhdx не сжимается автоматически. К счастью, вы можете уменьшить его размер вручную, вызвав эту команду в PowerShell (как администратор):

Optimize-VHD -Path c:\path\to\data.vhdx -Mode Full

В docker-desktop-data vhdx, как правило, в этом месте:

%LOCALAPPDATA%\Docker\wsl\data\ext4.vhdx

Если у вас возникли проблемы, чтобы запустить Optimize-VHD-файла, вы можете попробовать следующий вариант:

wsl --shutdown
diskpart
# open window Diskpart
select vdisk file="C:\WSL-Distros\…\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit

Заключение

Хотя да, есть проблемы, даже в этой установке, он хорошо показывает перспективным. В настоящее время уже удалил, dual boot моей машины, и я там 2 недели, работая в этой структуре, и ничего impeditivo жалобы. Сделайте тест, посмотреть, если вы адаптируется к новой структуре, перед тем как удалить свое dual boot, или вернуться полностью в Windows, если вы обнаружите какие-либо проблемы или у вас есть какие-либо советы, делится с нами!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *