Розгортання проекту з докером на ОС Віндовс 11

Dmytro Dzyuba 12-10-2023 483
windows docker ubuntu wsl2
Розгортання проекту з докером на ОС Віндовс 11

Майже кожен сучасний проект немислимий без використання докера. Він дозволяє зробити середовище розробки уніфікованим для всіх розробників. Незважаючи на те, що докер без проблем встановлюється на ОС Віндовсі, все ж швидкодія таких проектів на досить низькому рівні. Я розповім про свій вдалий досвід розгортання проектів на ОС Віндовс та проблеми, з якими я зіткнувся. Однак, якщо у вас є що доповнити чи виправити, напишіть мені обов'язково.
Після декількох недавдач кроект я вирішив розгортати не безпосередньо на Віндовс, а на WSL2  і далі я поясню чому. Коли я починав знайомитись з WSL у мене була встановлена ОС Віндовс 10. І тут є певний нюанс. Залежності від збірки вона може мати або першу, або другу версію WSL. Другу версію можна встановити (включити) на десяту віндовс тільки якщо номер збірки - 18362 або вищий. Щоб перевірити номер збірки потрібно зайти в Пуск - налаштування - Система - Про систему - Збірка ОС. Отож я оновив свою Віндовся 10 до останньої збірки і встановив проект на WSL2, але мене очікувало розчарування - я не отримав значного підвищення продуктивності роботи проекту. Тому я прийняв рішення оновитись до Віндовс 11. Отже всі мої наступні рекомендації стосуються саме Віндовс 11. 


Як включити WSL2 на ОС Віндовс

За замовчуванням WSL2 вимкнена. Щоб її увімкнути:

  1. Пуск - Увімкнути або вимкнути засоби Windows
  2. У віконці, що спливе, поставте галочки напротив наступний пунктів: Virtual Machine Platform та Підтримка Windows для Linux.
  3. Дочекайтесь встановлення та перезавантажте комп’ютер.

Встановлення Ubuntu

Далі треба скачати та встановити емулятор Ubuntu з Microsoft store. На цьому кроці дуже важливо, щоб ви скачали саме цю версію. Microsoft store має й інші версії Ubuntu, але з деякими з них у мене були труднощі. 
На моїй Віндовся 10 було встановлено 2 версії WSL, але в Віндовс 11 - зазвичай лише друга, проте для впевненості я раджу вам провести ряд запобіжних заходів.
Встановити WSL2 за замовчуванням. Відкриваємо cmd 
wsl --set-default-version 2
Встановлюємо версію WSL2 для щойно встановленої Ubuntu
wsl --set-version Ubuntu 2

Інтеграція докера з Ubuntu та WSL2

Ви можете використовувати лише сам докер, але я користуюсь Docker Desktop, який включає в себе ще і багато додаткових інструментів. Головною його перевагою є чудовий інтерфейс, однак Docker Desktop є платним при комерційному використанні. Тобто робити якісь особисті не комерційні проекти на ньому можна, але якщо ви використовуєте його як працівник комерційної компанії, необхідно купити ліцензію.
Після встановлення раджу перевірити налаштування WSL2. Зайдіть в консоль і введіть команду wsl -l -v  
C:\Users\Dmytro>wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu                 Running         2
  docker-desktop-data    Running         2
  docker-desktop         Running         2
Тепер треба інтегрувати Docker Desktop та встановлений емулятор Ubuntu. Заходьте в Docker Desktop. В правому верхньому куті є символ шестерні (налаштування). Клацніть по ньому. У вкладці General (Загальне) поставте галочку “Use the WSL 2 based engine


Далі переходимо у вкладку Resources (Ресурси) - WSL integration (WSL інтеграція). Поставте галочку “Enable integration with my default WSL distro” та ввімкніть перемикач біля Ubuntu.

 

Далі тиснемо кнопку “Apply & restart”. Докер перезапуститься і ви можете починати роботу.

Файлова система

Якщо ви все зробили правильно у вас мало з’явитись 3 нові папки в “Моєму Комп’ютері”:
- docker-desktop
- docker-desktop-data
- Ubuntu


Перші дві папки використовуються докером для власних потреба, а остання - те з чим нам треба працювати.
На початку статті я казав, що проект я розгортав не безпосередньо в Віндовс, а в WSL. Всі вище перелічені дії були для того, щоб можна було склонувати проект в файлову систему Лінукс. Коли я експерементував з докером, я пробував клонувати проект з GitHub в одну з папок Windows. Клонування проходить успішно, адже гіт стабільно працює на різних ОС. Падіння продуктивності відбувається при монтуванні папки віндовс і відповідної папки в середині докер контейнера, тому що файли в них мають як мінімум різні закінчення для рядків.
Тому важливо клонувати проект саме у новостворену папку “Ubuntu”. Для тесту можете склонувати і запустити даний сайт локально. Для цього нам потрібно потрапити в віртуальну машину. Є декілька варіантів:

  1. Пуск - в пошуку введіть Ubuntu. Клікніть по іконці убунти
  2. Пуск - cmd. В консолі напишіть wsl

Головна папка, в яку ви потрапите, буде відповідати папці Ubuntu, яка відкривається через Файловий провідник. Отож протестуємо:
mkdir projects
cd projects
mkdir test
cd test
sudo apt-get update
sudo apt-get install git docker
git clone https://github.com/hevyweb/mySite.git .
docker-desktop up
При першому запуску докер збере та запустить проект. Слідкуйте за виводом логу встановлення. Можливі помилки.