LAB TRIỂN KHAI WINDOWS 11 QUA DOCKER
VMware Workstation → Debian 13 → Docker → QEMU/KVM → Windows 11 → noVNC
1. Tổng quan & trạng thái hiện tại
Mục tiêu: chạy máy ảo Windows 11 bên trong QEMU/KVM do
container dockurr/windows quản lý trên Debian. Truy cập màn hình bằng
Chrome/noVNC qua cổng 8006. Windows không phải container Windows thuần và cũng
không được cài trực tiếp đè lên Debian.
|
Lớp |
Cấu
hình lab đã ghi nhận |
|
Máy chủ ảo hóa |
VMware Workstation (trên máy
Windows) |
|
Máy Debian |
Debian 13, kernel 6.12.111+deb13-amd64; tên VM
trên VMware hiển thị Debian 12.x |
|
Tài nguyên Debian VM |
4 vCPU • 16 GB RAM • virtual disk
150 GiB |
|
Địa chỉ Debian |
192.168.1.14 (LAN, SSH root) |
|
KVM |
VT-x: Full; /dev/kvm có mặt |
|
Docker |
Engine 29.9.1 • Compose v5.6.0 • hello-world
thành công |
|
Disk OS |
/dev/sda1 ext4 ~18.9 GiB;
/dev/sda5 swap ~1.1 GiB |
|
Disk lab |
/dev/sda3 ext4 ~130 GiB; mount /opt/windows11-lab |
|
Windows 11 VM |
2 vCPU • 8 GB RAM • disk 80 GB (cấu
hình đã nhập) |
|
Web viewer |
http://192.168.1.14:8006 |
2. Sơ đồ kiến trúc
|
Windows PC (VMware Workstation) └─ VM Debian 13 [4
vCPU / 16 GB RAM / 150 GiB disk] ├─
/dev/sda1 18.9 GiB → Debian root / +
Docker Engine ├─
/dev/sda5 1.1 GiB → Swap └─
/dev/sda3 ~130 GiB →
/opt/windows11-lab └─ Docker
Compose: windows11 [dockurr/windows] └─
QEMU/KVM [2 vCPU / 8 GB / 80 GB virtual disk] └─
Windows 11 → noVNC :8006 / RDP :3389 |
3. Chuẩn bị VMware & xác minh KVM
Trong VMware: tắt VM → VM Settings → Processors → bật
“Virtualize Intel VT-x/EPT or AMD-V/RVI”. Network Adapter đặt Bridged để Debian
nhận IP trong LAN (trường hợp lab này dùng 192.168.1.14).
|
lscpu | grep -E 'Model name|Virtualization|Virtualization
type' ls -l /dev/kvm free -h hostname -I |
Kết quả đã đạt: CPU báo VT-x, virtualization type full và
/dev/kvm tồn tại. Nếu mất /dev/kvm, kiểm tra lại Nested Virtualization trong
VMware và cấu hình ảo hóa trên host.
4. Cài Docker trên Debian 13
Các lệnh đã áp dụng qua SSH root, sử dụng kho Docker chính
thức dành cho Debian trixie:
|
apt update apt install -y ca-certificates curl install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg -o
/etc/apt/keyrings/docker.asc chmod a+r /etc/apt/keyrings/docker.asc cat > /etc/apt/sources.list.d/docker.sources <<EOF Types: deb URIs: https://download.docker.com/linux/debian Suites: trixie Components: stable Architectures: amd64 Signed-By: /etc/apt/keyrings/docker.asc EOF apt update apt install -y docker-ce docker-ce-cli containerd.io
docker-buildx-plugin docker-compose-plugin systemctl enable --now docker |
|
docker --version docker compose version docker run --rm hello-world |
Đã xác nhận màn hình “Hello from Docker!”;
5. Chuẩn bị ổ đĩa riêng ~130 GiB
VMware đã tăng ổ /dev/sda lên 150 GiB, nhưng root /dev/sda1
vẫn ~19 GiB. Để tránh đụng vào root và swap, lab tạo phân vùng primary mới từ
20 GiB tới cuối ổ. Lưu ý: lệnh mkfs.ext4 xóa dữ liệu phân vùng đích; chỉ chạy lại
khi chủ động muốn xóa dữ liệu.
|
# Lệnh đã thực hiện trong lab - KHÔNG cần chạy lại parted /dev/sda unit GiB print free parted -s -a optimal /dev/sda mkpart primary ext4 20GiB 100% partprobe /dev/sda lsblk mkfs.ext4 /dev/sda3 mkdir -p /opt/windows11-lab mount /dev/sda3 /opt/windows11-lab |
Dòng mount duy nhất được cấu hình trong /etc/fstab:
|
UUID=6732f1f9-3023-41db-b7cc-fc787d6482fa /opt/windows11-lab
ext4 defaults,nofail 0 2 |
Dòng UUID gắn theo kết quả blkid thực tế của máy. Không sao
chép sang VM khác khi UUID khác. Trong quá trình thao tác đã từng phát sinh các
dòng sai do nhập lệnh; chúng đã được sửa bằng nano.
|
systemctl daemon-reload findmnt --verify --verbose df -h /opt/windows11-lab findmnt /opt/windows11-lab |
Kết quả findmnt --verify đã ghi nhận: 0 parse errors, 0
errors, 1 warning về CD-ROM (udf/iso9660). Cần dùng df/findmnt xác nhận
/dev/sda3 đang mount trước khi vận hành lab.
6. Tạo Windows 11 bằng Docker Compose
|
mkdir -p /opt/windows11-lab/{windows,shared} cd /opt/windows11-lab nano compose.yaml |
Nội dung cấu hình tham chiếu cho lab. PASSWORD dưới đây là
chỗ giữ chỗ, KHÔNG dùng nguyên mẫu; trong file thực tế hãy giữ mật khẩu riêng
và phân quyền hạn chế:
|
services: windows11: image:
dockurr/windows:latest container_name:
windows11 environment: VERSION:
"11" RAM_SIZE:
"8G" CPU_CORES:
"2" DISK_SIZE:
"80G" USERNAME:
"labadmin" PASSWORD:
"<MAT_KHAU_MANH_CUA_BAN>" devices: - /dev/kvm - /dev/net/tun cap_add: - NET_ADMIN ports: -
"8006:8006" -
"3389:3389/tcp" -
"3389:3389/udp" volumes: -
./windows:/storage -
./shared:/shared restart:
unless-stopped stop_grace_period:
2m |
|
cd /opt/windows11-lab chmod 600 compose.yaml docker compose config -q docker compose up -d docker logs -f windows11 |
Kết quả đã quan sát: image dockurr/windows:latest được pull;
mạng windows11-lab_default tạo mới; container windows11 started; sau đó
“Requesting Windows 11 from the Microsoft servers...” và “Downloading Windows
11...”.
7. Theo dõi tải ISO & cài đặt tự động
Truy cập trên máy cùng LAN bằng Chrome:
http://192.168.1.14:8006. Trên màn hình quan sát được biểu tượng Windows, dòng
“Downloading Windows 11” và thanh tiến độ. Tiếp tục chờ tới khi hệ thống chuyển
sang màn hình cài đặt và cuối cùng là desktop. Tốc độ phụ thuộc kết nối
Microsoft, không nên khởi động lại container khi vẫn đang tải.
Ảnh thực tế: trang noVNC của lab tại thời điểm Windows 11
đang tải (18/10/2026).
|
# Mở một tab SSH khác để theo dõi docker ps docker logs --tail 50 windows11 docker stats --no-stream windows11 df -h /opt/windows11-lab du -sh /opt/windows11-lab/windows |
Chú ý: du -sh không nhất thiết phản ánh ISO đang tải nếu phần
mềm sử dụng đường dẫn tạm bên trong container. Không suy ra bị treo chỉ vì thư
mục windows chưa tăng dung lượng.
8. Công việc sau khi Windows 11 cài xong
·
Xác nhận thấy Windows 11 Desktop qua
http://192.168.1.14:8006.
·
Mở Task Manager để xem CPU/RAM của Windows; kiểm
tra tài nguyên QEMU theo cấu hình.
·
Trong Windows chạy winver và ipconfig /all để
ghi nhận phiên bản, IP Windows nội bộ.
·
Đăng nhập tài khoản được tạo trong quá trình
cài; không đưa mật khẩu vào tài liệu báo cáo.
·
Nếu cần dùng RDP, thử mstsc tới
192.168.1.14:3389 sau khi Windows hoàn tất khởi động và dịch vụ RDP đã sẵn
sàng.
·
Kích hoạt Windows bằng giấy phép hợp lệ khi áp dụng.
·
Kiểm tra snapshot/backup phù hợp trước khi nâng
cấp hoặc thay đổi lớn.
9. Lệnh quản trị & khắc phục sự cố
|
Mục
đích |
Lệnh
/ hướng xử lý |
|
Trạng thái |
docker ps -a |
|
Log |
docker logs --tail 100 windows11 |
|
CPU/RAM |
docker stats --no-stream windows11 |
|
Dừng / chạy lại |
cd /opt/windows11-lab && docker compose
stop / start |
|
Khởi động lại |
docker restart windows11 (chỉ sau
khi biết Windows không còn cài/tải) |
|
Kiểm tra KVM |
ls -l /dev/kvm |
|
Kiểm tra ổ đĩa |
findmnt /opt/windows11-lab
&& df -h /opt/windows11-lab |
|
Mở cổng 8006 |
ss -lnt | grep 8006 |
|
Sao lưu dữ liệu |
Sao lưu thư mục
/opt/windows11-lab/windows khi VM/Windows đã tắt an toàn |
Nếu noVNC không mở được: kiểm tra container, IP LAN, VMware
Bridged, firewall và lắng nghe cổng. Nếu Windows chậm: kiểm tra CPU/RAM cấp cho
cả Debian và Windows, KVM, tài nguyên CPU vật lý. Không dùng docker compose
down -v khi chưa hiểu rõ cấu hình volume.
10. Lưu ý an toàn & bảo trì
·
Chỉ cho phép truy cập 8006/3389 trong LAN hoặc
qua VPN đáng tin cậy; không NAT/port-forward các cổng này trực tiếp ra
Internet.
·
Giao diện noVNC trong hình hiện dùng HTTP (“Not
secure”); nếu truy cập ngoài máy nội bộ, dùng VPN hoặc reverse proxy TLS và cơ
chế xác thực.
·
Giữ file compose.yaml có mật khẩu ở quyền 600;
không chia sẻ file cấu hình thực tế nếu chứa mật khẩu.
·
Trước khi reboot VMware VM, nên tắt Windows từ
menu Start hoặc cho container dừng mềm.
·
Container chạy Windows dưới QEMU/KVM; cần
license Windows hợp lệ.
·
Windows 11 hiện vẫn đang tải tại thời điểm chốt
tài liệu; các bước kiểm tra sau cài là checklist chưa thực hiện.
11. Tài liệu tham khảo
Docker Engine Debian:
https://docs.docker.com/engine/install/debian/
Dự án dockurr/windows: https://github.com/dockur/windows
Tài liệu GParted (nếu cần bảo trì phân vùng):
https://gparted.org/
Tài liệu này được lập từ thao tác và ảnh chụp đã chia sẻ
trong phiên hướng dẫn; một số kết quả sau khi Windows cài xong cần cập nhật về
sau.




No comments:
Post a Comment