Tại sao Docker gặp lỗiBạn vừa cài đặt xong Docker Desktop và sẵn sàng tạo container. Thay vì thấy engine hoạt động, bạn lại gặp một thông báo popup cho rằng cài đặt BIOS không chính xác. Điều này xảy ra ngay cả khi bạn đã bật các tính năng của Windows như Hyper-V.
Docker thực sự rơi vào bế tắc vì không thể truy cập các tính năng vật lý của CPU cần thiết để chạy nhân Linux ảo hóa. Để khắc phục, chúng ta cần kiểm tra ba lớp: firmware phần cứng (BIOS), các thành phần hệ thống Windows và cấu hình khởi động (boot configuration).
Bước 1: Kiểm tra trạng thái 'Virtualization' trong WindowsTrước khi khởi động lại máy tính để can thiệp vào BIOS, hãy xem Windows thực sự nhận diện được gì. Bạn có thể kiểm tra việc này trong vài giây mà không cần phần mềm bổ sung.
- Nhấn
Ctrl + Shift + Escđể mở Task Manager.- Chuyển sang tab Performance.- Chọn CPU từ thanh bên trái.- Quan sát các thông số dưới biểu đồ. Tìm nhãn Virtualization.Nếu trạng thái là Enabled, BIOS của bạn đã ổn và vấn đề nằm ở cấu hình Windows. Nếu là Disabled, bạn phải vào BIOS để kích hoạt.
Bước 2: Bật ảo hóa trong BIOS/UEFIĐây là nguyên nhân phổ biến nhất. Hầu hết các bo mạch chủ phổ thông đều tắt tính năng ảo hóa theo mặc định. Mặc dù giao diện menu của mỗi hãng khác nhau, nhưng nguyên lý thực hiện vẫn tương tự.
- Khởi động lại PC.- Khi màn hình vừa sáng lên, nhấn phím truy cập BIOS. Thường là
F2hoặcDelđối với ASUS và MSI,F10cho HP, hoặcF12cho Dell.- Tìm đến menu Advanced hoặc CPU Configuration.- Tìm cài đặt ảo hóa:Đối với CPU Intel: Tìm Intel Virtualization Technology, VT-x, hoặc Vanderpool.- Đối với CPU AMD: Tìm SVM Mode hoặc Secure Virtual Machine.- Đảm bảo Execute Disable Bit (Intel) hoặc No-Execute Page Protection (AMD) được đặt thành Enabled. Điều này giải quyết phần "Data Execution Protection" của thông báo lỗi.- NhấnF10để lưu và thoát.Mẹo chuyên nghiệp: Nếu bạn đang dùng laptop của công ty, các cài đặt này thường bị khóa bởi bộ phận IT. Bạn sẽ cần quản trị viên mở khóa giúp mình.
Bước 3: Sửa lỗi trạng thái tính năng WindowsĐôi khi Windows cho rằng một tính năng đã được bật trong khi nó thực sự đang bị kẹt ở trạng thái cấu hình dở dang. Chúng ta có thể ép các tính năng này làm mới bằng PowerShell. Mở PowerShell với quyền Administrator và chạy:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Khởi động lại máy tính sau khi các lệnh này hoàn tất. Điều này đảm bảo rằng Virtual Machine Platform—nền tảng đứng sau WSL2—được đăng ký đúng cách với hệ điều hành.
Bước 4: Sửa lỗi Hypervisor Boot TypeTrong một số trường hợp, dữ liệu cấu hình khởi động Windows (BCD) được thiết lập để bỏ qua hypervisor khi khởi động. Điều này thường xảy ra nếu gần đây bạn có sử dụng các phần mềm máy ảo khác như VirtualBox 5.x hoặc các phiên bản VMware cũ. Để ép hypervisor khởi động, hãy chạy lệnh này trong Command Prompt (quyền Admin):
bcdedit /set hypervisorlaunchtype auto
Quan trọng: Hãy thực hiện Shut Down hoàn toàn thay vì Restart. Tính năng "Fast Startup" của Windows thường lưu trạng thái kernel hiện tại vào đĩa cứng, điều này có thể ngăn hypervisor khởi tạo lại chính xác. Một lần khởi động nguội (cold boot) sẽ ép mọi thứ tải lại từ đầu.
Bước 5: Kiểm tra xung đột với phần mềm diệt virusCác bộ phần mềm bảo mật như Avast, Bitdefender, hoặc Kaspersky thường sử dụng "Hardware-assisted virtualization" để vận hành tính năng sandbox của riêng họ. Vì tại một thời điểm chỉ có một ứng dụng có thể điều khiển các phần mở rộng CPU này, chúng có thể chặn Docker truy cập.
- Mở bảng điều khiển phần mềm diệt virus.- Truy cập Settings > Troubleshooting (hoặc Core Shields).- Tìm ô chọn có nhãn Enable hardware-assisted virtualization và bỏ chọn nó.- Khởi động lại máy.## Kiểm tra: Lỗi đã được khắc phục chưa?Khi đã quay lại màn hình desktop, hãy thực hiện kiểm tra nhanh ba bước:
- Kiểm tra lại Task Manager; mục Virtualization bây giờ sẽ hiển thị là Enabled.- Mở terminal và chạy
wsl --list --verbose. Bạn sẽ thấy danh sách các bản phân phối Linux của mình.- Khởi chạy Docker Desktop. Biểu tượng cá voi ở khay hệ thống sẽ giữ màu xanh ổn định mà không báo lỗi.Cuối cùng, chạydocker run hello-world. Nếu bạn thấy thông báo "Hello from Docker!", bạn đã vượt qua rào cản phần cứng thành công.

