Docker Desktop บน Windows 11 ทำงานอยู่บนพื้นฐานของ WSL2 (Windows Subsystem for Linux) เกือบทั้งหมด ทำให้การติดตั้งมีขั้นตอนเตรียมเครื่องมากกว่า Mac หรือ Linux เล็กน้อย และเป็นสาเหตุหลักที่มือใหม่มักเจอ error ระหว่างติดตั้ง โดยเฉพาะ Docker Desktop - Unexpected WSL error บทความนี้จะพาติดตั้ง Docker บน Windows 11 ทีละขั้นตอนตั้งแต่เตรียม WSL2 ให้พร้อม ไปจนถึงแก้ปัญหาที่เจอบ่อยที่สุด
พูดสั้นๆ Docker คือเครื่องมือที่ช่วยรันโปรแกรมภายใน “container” ซึ่งเป็นสภาพแวดล้อมที่แยกออกจากเครื่องจริง ทำให้โปรแกรมทำงานเหมือนกันทุกเครื่องไม่ว่าจะรันบน Windows, Mac หรือเซิร์ฟเวอร์ Linux จริง ต่างจาก Virtual Machine ตรงที่ container เบากว่ามาก เพราะใช้ kernel ร่วมกับเครื่องแม่ ไม่ต้องจำลองฮาร์ดแวร์ทั้งชุดแยกต่างหาก นี่คือเหตุผลที่ Docker บน Windows ต้องพึ่ง WSL2 เป็นตัวกลาง เพราะ container ที่เขียนขึ้นมาส่วนใหญ่อิงกับ Linux kernel โดยตรง
เช็ค requirements ก่อนติดตั้ง
Docker Desktop บน Windows 11 ต้องการสิ่งเหล่านี้ครบก่อนถึงจะรันได้ปกติ
- Windows 11 64-bit (รุ่น Home ก็ใช้ได้ ไม่จำเป็นต้องเป็น Pro)
- เปิดใช้งาน Virtualization ใน BIOS/UEFI ของเมนบอร์ด (ปกติเปิดมาจากโรงงานอยู่แล้วในเครื่องรุ่นใหม่ แต่บางรุ่นปิดไว้)
- WSL2 ติดตั้งและอัปเดตเป็นเวอร์ชันล่าสุด
ถ้าไม่แน่ใจว่า virtualization เปิดอยู่หรือไม่ เปิด Task Manager → แท็บ Performance → CPU จะมีบรรทัด “Virtualization” บอกสถานะ ถ้าขึ้นว่า “Disabled” ต้องเข้าไปเปิดใน BIOS ก่อน (วิธีเข้า BIOS ต่างกันตามยี่ห้อเมนบอร์ด ปกติกดปุ่ม Del หรือ F2 ตอนเปิดเครื่อง)
เปิดใช้งาน WSL2 ก่อนติดตั้ง Docker
ถ้ายังไม่เคยเปิดใช้ WSL มาก่อน เปิด PowerShell แบบ Run as Administrator แล้วพิมพ์
wsl --install
คำสั่งนี้จะติดตั้งทั้ง WSL2 และ distro Linux เริ่มต้น (Ubuntu) ให้อัตโนมัติ หลังติดตั้งเสร็จต้อง restart เครื่อง หนึ่งครั้งก่อนไปขั้นตอนถัดไป
ถ้าเคยติดตั้ง WSL อยู่แล้ว ให้เช็คว่าเป็นเวอร์ชัน 2 และอัปเดตล่าสุดด้วยคำสั่ง
wsl --status wsl --update
คำสั่งแรกจะบอกเวอร์ชัน WSL ที่ใช้อยู่ ถ้าขึ้น “Default Version: 1” ต้องเปลี่ยนเป็น 2 ด้วย wsl --set-default-version 2 ก่อน ส่วนคำสั่งที่สองจะอัปเดต WSL kernel ให้เป็นเวอร์ชันล่าสุดเสมอ ซึ่งเป็นขั้นตอนที่มือใหม่มักข้ามไปแล้วมาเจอปัญหาทีหลัง
ดาวน์โหลดและติดตั้ง Docker Desktop
เข้าเว็บไซต์ทางการ docker.com แล้วดาวน์โหลด Docker Desktop สำหรับ Windows ไฟล์ที่ได้จะเป็น Docker Desktop Installer.exe ดับเบิลคลิกเพื่อเริ่มติดตั้ง
ระหว่างติดตั้งจะมีหน้าจอถามว่าจะใช้ WSL2 หรือ Hyper-V เป็น backend เลือก “Use WSL 2 instead of Hyper-V” (เป็นค่าเริ่มต้นอยู่แล้วบน Windows 11) เพราะเบากว่า เปิดเร็วกว่า และเป็นทางเลือกที่ Docker แนะนำเองสำหรับ Windows รุ่นใหม่ ปล่อยตัวเลือกอื่นเป็นค่าเริ่มต้นแล้วกด Install รอจนเสร็จ ระบบอาจขอ restart เครื่องอีกครั้งหนึ่ง
หลัง restart เปิดโปรแกรม Docker Desktop ขึ้นมา จะมีหน้าจอ sign in เข้าบัญชี Docker Hub ซึ่งไม่จำเป็นต้องล็อกอินก็ใช้งานได้ กด “Skip” ผ่านไปได้ถ้ายังไม่ต้องการสร้างบัญชี
ทดสอบว่าใช้งานได้จริง
เปิด PowerShell หรือ Command Prompt แล้วพิมพ์
docker run hello-world
ถ้า Docker ทำงานถูกต้อง จะเห็นข้อความ “Hello from Docker!” พร้อมคำอธิบายสั้นๆ ว่า Docker ดึง image, สร้าง container และรันสำเร็จแล้ว ถือว่าติดตั้งเสร็จสมบูรณ์
แก้ error “Docker Desktop – Unexpected WSL error”
นี่คือ error ที่มือใหม่เจอบ่อยที่สุดตอนเปิด Docker Desktop ครั้งแรกบน Windows 11 ข้อความเต็มมักขึ้นประมาณ Docker Desktop - Unexpected WSL error พร้อมปุ่ม “Restart” หรือ “Quit” สาเหตุและวิธีแก้เรียงตามความเป็นไปได้มากไปน้อย
1. WSL kernel เก่าเกินไป — สาเหตุที่พบบ่อยที่สุด แก้ด้วยการอัปเดต WSL ให้ล่าสุด
wsl --update wsl --shutdown
คำสั่งแรกอัปเดต kernel คำสั่งที่สองปิด WSL ทั้งหมดเพื่อบังคับให้เริ่มใหม่ตอนเปิด Docker Desktop รอบถัดไป จากนั้นเปิด Docker Desktop ใหม่อีกครั้ง
2. Virtualization ยังไม่ได้เปิดใน BIOS — ถ้าเช็คจาก Task Manager แล้วพบว่า Virtualization ขึ้น “Disabled” ต้องเข้า BIOS ไปเปิดตามที่อธิบายไว้ในหัวข้อ requirements ด้านบนก่อน ไม่มีทางแก้ผ่านซอฟต์แวร์อย่างเดียว
3. Windows Feature ที่จำเป็นถูกปิดอยู่ — เปิด PowerShell แบบ Administrator แล้วเช็คว่าเปิดฟีเจอร์ที่จำเป็นครบหรือยัง
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
รันทั้งสองบรรทัดแล้ว restart เครื่องหนึ่งครั้ง จากนั้นเปิด Docker Desktop ใหม่
4. Restart Docker Desktop แบบ reset ทั้งหมด — ถ้าลองทุกวิธีข้างต้นแล้วยังไม่หาย เปิด Docker Desktop → ไอคอนรูปเฟือง (Settings) → Troubleshoot → กด “Clean / Purge data” หรือ “Reset to factory defaults” วิธีนี้จะล้างการตั้งค่าทั้งหมดกลับไปเป็นค่าเริ่มต้น แก้ปัญหาที่เกิดจากไฟล์ config เสียหายได้เกือบทุกกรณี แต่จะต้องตั้งค่าที่เคยปรับแต่งไว้ใหม่ทั้งหมด
ปัญหาอื่นที่เจอบ่อยตอนติดตั้ง
“Docker Desktop requires a newer WSL kernel version” — ขึ้นตอนเปิดโปรแกรมครั้งแรก แก้ด้วย wsl --update เหมือนกับ error ด้านบน เป็นสาเหตุเดียวกันแค่ข้อความต่างกัน
ไอคอน Docker ค้างที่ “Starting…” นานผิดปกติ — ปกติ Docker Desktop ใช้เวลาเปิดประมาณ 30 วินาทีถึง 1 นาที ถ้าค้างนานกว่านั้นมาก ลองปิดโปรแกรมทาง Task Manager แล้วเปิดใหม่ หรือรัน wsl --shutdown ก่อนเปิดโปรแกรมอีกครั้ง
เปิดใช้งานไม่ได้เพราะ antivirus บล็อก — โปรแกรม antivirus บางตัว (โดยเฉพาะที่มาพร้อมเครื่องจากผู้ผลิต) อาจบล็อกการทำงานของ Hyper-V/WSL โดยไม่แจ้งเตือนชัดเจน ลองปิด antivirus ชั่วคราวแล้วเปิด Docker Desktop ดูว่าอาการหายไปหรือไม่ เพื่อยืนยันสาเหตุก่อนไปตั้งค่ายกเว้น (exception) ถาวรใน antivirus นั้น
ตั้งค่า resource ที่ Docker Desktop ใช้ได้
ค่าเริ่มต้น Docker Desktop จะจำกัดปริมาณ CPU และ RAM ที่ WSL2 ใช้ได้แบบไดนามิกตามที่เครื่องมีอยู่ แต่ถ้าเครื่องมีแรมจำกัดหรือใช้งานร่วมกับโปรแกรมอื่นหนักๆ ควรกำหนดเพดานไว้ล่วงหน้าเพื่อกัน Docker กินทรัพยากรจนเครื่องอืด เข้าไปที่ไอคอนรูปเฟือง (Settings) → Resources จะเห็นตัวเลื่อนสำหรับกำหนด CPU, Memory และ Swap ได้โดยตรงถ้าใช้ Hyper-V backend
แต่ถ้าใช้ WSL2 backend (ค่าเริ่มต้นบน Windows 11) ต้องกำหนดผ่านไฟล์ .wslconfig แทน สร้างไฟล์นี้ไว้ที่ C:\Users\<ชื่อผู้ใช้>\.wslconfig แล้วใส่เนื้อหาประมาณนี้
[wsl2] memory=4GB processors=2
บันทึกไฟล์แล้วรัน wsl --shutdown เพื่อให้ค่าที่ตั้งใหม่มีผล ปรับตัวเลขตามสเปกเครื่องจริง ถ้าเครื่องมีแรม 8GB การจำกัดไว้ที่ 4GB จะเหลือพื้นที่ให้ระบบและโปรแกรมอื่นทำงานได้ลื่นขึ้นมาก
ตั้งค่าให้ Docker Desktop เปิดอัตโนมัติตอนเปิดเครื่อง
ค่าเริ่มต้นหลังติดตั้ง Docker Desktop มักตั้งให้เปิดอัตโนมัติทุกครั้งที่เปิดเครื่องอยู่แล้ว ซึ่งเหมาะกับคนที่ใช้ Docker เป็นประจำทุกวัน แต่ถ้าไม่อยากให้กินทรัพยากรตั้งแต่เปิดเครื่องโดยไม่จำเป็น ปิดได้ที่ Settings → General → ยกเลิกติ๊ก “Start Docker Desktop when you sign in to your computer”
ปิดตัวเลือกนี้ไว้แล้วเปิด Docker Desktop เองตอนต้องใช้งานจริงแทน จะช่วยลดเวลาบูตเครื่องและประหยัดแรมในวันที่ไม่ได้ทำงานที่เกี่ยวกับ container เลย
คำถามที่พบบ่อย
ต้องมี Windows 11 Pro ไหมถึงจะลง Docker ได้ ไม่จำเป็น Windows 11 Home ใช้ WSL2 backend ได้เหมือนกัน ข้อกำหนดเดิมที่ต้องมี Pro เพื่อใช้ Hyper-V ไม่มีผลแล้วตั้งแต่ Docker Desktop รองรับ WSL2 backend เต็มรูปแบบ
ทำไม Docker Desktop กินแรมเยอะมาก ส่วนหนึ่งมาจาก WSL2 เก็บหน่วยความจำที่จองไว้ไม่คืนกลับให้ Windows ทันทีหลังใช้งานเสร็จ แก้ได้โดยสร้างไฟล์ .wslconfig ในโฟลเดอร์ผู้ใช้ (C:\Users\<ชื่อผู้ใช้>\.wslconfig) แล้วกำหนดค่า memory=4GB (หรือปริมาณที่ต้องการจำกัด) จากนั้น wsl --shutdown เพื่อให้มีผล
ลง Docker Desktop แล้วต้องลง Docker Compose แยกไหม ไม่ต้อง Docker Desktop เวอร์ชันปัจจุบันรวม Docker Compose มาให้พร้อมใช้งานตั้งแต่ติดตั้งเสร็จ ทดสอบได้ด้วยคำสั่ง docker compose version
Docker Desktop ฟรีไหม ฟรีสำหรับใช้งานส่วนตัว การศึกษา และองค์กรขนาดเล็ก (พนักงานน้อยกว่า 250 คนและรายได้ต่ำกว่าเกณฑ์ที่กำหนด) ธุรกิจขนาดใหญ่กว่านั้นต้องสมัครแผนแบบเสียเงิน ตรวจสอบเงื่อนไขล่าสุดได้จากหน้า pricing บนเว็บทางการก่อนใช้งานเชิงพาณิชย์
ลง Docker บน Windows 10 ได้เหมือนกันไหม ได้ ขั้นตอนแทบเหมือนกันทุกอย่าง ต่างกันแค่ Windows 10 ต้องเป็นเวอร์ชัน 21H2 ขึ้นไปถึงจะรองรับ WSL2 backend เต็มรูปแบบ ถ้าเครื่องยังเป็นเวอร์ชันเก่ากว่านั้น ต้องอัปเดต Windows Update ให้เป็นเวอร์ชันล่าสุดก่อน ไม่งั้น Docker Desktop จะติดตั้งไม่ผ่านหรือใช้งานได้ไม่เต็มประสิทธิภาพ
สรุป
ติดตั้ง Docker บน Windows 11 ต้องเตรียม WSL2 ให้พร้อมก่อนเสมอ ไม่ใช่แค่ดาวน์โหลดตัวติดตั้งมารันตรงๆ ขั้นตอนหลักคือ
- เช็คว่าเปิด Virtualization ใน BIOS แล้ว
- รัน
wsl --install(หรือwsl --updateถ้ามี WSL อยู่แล้ว) แล้ว restart เครื่อง - ติดตั้ง Docker Desktop โดยเลือก WSL2 เป็น backend
- ทดสอบด้วย
docker run hello-world
ถ้าเจอ Unexpected WSL error เกือบทุกครั้งแก้ได้ด้วย wsl --update ตามด้วย wsl --shutdown แล้วเปิด Docker Desktop ใหม่ ถ้ายังไม่หายค่อยไล่เช็คตามลำดับ virtualization → Windows features → reset การตั้งค่า Docker Desktop ตามลำดับในบทความนี้
1 thought on “วิธีติดตั้ง Docker บน Windows 11 พร้อมแก้ Unexpected WSL Error”