
windows v6.04
Docker 컨테이너에서 KVM 가속, 자동 설치, 사용자 지정 가능한 리소스를 사용하여 Windows를 실행합니다. 여러 Windows 버전, USB 패스스루, macvlan 네트워킹을 지원합니다.
Windows
[![Build]][build_url]
[![Version]][tag_url]
[![Size]][tag_url]
[![Package]][pkg_url]
[![Pulls]][hub_url]
[![Build]][build_url] [![Version]][tag_url] [![Size]][tag_url] [![Package]][pkg_url] [![Pulls]][hub_url]
Docker 컨테이너 안의 Windows.
기능 ✨
- Docker 컨테이너 안에서 Windows 실행
- 자동 다운로드 및 무인 설치
- 최신 및 구형 Windows 버전 지원
- KVM 가속을 통한 네이티브에 가까운 성능
- CPU, 메모리 및 스토리지 할당 사용자 지정
- 메모리 벌루닝을 통한 동적 메모리 할당
- USB 패스스루 및 호스트 폴더 공유
- NAT, user-mode, macvlan 및 macvtap 네트워킹 지원
동영상 📺
사용법 🐳
Docker Compose:
services:
windows:
image: dockurr/windows
container_name: windows
environment:
VERSION: "11"
devices:
- /dev/kvm
- /dev/net/tun
cap_add:
- NET_ADMIN
ports:
- 8006:8006
- 3389:3389/tcp
- 3389:3389/udp
volumes:
- ./windows:/storage
restart: always
stop_grace_period: 2m
Docker CLI:
docker run -it --rm --name windows -e "VERSION=11" -p 8006:8006 --device=/dev/kvm --device=/dev/net/tun --cap-add NET_ADMIN -v "${PWD:-.}/windows:/storage" --stop-timeout 120 docker.io/dockurr/windows
Kubernetes:
kubectl apply -f https://raw.githubusercontent.com/dockur/windows/refs/heads/master/kubernetes.yml
GitHub Codespaces:
그래픽 설치 프로그램:
요구 사항 ⚙️
- KVM을 지원하는 Linux 호스트의 Docker 또는 Podman.
- 중첩 가상화가 활성화된 Windows 11의 Docker Desktop 또는 Podman (Desktop).
- 최소 4GB의 사용 가능한 RAM.
- 최소 64GB의 여유 디스크 공간.
[!NOTE] Linux, macOS 및 Windows 10용 Docker Desktop은 현재 컨테이너에 KVM 액세스를 제공하지 않으므로 지원되지 않습니다.
FAQ 💬
어떻게 사용하나요?
아주 간단합니다! 다음 단계를 따르세요:
-
컨테이너를 시작하고 웹 브라우저에서 8006 포트에 연결하세요.
-
마법이 펼쳐지는 동안 편안히 기다리세요. 전체 설치가 완전 자동으로 진행됩니다.
-
바탕 화면이 보이면 Windows 설치가 사용할 준비가 된 것입니다.
새 머신을 즐기고 이 저장소에 스타를 꼭 남겨 주세요!
Windows 버전을 선택하려면 어떻게 하나요?
기본적으로 Windows 11 Pro가 설치됩니다. 그러나 다운로드할 다른 Windows 버전을 지정하려면 compose 파일에 VERSION 환경 변수를 추가할 수 있습니다:
environment:
VERSION: "10"
아래 값 중에서 선택하세요:
| 값 | 버전 | 크기 |
|---|---|---|
11 | Windows 11 Pro | 7.9 GB |
11l | Windows 11 LTSC | 4.7 GB |
11e | Windows 11 Enterprise | 6.6 GB |
10 | Windows 10 Pro | 5.7 GB |
10l | Windows 10 LTSC | 4.6 GB |
10e | Windows 10 Enterprise | 5.2 GB |
8e | Windows 8.1 Enterprise | 3.7 GB |
7u | Windows 7 Ultimate | 3.1 GB |
vu | Windows Vista Ultimate | 3.0 GB |
xp | Windows XP Professional | 0.6 GB |
2k | Windows 2000 Professional | 0.4 GB |
2025 | Windows Server 2025 | 7.6 GB |
2022 | Windows Server 2022 | 6.0 GB |
2019 | Windows Server 2019 | 5.3 GB |
2016 | Windows Server 2016 | 6.5 GB |
2012 | Windows Server 2012 | 4.3 GB |
2008 | Windows Server 2008 | 3.0 GB |
2003 | Windows Server 2003 | 0.6 GB |
[!TIP] Windows ARM64 버전을 설치하려면 dockur/windows-arm을 사용하세요.
스토리지 위치를 변경하려면 어떻게 하나요?
스토리지 위치를 변경하려면 compose 파일에 다음 바인드 마운트를 포함하세요:
volumes:
- ./windows:/storage
예제 경로 ./windows를 원하는 스토리지 폴더 또는 named volume으로 바꾸세요.
디스크 크기를 변경하려면 어떻게 하나요?
기본 크기 64GB를 확장하려면 compose 파일에 DISK_SIZE 설정을 추가하고 원하는 용량으로 설정하세요:
environment:
DISK_SIZE: "256G"
[!TIP] 이 설정은 데이터 손실 없이 기존 디스크를 더 큰 용량으로 조정하는 데에도 사용할 수 있습니다. 다만 추가된 디스크 공간이 할당되지 않음으로 표시되므로 이후에 디스크 파티션을 수동으로 확장해야 합니다.
호스트와 파일을 공유하려면 어떻게 하나요?
설치가 끝나면 바탕 화면에 Shared라는 폴더가 생기며, 이 폴더를 사용해 호스트 머신과 파일을 교환할 수 있습니다.
이 용도로 호스트의 폴더를 선택하려면 compose 파일에 다음 바인드 마운트를 포함하세요:
volumes:
- ./example:/shared
예제 경로 ./example를 원하는 공유 폴더로 바꾸면 해당 폴더가 Shared로 표시됩니다.
CPU 또는 RAM 용량을 어떻게 변경하나요?
기본적으로 Windows는 CPU 코어 2개와 4GB RAM을 사용할 수 있습니다.
이를 조정하려면 다음 환경 변수를 사용해 원하는 용량을 지정할 수 있습니다:
environment:
RAM_SIZE: "8G"
CPU_CORES: "4"
사용자 이름과 암호를 어떻게 설정하나요?
기본적으로 Docker라는 사용자가 생성되며 암호는 admin입니다.
설치 중 다른 자격 증명을 설정하려면 compose 파일에서 구성할 수 있습니다:
environment:
USERNAME: "bill"
PASSWORD: "gates"
Windows 언어를 선택하려면 어떻게 하나요?
기본적으로 영어 버전의 Windows가 다운로드됩니다.
그러나 다운로드할 다른 언어를 지정하려면 compose 파일에 LANGUAGE 환경 변수를 추가할 수 있습니다:
environment:
LANGUAGE: "French"
다음 중에서 선택할 수 있습니다: 🇦🇪 아랍어, 🇧🇬 불가리아어, 🇨🇳 중국어, 🇭🇷 크로아티아어, 🇨🇿 체코어, 🇩🇰 덴마크어, 🇳🇱 네덜란드어, 🇬🇧 영어, 🇪🇪 에스토니아어, 🇫🇮 핀란드어, 🇫🇷 프랑스어, 🇩🇪 독일어, 🇬🇷 그리스어, 🇮🇱 히브리어, 🇭🇺 헝가리어, 🇮🇹 이탈리아어, 🇯🇵 일본어, 🇰🇷 한국어, 🇱🇻 라트비아어, 🇱🇹 리투아니아어, 🇳🇴 노르웨이어, 🇵🇱 폴란드어, 🇵🇹 포르투갈어, 🇷🇴 루마니아어, 🇷🇺 러시아어, 🇷🇸 세르비아어, 🇸🇰 슬로바키아어, 🇸🇮 슬로베니아어, 🇪🇸 스페인어, 🇸🇪 스웨덴어, 🇹🇭 태국어, 🇹🇷 터키어, 🇺🇦 우크라이나어.
키보드 레이아웃을 선택하려면 어떻게 하나요?
선택한 언어의 기본값이 아닌 키보드 레이아웃이나 로캘을 설정하려면 다음과 같이 KEYBOARD 및 REGION 변수를 추가할 수 있습니다:
environment:
REGION: "en-US"
KEYBOARD: "en-US"
사용자 지정 이미지를 설치하려면 어떻게 하나요?
지원되지 않는 ISO 이미지를 다운로드하려면 VERSION 환경 변수에 해당 URL을 지정하세요:
environment:
VERSION: "https://example.com/win.iso"
또는 다운로드를 건너뛰고 대신 로컬 파일을 사용하려면 compose 파일에 다음과 같이 바인드하면 됩니다:
volumes:
- ./example.iso:/custom.iso
예제 경로 ./example.iso를 원하는 ISO 파일 이름으로 바꾸세요. 이 경우 VERSION 값은 무시됩니다.
설치 후 스크립트를 실행하려면 어떻게 하나요?
설치 후 자신의 스크립트를 실행하려면 install.bat이라는 파일을 만들고 필요한 추가 파일(예: 설치할 소프트웨어)과 함께 폴더에 넣으세요.
그런 다음 compose 파일에 해당 폴더를 다음과 같이 바인드하세요:
volumes:
- ./example:/oem
예제 폴더 ./example는 C:\OEM에 복사되며 해당 폴더 안의 install.bat 파일은 자동 설치의 마지막 단계에서 실행됩니다.
수동 설치를 수행하려면 어떻게 하나요?
가상 환경에서 Windows를 실행할 때 발생하는 일반적인 문제를 방지하기 위해 다양한 설정을 조정해 주는 자동 설치를 사용하는 것이 좋습니다.
그러나 (자기 책임 하에) 설치를 수동으로 수행하려면 compose 파일에 다음 환경 변수를 추가하세요:
environment:
MANUAL: "Y"
RDP로 연결하려면 어떻게 하나요?
웹 뷰어는 주로 설치 중에 사용하도록 설계되었습니다. RDP보다 응답성이 낮고 클립보드 공유와 같은 기능을 지원하지 않기 때문입니다.
따라서 더 나은 환경을 위해 사용자 이름 Docker와 암호 admin을 사용하여 모든 Microsoft 원격 데스크톱 클라이언트로 컨테이너의 IP에 연결할 수 있습니다.
Play 스토어에서 제공되는 Android용 RDP 클라이언트와 Apple Store의 iOS용 RDP 클라이언트가 있습니다. Linux에서는 FreeRDP를 사용할 수 있고 Windows에서는 검색창에 mstsc를 입력하면 됩니다.
오디오를 활성화하려면 어떻게 하나요?
오디오는 RDP를 사용하지 않는 한 기본적으로 비활성화되어 있습니다. 브라우저로 스트리밍하려면 다음 환경 변수를 추가하세요:
environment:
AUDIO: "Y"
그런 다음 웹 뷰어에서 설정 → 고급 아래의 오디오를 활성화하세요. 스트림은 이 옵션이 활성화된 동안에만 동작하므로 그 외에는 추가 대역폭을 사용하지 않습니다.
컨테이너에 개별 IP 주소를 할당하려면 어떻게 하나요?
기본적으로 컨테이너는 호스트와 IP 주소를 공유하는 브리지 네트워킹을 사용합니다.
컨테이너에 개별 IP 주소를 할당하려면 다음과 같이 macvlan 네트워크를 만들 수 있습니다:
docker network create -d macvlan \
--subnet=192.168.0.0/24 \
--gateway=192.168.0.1 \
--ip-range=192.168.0.100/28 \
-o parent=eth0 vlan
로컬 서브넷에 맞게 이 값을 반드시 수정하세요.
네트워크를 만든 후에는 compose 파일을 다음과 같이 변경하세요:
services:
windows:
container_name: windows
..<snip>..
networks:
vlan:
ipv4_address: 192.168.0.100


