ืจืืฆืื ืืืฉืชืืฉ ืืืื ืืื ืืงืก (Docker, Python, Node.js) ืืืื ืืฆืืช ื-Windows? ืืืืจื ืืช WSL (Windows Subsystem for Linux). ืืืื ืืืืช ืืื ืืงืก ืืืื ืฉืจืฆื ืืืงืืื ืืืขืจืืช ืืืคืขืื ืืืจืืืืช ืฉืืื.
ืืคื ื ืฉืืชืืืืื, ืื ืกื ื-BIOS ืฉื ืืืืฉื. ื-Virtualization (ืืืจืืืืืืืฆืื – VT-x ืื AMD-V) ืืืืืช ืืืืืช ืืืคืขืืช (Enabled). ืืื ืืืืืจื ืืื, ืืื ืืงืก ืื ืืขืืื.
ืืืื ื ืจืื ืืื ืืืืืจืื ืืช ืืืขืจืืืช ืืขืืืื ืืฉืืชืคืช ืืืืงื.
1. ืืืืงืช ืืฆื ืงืืื
ืืคื ื ืฉืืชืืืืื, ืืืงื ืืช ืืืฆื ืื ืืืื ื-PowerShell:
wsl -l -v
wsl -l -v ืืืืืจ ืจืฉืืื ืฉื ืืคืฆืืช ืืืชืงื ืืช:
- ืชืฉืืื ืจืืงื: ืืื ืืคืฆืืช ืืืชืงื ืืช.
- Ubuntu: ืืื ืืงืก ืืืจ ืืืชืงื.
- docker-desktop / docker-desktop-data: ืืคืฆืืช ืืื ืืืช ืฉื Docker Desktop.
โ ๏ธ ืืขืืืื VERSION ืฆืจืืื ืืืืคืืข ืืกืคืจื 2. ืื ืืืคืืข 1, ืขืืื ื ืืช ืืืคืฆื ืืขืืจืช ืืคืงืืื wsl --set-version Ubuntu 2.
2. ืืชืงื ื
ืื ืืื ืืงืก ืื ืืืชืงื, ืคืชืื ืืช PowerShell ืืื ืืืื (Administrator) ืืืงืืืื:
wsl --install
ืืืขืจืืช ืชืืื ืืช ื-Ubuntu. ืืกืืื, ืืคืขืืื ืืืืฉ ืืช ืืืืฉื ืืื ืืืฉืืื ืืช ืืืืจืช ืืืืื.
3. ืืืืจืช ืืฉืชืืฉ
ืืืคืขืื ืืจืืฉืื ื, WSL ืืืงืฉ ืืื ืืืฆืืจ ืืฉืชืืฉ. ืื ืืชื ืจืืืื ืืืจืืื ื root@PC_NAME โ ืื ืืฆื ืชืงืื.
ืืฉืชืืฉ ื-root ื ืืืฅ ืืืืืจืืช ืืขืจืืช; ืืฆืืจืื ืคืืชืื, ืฆืจื ืืฉืชืืฉ ื ืคืจื.
ืฉืืื ืื โ ๏ธ: ืกืืื ืืืืืื ~ ืืืืฆื ืืช ื ืชืื ืกืคืจืืืช ืืืืช. ืขืืืจ root ืื /root, ืขืืืจ ืืฉืชืืฉ ืจืืื ืื /home/my_user_name. ืื ืชืืฆืจื ืคืจืืืงืืื ืชืืช root, ืชืืชืงืื ืืืขืืืช ืืจืฉืืืช ื-VS Code. ืืคืงืืื cd ~/projects ืชืืืื ืืชืื ืืืงืืืืช ืฉืื ืื ืืฆื root ืืืฆื ืืฉืชืืฉ ืจืืื.
ืืื ืืืฆืืจ ืืฉืชืืฉ:
# ืืฆืืจืช ืืฉืชืืฉ ืืฉื my_user_name
adduser my_user_name
# ืืชื ืืจืฉืืืช ืื ืื (ืขืืืจ sudo)
usermod -aG sudo my_user_name
ืืื ืฉ-WSL ืืืคืชื ืชืืื ืขื ืืืฉืชืืฉ ืฉืืื, ืืืื ื ื-Windows PowerShell:
# ืืืืืคื ืืช my_user_name ืืฉื ืืืฉืชืืฉ ืฉืืืจืชื
ubuntu config --default-user my_user_name
ืืขืชื ืืืจืืื ื ืืงืื ืืช ืคื ืืื ื: my_user_name@PC_NAME:~$.
4. ืืืคื ืืฉืืืจ ืืช ืืงืื
ื-WSL ืืฉ ืืืฉื ืืืื ื ื Windows (ืื ืชืื /mnt/c/), ืืื ืื ืชืฉืืจื ืฉื ืืช ืืคืจืืืงืืื ืฉืืื.
ืืขืจืืืช ืืงืืฆืื ืฉื Windows ืืืื ืืงืก ืืชืงืฉืจืืช ืืื. ืฉืืืจืช ืคืจืืืงื ืืืื ื C: ืื D: ืชืื ืืฉืืขืืชืืช ืืช ืืขืืืื ืขื ืืงืื.
ืืืงืื ืื ืืื: ืชืืงืืืช ืืืืช ืืชืื ืืื ืืงืก.
ืืงืืืื:
cd ~
mkdir projects && cd projects
ืืื ืืืืืจืืช ืืื ืืงืกืืืืืช. ืืื ืืคืชืื ืืช ืืชืืงืืื ืืกืืืจ ืืงืืฆืื ืฉื Windows, ืืงืืืื: explorer.exe .
5. ืกืืืืช ืขืืืื
Python (venv)
ืืืื ืืงืก, ืืืืื ืืืืืืช. ืื ืชืชืงืื ื ืกืคืจืืืช ืืืืืืืช, ืืฉืชืืฉื ืืกืืืืืช ืืืจืืืืืืืช:
sudo apt update && sudo apt upgrade -y
sudo apt install python3-pip python3-venv -y
# ืืงืืช ืคืจืืืงื
mkdir my_project && cd my_project
python3 -m venv venv
source venv/bin/activate
Node.js (NVM)
ืืคืงืืื ืืกืื ืืจืืืช apt install nodejs ืืชืงืื ื ืืจืกื ืืฉื ื. ืืฉืชืืฉื ื-NVM (Node Version Manager):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install --lts # ืืชืงืื ืืช ืืืจืกื ืืืฆืืื ืืขืืื ืืช ืืืืชืจ
6. ืืื ืืืจืฆืื
VS Code
ืืชืงืื ื VS Code ื-Windows ืืืช ืืชืืกืฃ Remote – WSL. ืืคืงืืื code . ืืืจืืื ื ืฉื Ubuntu ืชืคืชื ืืช ืืคืจืืืงื ืืืืฉืง ืฉื Windows, ืืืื ืฉืืงืื ืืืจืฅ ืืชืื ืืื ืืงืก.
Docker
ืืืืืจืืช ืฉื Docker Desktop (ืชืืช Settings -> Resources -> WSL Integration), ืกืื ื ื-V ืืช Ubuntu. ืืขืช ืชืืืื ืื ืื ืงืื ืืืื ืจืื ืืฉืืจืืช ืืืืจืืื ื ืฉื ืืื ืืงืก.
7. "ืฉืืืฃ" ืคืงืืืืช
whoamiโ ืืืืงื: ืืื ืืชื root ืื ืืฉืชืืฉ ืจืืื.pwdโ ืื ืชืื ืืืื ืืชืืงืืื ืื ืืืืืช.wsl --shutdownโ (ื-PowerShell) ืืืืื ืืื ืฉื ืืื ืืงืก ืืฉืืจืืจ ืืืืจืื RAM.cat file.txt | clip.exeโ ืืขืชืงืช ืืงืกื ืืืื ืืงืก ืืืื ืืืขืชืงื (Clipboard) ืฉื Windows.
Workflow (ืชืืืื ืขืืืื):
- ืคืืชืืื ืืจืืื ื (
user@...). - ื ืื ืกืื ืืคืจืืืงื:
cd ~/projects/my-app. - ืืจืืฆืื ืืช VS Code ืืขืืจืช
code .. - Profit