{"id":49023860,"url":"https://github.com/vaggeliskls/windows-in-docker-container","last_synced_at":"2026-04-19T05:38:10.397Z","repository":{"id":187233774,"uuid":"676534763","full_name":"vaggeliskls/windows-in-docker-container","owner":"vaggeliskls","description":"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.","archived":false,"fork":false,"pushed_at":"2025-03-08T17:29:20.000Z","size":1048,"stargazers_count":81,"open_issues_count":3,"forks_count":16,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-08T18:26:05.758Z","etag":null,"topics":["docker","docker-compose","vagrant","windows","windows-in-docker-linux"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vaggeliskls.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-09T12:24:53.000Z","updated_at":"2025-02-24T14:14:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"91a26e58-50ba-4328-a79d-1dab52044524","html_url":"https://github.com/vaggeliskls/windows-in-docker-container","commit_stats":{"total_commits":18,"total_committers":1,"mean_commits":18.0,"dds":0.0,"last_synced_commit":"5666be99f9053d57a43f5d686f503ec111243387"},"previous_names":["vaggeliskls/windows-vagrant-vm"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/vaggeliskls/windows-in-docker-container","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaggeliskls%2Fwindows-in-docker-container","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaggeliskls%2Fwindows-in-docker-container/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaggeliskls%2Fwindows-in-docker-container/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaggeliskls%2Fwindows-in-docker-container/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vaggeliskls","download_url":"https://codeload.github.com/vaggeliskls/windows-in-docker-container/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaggeliskls%2Fwindows-in-docker-container/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31996445,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","vagrant","windows","windows-in-docker-linux"],"created_at":"2026-04-19T05:38:09.807Z","updated_at":"2026-04-19T05:38:10.383Z","avatar_url":"https://github.com/vaggeliskls.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 💻 Windows in Docker Container\r\nDiscover 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.\r\n\r\n⭐ **Don't forget to star the project if it helped you!**\r\n\r\n## 📋 Prerequisites\r\n\r\nEnsure your system meets the following requirements:\r\n\r\n- **Docker:** Version 20 or higher [(Install Docker)](https://www.docker.com/)\r\n\r\n- **Host OS:** Linux\r\n\r\n- **Virtualization Enabled:**\r\n  - Check with:\r\n    - `grep -E -o 'vmx|svm' /proc/cpuinfo`\r\n  - Output indicates:\r\n    - `vmx` → Intel VT-x is supported \u0026 enabled.\r\n    - `svm` → AMD-V is supported \u0026 enabled.\r\n  - If virtualization is not enabled, enable it in the BIOS/UEFI settings.\r\n\r\n## 🚀 Deployment Guide\r\n\r\n1. Create/Update the environmental file `.env`\r\n```\r\n# Vagrant image settings\r\nMEMORY=8000 # 8GB\r\nCPU=4\r\nDISK_SIZE=100\r\n```\r\n2. Create `docker-compose.yml`\r\n```yaml\r\nservices:\r\n  win10:\r\n    image: docker.io/vaggeliskls/windows-in-docker-container:latest\r\n    platform: linux/amd64\r\n    env_file: .env\r\n    stdin_open: true\r\n    tty: true\r\n    privileged: true\r\n    cgroup: host\r\n    restart: always\r\n    ports:\r\n      - 3389:3389\r\n      - 2222:2222\r\n```\r\n4. Create `docker-compose.override.yml` when you want your VM to be persistent\r\n```yaml\r\nservices:\r\n  win10:\r\n    volumes:\r\n      - libvirt_data:/var/lib/libvirt\r\n      - vagrant_data:/root/.vagrant.d\r\n      - vagrant_project:/app/.vagrant\r\n      - libvirt_config:/etc/libvirt\r\n\r\nvolumes:\r\n  libvirt_data:\r\n    name: libvirt_data\r\n  vagrant_data:\r\n    name: vagrant_data\r\n  vagrant_project:\r\n    name: vagrant_project\r\n  libvirt_config:\r\n    name: libvirt_config\r\n```\r\n\r\n5. Run: `docker compose up -d`\r\n\r\n\u003e When you want to destroy everything `docker compose down -v`\r\n\r\n![windows screenshot](https://github.com/vaggeliskls/windows-in-docker-container/blob/main/images/screen-1.png?raw=true )\r\n\r\n## 🌐 Access  \r\n\r\n### Remote Desktop (RDP)  \r\nFor debugging or testing, you can connect to the VM using **Remote Desktop** on port `3389`.  \r\n\r\n#### Software for Remote Desktop Access  \r\n| OS       | Software |\r\n|----------|----------------|\r\n| **Linux**   | [`rdesktop`](https://github.com/rdesktop/rdesktop) → `rdesktop \u003cip\u003e:3389` or [`Remmina`](https://remmina.org/) |\r\n| **MacOS**   | [Microsoft Remote Desktop](https://apps.apple.com/us/app/microsoft-remote-desktop/id1295203466?mt=12) |\r\n| **Windows** | Built-in **Remote Desktop Connection** |\r\n\r\n---\r\n\r\n### SSH   \r\nYou can connect via SSH using either the **administrator** or **Vagrant** user credentials.  \r\n```bash\r\nssh \u003cuser\u003e@\u003chost\u003e -p 2222\r\n```\r\n\r\n## 🔑 User Login\r\nDefault users based on the Vagrant image are:\r\n\r\n1. Administrator\r\n    - Username: Administrator\r\n    - Password: vagrant\r\n1. User\r\n    - Username: vagrant\r\n    - Password: vagrant\r\n\r\n## 📚 Further Reading and Resources\r\n\r\n- [Windows Vagrant Tutorial](https://github.com/SecurityWeekly/vulhub-lab)\r\n- [Vagrant image: peru/windows-server-2022-standard-x64-eval](https://app.vagrantup.com/peru/boxes/windows-server-2022-standard-x64-eval)\r\n- [Vagrant by HashiCorp](https://www.vagrantup.com/)\r\n- [Windows Virtual Machine in a Linux Docker Container](https://medium.com/axon-technologies/installing-a-windows-virtual-machine-in-a-linux-docker-container-c78e4c3f9ba1)\r\n- [GPU inside a container](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaggeliskls%2Fwindows-in-docker-container","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvaggeliskls%2Fwindows-in-docker-container","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaggeliskls%2Fwindows-in-docker-container/lists"}