
Executar Windows dentro de um container Docker com aceleração KVM, instalação automática e recursos personalizáveis. Suporta múltiplas versões do Windows, passagem de USB e rede macvlan.
[![Build]][build_url] [![Version]][tag_url] [![Size]][tag_url] [![Package]][pkg_url] [![Pulls]][hub_url]
Windows dentro de um contentor Docker.
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 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
kubectl apply -f https://raw.githubusercontent.com/dockur/windows/refs/heads/master/kubernetes.yml
[!NOTE] O Docker Desktop no Linux, macOS e Windows 10 atualmente não fornece acesso KVM aos contentores e, portanto, não é suportado.
Muito simples! Estes são os passos:
Inicie o contentor e conecte-se à porta 8006 usando o seu navegador web.
Relaxe enquanto a mágica acontece, toda a instalação será realizada de forma totalmente automática.
Assim que vir a área de trabalho, a sua instalação do Windows está pronta para uso.
Aproveite a sua nova máquina e não se esqueça de dar uma estrela neste repositório!
Por padrão, o Windows 11 Pro será instalado. Mas pode adicionar a variável de ambiente VERSION ao seu ficheiro compose, para especificar uma versão alternativa do Windows a ser transferida:
environment:
VERSION: "10"
Selecione entre os valores abaixo:
| Valor | Versão | Tamanho |
|---|---|---|
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] Para instalar versões ARM64 do Windows, use dockur/windows-arm.
Para alterar a localização do armazenamento, inclua a seguinte montagem bind no seu ficheiro compose:
volumes:
- ./windows:/storage
Substitua o caminho de exemplo ./windows pela pasta de armazenamento ou volume nomeado desejado.
Para expandir o tamanho padrão de 64 GB, adicione a definição DISK_SIZE ao seu ficheiro compose e defina-o para a capacidade pretendida:
environment:
DISK_SIZE: "256G"
[!TIP] Isso também pode ser usado para redimensionar um disco existente para uma capacidade maior sem perda de dados. No entanto, precisará estender manualmente a partição do disco depois, pois o espaço de disco adicionado aparecerá como não alocado.
Após a instalação, haverá uma pasta chamada Shared na sua área de trabalho, que pode ser usada para trocar ficheiros com a máquina anfitriã.
Para selecionar uma pasta no anfitrião para este fim, inclua a seguinte montagem bind no seu ficheiro compose:
volumes:
- ./example:/shared
Substitua o caminho de exemplo ./example pela sua pasta partilhada desejada, que então se tornará visível como Shared.
Por padrão, o Windows poderá usar 2 núcleos de CPU e 4 GB de RAM.
Se quiser ajustar isso, pode especificar a quantidade desejada usando as seguintes variáveis de ambiente:
environment:
RAM_SIZE: "8G"
CPU_CORES: "4"
Por padrão, é criado um utilizador chamado Docker e a sua palavra-passe é admin.
Se quiser definir credenciais diferentes durante a instalação, pode configurá-las no seu ficheiro compose:
environment:
USERNAME: "bill"
PASSWORD: "gates"
Por padrão, a versão inglesa do Windows será transferida.
Mas pode adicionar a variável de ambiente LANGUAGE ao seu ficheiro compose, para especificar um idioma alternativo a ser transferido:
environment:
LANGUAGE: "French"
Pode escolher entre: 🇦🇪 Árabe, 🇧🇬 Búlgaro, 🇨🇳 Chinês, 🇭🇧 Croata, 🇨🇿 Checo, 🇩🇰 Dinamarquês, 🇳🇱 Holandês, 🇬🇧 Inglês, 🇪🇪 Estónio, 🇫🇮 Finlandês, 🇫🇷 Francês, 🇩🇪 Alemão, 🇬🇷 Grego, 🇮🇱 Hebraico, 🇭🇺 Húngaro, 🇮🇹 Italiano, 🇯🇵 Japonês, 🇰🇯 Coreano, 🇱🇻 Letão, 🇱🇹 Lituano, 🇳🇴 Norueguês, 🇵🇹 Polaco, 🇵🇹 Português, 🇷🇴 Romeno, 🇷🇺 Russo, 🇷🇸 Sérvio, 🇸🇮 Eslovaco, 🇸🇮 Esloveno, 🇪🇸 Espanhol, 🇸🇪 Sueco, 🇹🇭 Tailandês, 🇹🇷 Turco e 🇺🇦 Ucraniano.
Se quiser configurar um layout de teclado ou localidade que não seja o padrão para o idioma selecionado, pode adicionar as variáveis KEYBOARD e REGION assim:
environment:
REGION: "en-US"
KEYBOARD: "en-US"
Para transferir uma imagem ISO não suportada, especifique o seu URL na variável de ambiente VERSION:
environment:
VERSION: "https://example.com/win.iso"
Alternativamente, também pode saltar a transferência e usar um ficheiro local, vinculando-o no seu ficheiro compose desta forma:
volumes:
- ./example.iso:/custom.iso