/windows-in-docker-container

Deploy and manage a Windows OS (x64) seamlessly using Vagrant VM, libvirt, and docker-compose. This innovative approach integrates smoothly into existing workflows, providing an efficient way of containerizing Windows OS for better resource allocation and convenience.

Primary LanguageDockerfileMIT LicenseMIT

💻 Windows in Docker Container

Discover an innovative and efficient method of deploying Windows OS (x64) on your linux system using the power of Vagrant VM, libvirt, and docker-compose. Together, these technologies help you containerize Windows OS, enabling you to manage a Windows instance just as you would any Docker container. This seamless integration into existing workflows significantly enhances convenience and optimizes resource allocation.

Don't forget to star the project if it helped you!

📋 Prerequisites

🚀 Deployment Guide

  1. Create/Update the environmental file .env
# Vagrant image settings
MEMORY=8000 # 8GB
CPU=4
DISK_SIZE=100
  1. Create docker-compose.yml
version: "3.9"

services:
  win10:
    image: ghcr.io/vaggeliskls/windows-in-docker-container:latest
    env_file: .env
    stdin_open: true
    tty: true
    privileged: true
    volumes:
      - /sys/fs/cgroup:/sys/fs/cgroup
    ports:
      - 3389:3389
  1. Run: docker-compose up -d

windows screenshot

🌐 Access via Remote Desktop

For debugging purposes or even testing, you can always connect to the VM using remote desktop software.

Software used during development:

  1. Linux: rdesktop rdesktop <ip>:3389 or remina
  2. MacOS: Windows remote desktop
  3. Windows: buildin Remote Windows Connection

🔑 User Login

Default users based on the Vagrant image are:

  1. Administrator
    • Username: Administrator
    • Password: vagrant
  2. User
    • Username: vagrant
    • Password: vagrant

📚 Further Reading and Resources