VDI using qemu over docker

Sungyong
4 min readFeb 20, 2024

--

VDI(Virtual Desktop Infra) 쪽도 많이 다양해지고, 편해지고 있다.

처음에 VMWare가 ESXi로 꽉 잡고 있던 시장을 Public Cloud 업체들도 자체 VDI 서비스를 하고 있다. 그래서 Desktop 환경도 클라우드로 가능해졌다.

개인용으로도 예전에는 VMWare나 VirtualBox를 사용해 가상머신 띄웠던 것이 다 였는데, 이제 Open Source 로 KVM, qemu 기반으로 하는 툴들도 사용하기 편해졌다.

원격 환경에 Windows Desktop이 필요해서 세팅을 했다.

네트워크 성능때문에 NAS와 인접할 필요가 있었다. 어떻게 세팅을 할까 하다가 원격으로 하는 설치하는 방법 중 도커 위에 qemu 를 올리고 그 위에 Windows를 설치하는게 제일 편해보여 이 방법으로 택했다.

이미 선구자가 만들어 놓은 docker-compose를 그대로 사용했다.

version: "3"
services:
windows:
image: dockurr/windows
container_name: windows
devices:
- /dev/kvm
cap_add:
- NET_ADMIN
ports:
- 8006:8006
- 3389:3389/tcp
- 3389:3389/udp
stop_grace_period: 2m
restart: on-failure

docker container는 portainer로 관리하고 있기에, portainer 화면안에서 docker-compose.yaml을 그대로 붙여 넣으면 끝이다.

Windows VM docker-compose

이후 docker instance가 expose한 포트(default 8006) 을 브라우저로 접속하면 noVNC console 화면 그대로 볼 수 있다.

noVNC windows docker console

이 화면에서 그대로 Windows를 설치하면 된다.

Windows 11 설치중

설치 끝나고 재부팅하면 qemu가 내장한 BIOS인 TianoCore BIOS가 뜨면서 Windows 가 기동된다.

Windows

가장 간단히 할 때는 지금 처럼 하면 되고, 여러 대의 VDI를 관리한다고 하면 다른 방법도 있다.

먼저 docker 기반의 IsardVDI 가 있고,

Kubernetes 기반의 KubeVirt, virtlink, DeckHouse 등이 있다.

사용해본 IsardVDI 화면을 보자면, 아래와 같다.

이렇게 ISO 관리하는 기능도 있고
Web UI안에서 VM 을 자유롭게 설정하고 만들 수 있다.

가상화, 컨네이너가 일반화되면서 일하기는 편한 세상이 되었다.

--

--

No responses yet