[บันทึก]การติดตั้ง WSL 2, Docker Desktop บน Windows 10 Home

Ponggun
T. T. Software Solution
6 min readMay 28, 2020

สำหรับท่านใดที่ติดตั้ง WSL2 เรียบร้อยแล้ว สามารถข้ามไปบทความนี้ได้น่ะครับ เพื่อ ฝึกใช้งาน WSL 2, Docker Desktop, VS Code Remote — WSL Extension

Updated — 2022/08/26

ทาง Microsoft เตรียม Script ไว้ให้เรารันได้สะดวกขึ้นมากครับผม ง่ายจนงงงงงง

  • เปิด PowerShell ด้วยสิทธิ Admin
  • รันคำสั่งตามนี้นะครับ
wsl --install
  • ระบบจะทำการ ติดตั้ง WSL และ Ubuntu distribution of Linux ให้เลยครับพี่น้องงงง (Default ตอนนี้คือ Ubuntu 20.04 LTS)

WSL 2 และ Docker Desktop เป็นกลไกที่ทำให้ Windows 10 สามารถรัน Native Linux Tool และ Command ต่างๆเช่น ssh, curl, wget, sudo
docker บน Windows ได้อย่างมีประสิทธิภาพมากขึ้น

เพราะมี Full Linux Kernel ที่รันอยู่บน Lightweight Virtual Machine (VM) ที่ปรับแต่งเรื่อง Performance ให้ดีขึ้นในการรัน Linux บน on Windows ครับ

ศึกษารายละเอียดเพิ่มเติมของ WSL 2 ได้ที่ลิ้งข้างล่างนี้น่ะครับ

ขั้นตอนในการติดตั้ง

  1. อัพเดท Windows Version 2004
  2. เปิดใช้งาน WSL 2 Feature on Windows
  3. ติดตั้ง Docker Desktop Stable 2.3.0.3
  4. ทดลองใช้งาน Docker ใน Windows 10

#1: อัพเดท Windows Version 2004

ก่อนที่เราจะใช้ WSL 2 ได้นั้นเราต้อง Update Windows ของเราให้เป็น Version 2004 ก่อนน่ะครับ โดยมีขั้นตอนคร่าวๆดังนี้

วิธีตรวจดู Windows 10 Version

  • คลิ้กที่ปุ่ม Start button, พิมพ์ “winver” ในช่องค้นหาและกด Enter.
  • ในบทความนี้จะพบว่า Windows Version ยังไม่รองรับ WSL 2 นะครับ เราจึงต้อง Update Windows ในขั้นตอนถัดไป

Update Windows ด้วย Windows Setting

  • ไปที่ Startup, พิมพ์ update ที่ช่อง Search, กด Check for updates
  • ถ้าคุณเป็น 1 ในผู้โชคดี จะมีปุ่มให้ Download and install ครับ ดังภาพข้างล่าง

Update Windows ด้วย Windows Update Assistant

  • แต่ถ้าคุณเป็นคนพิเศษ (ผมเป็น 1 ในนั้นครับ ฮะๆๆๆ) เรามาใช้วิธี Update Windows ด้วย Windows Update Assistant ตามลิ้งข้างล่างนี้น่ะครับ
  • กด Update now
  • เราจะได้ Setup File มาที่เครื่องครับ เราก็รัน File นั้นได้เลยและกด Update
  • รอประมาณ 1 ชั่วโมงก็จะ Update เสร็จสิ้นครับ
จังหวะตื่นเต้นครับลุ้นให้ครบ 100% ไวๆ
  • พอเรา Restart เครื่องและลองดู Version เราจะพบ Windows 10 Version 2004 แล้วครับ ^^

#2: เปิดใช้งาน WSL 2 Feature บน Windows

  • เปิด PowerShell (ผมใช้ Windows Terminal น่ะครับ) ด้วยสิทธิ Administrator และรันคำสั่งข้างล่างนี้เพื่อเปิดใช้งาน “Windows Subsystem for Linux
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  • รันคำสั่งข้างล่างนี้เพื่อเปิดใช้งาน “Virtual Machine Platform
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  • เสร็จแล้ว Restart Windows 1 ครั้งเพื่อเสร็จสิ้นการติดตั้ง WSL 2
  • เปิด Powershell อีกครั้งและรันคำสั่งข้างล่างนี้เพื่อปรับใช้ WSL 2 เป็นค่าเริ่มต้นเมื่อเรามีการติดตั้ง Linux Distribution
