วิธีแก้ปัญหาลง Docker Toolbox แล้วเกิด Error – VT-X/AMD-v

แก้ปัญหาการติดตั้งโปรแกรม Docker Toolbox ไปแล้ว แต่พอจะเข้าใช้งานก็เกิด Error ที่แสดงข้อความว่า "The computer doesn't have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory" ซึ่งผมได้เจอปัญหานี้มา และหาวิธีแก้ไข Error นี้จนสามารถเข้าใช้งาน Docker Toolbox ได้ เลยอยากจะมาแชร์วิธีการแก้ปัญหา Error นี้ให้เข้าใช้งาน Docker Toolbox ได้ครับ

โดยปกติแล้วการติดตั้งโปรแกรม Docker Toolbox นั้น เพียงแค่กด Next อย่างเดียว ก็สามารถเปิดโปรแกรมขึ้นมาใช้งานได้เลย แต่ถ้าเปิดโปรแกรมขึ้นมาแล้วเจอ Error ก็จะทำให้ไม่สามารถเข้าใช้งานโปรแกรม Docker Toolbox ได้ เนื่องจากผมใช้งาน NoteBook Lenovo Yoga AMD Ryzen 7 4800U และพยายามทำการติดตั้ง Docker Toolbox บน Windows 10 แต่มีข้อความแจ้งเตือนเมื่อจะเข้าใช้งานครั้งแรกตามรูปภาพด่านล่างนี้
Error Docker Toolbox

ก่อนที่เราจะมาแก้ไขปัญหา Error นี้ เราต้องตรวจสอบ Virtualization ที่ Task Manager ก่อน
วิธีเข้าไปตรวจสอบก็คือ ให้คลิกขวาที่แถบ Toolbars ที่หน้า Desktop จากนั้นให้เลือก Task Manager Toolbars-Desktop

จากนั้นให้เลือก Performance แล้วหาคำว่า Virtualization เพื่อทำการตรวจสอบว่ามีสถานะเปิดการใช้งานอยู่หรือไม่ ถ้ามีสถานะเปิดการใช้งานอยู่จะแสดงสถานะเป็น Virtualization Enable ตามรูปภาพด้านล่าง
Task-Manager

!แต่ถ้า Virtualization ของเพื่อนๆ เป็นสถานะปิดการใช้งานอยู่ หรือโชว์เป็น Virtualization Disabled ให้เข้าไปตั้งค่าเปิดการใช้งานที่วิธีการเข้าหน้า Bios นี้ได้เลยครับ หลังจากที่เข้าไปหน้า BIOS แล้วให้ทำตามขั้นตอนดังนี้

กดลูกศร ⇨ เลื่อนไปที่คำว่า Configuration >> กดลูกศร ⇩ เลื่อนมาที่คำว่า AMD SVM Technology >> กด Enter >> เปลี่ยนจาก [Disabled] เป็น ]Enabled] ตามรูปภาพด้านล่าง
BIOS-8

จากนั้นสถานะของ AMD SVM Technology จะเปลี่ยนเป็น [Enabled] BIOS-9

* หมายเหตุ ถ้าหน้า BIOS ของเพื่อนๆ ไม่เหมือนของผมก็ไม่เป็นไรครับ เพียงแค่หาคำที่ใกล้เคียงกับคำว่า AMD SVM Technology แล้วก็เปลี่ยนสถานะจาก [Disabled] เป็น [Enabled] ครับ

หลังจากที่เปิดการใช้งาน Virtualization เรียบร้อยแล้วให้เพื่อนๆ ทำตามขั้นตอนถัดไป


1. ถอนการติดตั้ง Oracle VM VirtualBox เวอร์ชันเก่า

หลังจากติดตั้งโปรแกรม Docker Toolbox เสร็จแล้ว ให้เช็กที่คอมพิวเตอร์ของเพื่อนๆ ว่ามีโปรแกรม Oracle VM VirtualBox อยู่หรือไม่ โดยปกติแล้ว หลังจากที่การติดตั้ง Docker Toolbox เสร็จสิ้น ก็จะมีโปรแกรม Oracle VM VirtualBox มาให้ ส่วนใหญ่จะเป็นเวอร์ชันเก่า กรณีที่เป็นเวอร์ชันเก่า ให้ทำการ Uninstall ตามขั้นตอนดังนี้
1.1 คลิกที่รูปแว่นขยายที่อยู่ติดกับปุ่มวินโดว์ ให้พิมพ์คำว่า Control Panel แล้วเลือกที่ Control Panel Uninstall-1

1.2 หาคำว่า Small icons ที่อยู่ด้านบนขวา จากนั้นคลิกที่ Small icons แล้วจะมี Dropdown ลงมาให้เลือก Small icons >> Programs and Features Uninstall-2

1.3 คลิกขวาที่โปรแกรม Oracle VM VirtualBox แล้วเลือก Uninstall Uninstall-3 Unstalling


2. ดาวน์โหลด Oracle VM VirtualBox เวอร์ชันล่าสุด

Download Oracle VM VirtualBox เวอร์ชันล่าสุดมา แล้วทำการติดตั้งในขั้นตอนถัดไป (ณ ตอนนี้ผมกำลังใช้เวอร์ชัน VirtualBox 6.1.18) แต่ถ้ามีเวอร์ชันใหม่กว่านี้ให้ดาวน์โหลดเวอร์ชันล่าสุดมาครับ
2.1 วิธีการดาวน์โหลด ให้เลือกที่ Windown hosts Download


3. ติดตั้ง Oracle VM VirtualBox เวอร์ชันล่าสุด

3.1 คลิก Next Setup-1

3.2 คลิก Next Setup-2

3.3 คลิก Next Setup-3

3.4 คลิก Yes Setup-4

3.5 คลิก install Setup-5

3.6 ติ๊กเครื่องหมายถูกออกและคลิก Finish Setup-6

3.7 คลิก Yes

Setup-7 alt ><


4. เตรียมโปรแกรม Windows PowerShell เพื่อใช้ในการ Run Command

4.1 คลิกที่รูปแว่นขยายที่อยู่ติดกับปุ่มวินโดว์ ให้พิมพ์คำว่า Windows PowerShell แล้วคลิกขวาที่ช่อง Windows PowerShell เลือกที่ Run as administrator Windows-PowerShell-1 4.2 กดปุ่ม Ctrl + Shift + Enter พร้อมกันที่หน้าโปรแกรม Windows PowerShell Windows-PowerShell-2 4.3 แล้วจะมีสัญลักษณ์ >> ขึ้นมาตามรูป Windows-PowerShell-3


5. Run Command ใน Windows PowerShell

5.1 ทำการ Run Command ตามนี้

docker-machine create default --virtualbox-no-vtx-check

Windows-PowerShell-4 5.2 ถ้าขึ้นตามรูปภาพด้านล่างนี้ ให้ไปเช็กโปรแกรม Docker Toolbox อีกครั้ง Windows PowerShell-5 Conplete

5.3 ถ้าโปรแกรม Docker Toolbox ของเพื่อนๆ โชว์เหมือนกับรูปด้านล่าง ก็จะสามารถเข้าใช้งาน Docker Toolbox ได้ครับ
Docker Toolbox

สรุป

การแก้ปัญหา ErrorVT-X/AMD-v อาจจะเกิดขึ้นได้หลายสาเหตุ แต่สำหรับวิธีการแก้ไขปัญหานี้ ผมหวังว่าจะเป็นประโยชน์ให้เพื่อนๆ ได้ไม่มากก็น้อย ถ้ามีข้อผิดพลาดตรงไหนต้องขออภัยด้วยนะครับ ขอบคุณครับ