เปลี่ยน docker มาใช้ ubuntu wsl แทน

ถ้าใครใช้ docker desktop ตอนลงมันก็จะมี wsl จะมี 2 ตัวแบบนี้

PS C:\Users\Chatr> wsl.exe -l -v
  NAME                   STATE           VERSION
* docker-desktop-data    Stopped         2
  docker-desktop         Stopped         2

แต่ผมอยากใช้ตัวอื่นด้วย เช่น ubuntu เราจะปรับยังไงมาดูกันครับ เริ่มต้นไปที่ store ลอง search ubuntu ของผมเลือก 22.04 LTS เลย จากนั้นกด Get มาเลย

จากนั้นกด Open มันจะขึ้น popup ใหม่ขึ้นมาตามนี้

Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: <<YOUR_USERNAME>>
New password: <<YOUR_PASSWORD>>
Retype new password: <<YOUR_PASSWORD>>
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

หลังจากกำหนดค่าเสร็จสิน ลองกลับไปดูว่ามีลงกี่ตัวแล้ว จะพบว่ามี 3 ตัว โดยดูจากคำสั่ง wsl.exe -l -v ตอนนี้ยัง default ที่ docker-desktop-data อยู่นะ ดูจาก * ที่บอกครับ

PS C:\Users\Chatr> wsl -l -v
  NAME                   STATE           VERSION
* docker-desktop-data    Stopped         2
  Ubuntu-22.04           Running         2
  docker-desktop         Stopped         2

เปลี่ยนให้ตัว default เป็น ubuntu ด้วยคำสั่งที่มี Pattern ดังนี้

wsl --set-default <distro name>

ลองรันจริง และตรวจสอบ default ไปพร้อมกันครับ

PS C:\Users\Chatr> wsl --set-default Ubuntu-22.04
The operation completed successfully.
PS C:\Users\Chatr> wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu-22.04           Running         2
  docker-desktop-data    Stopped         2
  docker-desktop         Stopped         2

ลองใช้งาน wsl ดูครับ เข้าได้เรียบร้อยครับ

PS C:\Users\Chatr> wsl
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

adminping@adminpingnbd:/mnt/c/Users/Chatr$

ถ้าใครที่ยังไม่ได้ Set Default wsl + ลง Linux Distro อื่นๆ นอกจากของ Docker เวลา Run Command จะเจอ Error ประมาณนี้ครับ

PS C:\Users\Chatr> wsl
Processing fstab with mount -a failed.

<3>WSL (8) ERROR: CreateProcessEntryCommon:358: getpwuid(0) failed 2
<3>WSL (8) ERROR: CreateProcessEntryCommon:362: getpwuid(0) failed 2
<3>WSL (8) ERROR: CreateProcessEntryCommon:570: execvpe /bin/sh failed 2
<3>WSL (8) ERROR: CreateProcessEntryCommon:579: Create process not expected to return

ส่วน docker มี Integration ด้วยนะ ลองเลือกกันได้ครับ

จากนั้นเลือก Ubuntu 22.04 แล้ว Apply & Restart ครับ

Reference


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts to your email.