wsl --set-default-version 2
  • ในกรณีที่เราไม่ได้ Update Windows 10 เป็น Version 2004 จะเจอ Error แบบนี้น่ะครับ เพราะว่ายังไม่รอบรับ WSL2
  • แต่ถ้า Update Windows 10 เป็น Version 2004 แล้วก็จะพบว่าเราจะเจอคำแนะนำให้ Update Linux Kernel เพิ่มเติมครับ
  • ให้เรา Update Linux Kernel ตามวิธีตามลิ้งข้างล่างนี้น่ะครับ
  • เมื่อ Update Linux Kernel เสร็จแล้ว ลองเปิด Powershell อีกและรันคำสั่งข้างล่างนี้อีกครั้งเพื่อปรับใช้ WSL 2 เป็นค่าเริ่มต้นเมื่อเรามีการติดตั้ง Linux Distribution
wsl --set-default-version 2

#3: ติดตั้ง Docker Desktop Stable 2.3.0.3

ก่อนที่จะติดตั้ง Docker Desktop, เราได้ทำขั้นตอนที่จำเป็นเรียบร้อยดังนี้

  1. Update Windows 10 เป็น version 2004
  2. เปิดใช้ WSL 2 feature บน Windows.
  3. Update Linux kernel update package.
  • เมื่อพร้อมแล้วก็เริ่มติดตั้ง Docker Desktop ด้วย Setup File ข้างล่างนี้น่ะครับ
  • รัน Setup File ตามขั้นตอนในภาพ
  • เปิด Docker Desktop จาก Start menu, จาก Docker menu ให้ไปที่ Settings > General เพื่อตรวจสอบว่า Docker ทำงานอยู่บน WSL 2 หรือไม่

#4: ทดลองใช้งาน Docker ใน Windows 10

สำหรับท่านใดที่ยังไม่เคยได้ศึกษา Docker อาจจะลองดูตัวอย่างจากบทความของผมก่อนหน้านี้ได้น่ะครับ

ภาพประกอบจาก practical-guide-on-writing-a-dockerfile
  • ลองเช็ค Docker Version ด้วยคำสั่ง
docker --version
พังครับ ฮ่าๆๆๆๆ T_T
  • ในกรณีของผมเคยลง Docker Toolbox ไปซึ่งทำให้ผมต้องไปลบ Environment Variables ที่ไม่ได้ใช้แล้วครับ มี 4 Variables น่ะครับ
  • DOCKER_CERT_PATH, DOCKER_HOST, DOCKER_MACHINE_NAME, DOCKER_TLS_VERIFY
  • ลองปิดและเปิด PowerShell อีกรอบ คราวนี้ไม่พลาดแล้วครับ อิอิ
  • ลอง Clone Getting Started project เพื่อทดลอง Build และ Run Docker Image กันครับ
git clone https://github.com/docker/getting-started.git
ได้ Code เตรียมพร้อมแล้วน่ะครับ
  • สั่ง Build Docker Image ด้วยคำสั่ง
docker build -t docker101tutorial .
  • ดู Docker Images ที่เราสร้างมาครับ
docker images
  • สั่งรัน Docker Image เพื่อลองดูผลลัพธ์
docker run --rm -d -p 8033:80 docker101tutorial
  • เปิด Docker Desktop ขึ้นมาจะพบว่ามี Images Run อยู่น่ะครับ
  • ถ้าลองจิ้มที่ปุ่ม OPEN IN BROWSER ก็จะได้ผลลัพธ์ดังนี้น่ะครับ

http://localhost:8033/tutorial/

  • สุดท้ายเป็นการทดลอง Upload ขึ้น hub.docker.com ครับ
docker tag docker101tutorial ponggun/docker101tutorial:latest
docker push ponggun/docker101tutorial:latest
Push เรียบร้อยครับ

https://hub.docker.com/repository/docker/ponggun/docker101tutorial

Docker Cheat Sheet

Docker Cheat Sheet

จัดการ Images

docker images #View docker images
docker image ls #View docker images
docker build -t {name}:{tag} . #Build image
docker image rm {docker image name/ image id} #remove image
docker run -p {server port}:{docker port} -d {image name}:{image tag} #Run image

จัดการ Container

docker ps #List running containers
docker ps -a #List all containers
docker start {docker container id} #start container
docker stop {docker container id} #stop container
docker rm {docker container id} #remove container
docker container rm -f $(docker ps -aq) #remove all container

จบแล้วครับผม หวังว่าเนื้อหาในบทความจะช่วยให้ผู้อ่านติดตั้งทั้ง WSL2 และ Docker Desktop เพื่อช่วยให้การเตรียม Environment ในการพัฒนาโปรแกรมเป็นเรื่องที่ง่ายขึ้นน่ะครับ

ขอบคุณมากๆครับ

นายป้องกัน

--

--

Ponggun
T. T. Software Solution

Development Manager, Web Developer with ASP.Net, ASP.net Core, Azure and Microsoft Technologies