virtualization / knowledge

Docker 전용 Debian VM의 디스크와 하드웨어 구성

paul 2025.11.14 193words (1m)

Docker만 돌리는 VM을 Proxmox 위에 하나 뒀다. TrueNAS 안에 Docker를 넣지 않고 VM을 따로 뺀 구성이다.

System

VM 생성의 System 탭

Machine은 q35 다. iGPU를 이 VM으로 넘길 거라 PCIe 장치를 제대로 붙이려면 필요하다.

SCSI Controller는 VirtIO SCSI single , Qemu Agent는 켠다. 게스트에 qemu-guest-agent 를 설치하고 enable해야 실제로 동작한다.

console
$ apt install qemu-guest-agent
$ sudo systemctl enable qemu-guest-agent

Disks

VM 생성의 Disks 탭

SSD emulation을 켠다. 기본값은 꺼져 있다. 게스트가 이 디스크를 회전 디스크로 보면 I/O 스케줄러를 그에 맞춰 잡는데, 실제로는 NVMe 위에 올라간 zvol이라 손해다. 켜두면 게스트가 SSD로 인식한다.

디스크는 두 개로 나누는 편이 낫다. OS용 32GB 하나, Docker용 128GB 하나다. 처음에는 64GB 하나로 만들었는데 나눠두는 게 낫다는 결론이 났다.

나눠두면 Docker 데이터가 불어나도 OS 디스크가 꽉 차지 않고, 백업 정책도 따로 걸 수 있다. Docker 이미지와 볼륨은 언제든 다시 받을 수 있으니 OS 디스크만 백업해도 된다.

CPU

VM 생성의 CPU 탭

Type을 host 로 뒀다. 이 VM은 다른 host로 옮길 일이 없으니 CPU 기능을 가릴 이유가 없다. 트랜스코딩에 쓰는 명령어 확장까지 그대로 게스트에 노출된다.

iGPU 붙이기

VM의 PCI Device 설정

Raw Device로 GPU의 PCI 주소를 고른다.

  • All Functions: 끈다
  • Primary GPU: 끈다
  • PCI-Express: 켠다
  • ROM-File: 앞에서 뽑아둔 vbios 파일 이름

ROM-File 칸은 Advanced를 켜야 보인다. /etc/pve/qemu-server/<VM_ID>.conf 에서 hostpci0 줄에 ,romfile=vbios_7xxx.bin 을 직접 붙여도 된다.