{"id":13552634,"url":"https://github.com/ms-jpq/windows-in-docker-old","last_synced_at":"2025-04-03T03:32:28.125Z","repository":{"id":103097807,"uuid":"268744237","full_name":"ms-jpq/windows-in-docker-old","owner":"ms-jpq","description":" WHY? So you can run Windows \"as a container\"","archived":true,"fork":false,"pushed_at":"2022-03-24T04:33:39.000Z","size":1382,"stargazers_count":51,"open_issues_count":3,"forks_count":9,"subscribers_count":7,"default_branch":"gates","last_synced_at":"2024-11-03T23:35:02.529Z","etag":null,"topics":["docker","kvm","windows"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ms-jpq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-06-02T08:28:07.000Z","updated_at":"2023-01-28T02:11:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"3255d25b-3e12-41d7-8ec1-d29a0af4247c","html_url":"https://github.com/ms-jpq/windows-in-docker-old","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ms-jpq%2Fwindows-in-docker-old","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ms-jpq%2Fwindows-in-docker-old/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ms-jpq%2Fwindows-in-docker-old/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ms-jpq%2Fwindows-in-docker-old/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ms-jpq","download_url":"https://codeload.github.com/ms-jpq/windows-in-docker-old/tar.gz/refs/heads/gates","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246933421,"owners_count":20857049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","kvm","windows"],"created_at":"2024-08-01T12:02:07.017Z","updated_at":"2025-04-03T03:32:23.100Z","avatar_url":"https://github.com/ms-jpq.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"# Much better project here\n\n[https://github.com/ms-jpq/windows-in-docker](https://github.com/ms-jpq/windows-in-docker)\n\n![preview.img](https://raw.githubusercontent.com/ms-jpq/windows-in-docker/main/screenshots/virtman.png)\n\n---\n\n# The thingy below is **depreciated**\n\n---\n\n# [WIND - Windows in Docker](https://ms-jpq.github.io/windows-in-docker)\n\nBrowser \u003e Docker \u003e KVM \u003e Windows\n\nThank you Redhat, very legal \u0026 very cool.\n\n## WHY?\n\nQEMU + KVM has a relatively involved setup, not very user friendly.\n\nThis image is vastly more user friendly, it comes with:\n\n1. Browser UI\n\n2. Networking out of the box\n\n3. Literally copy paste install\n\n4. Built-in Windows drivers\n\n5. Crazy easy customizations, ie. `--cpus=9 --memory=6024 --size=120`\n\n## Preview\n\n![preview1 img](https://raw.githubusercontent.com/ms-jpq/windows-in-docker/gates/preview/scr.png)\n\n![preview2 img](https://raw.githubusercontent.com/ms-jpq/windows-in-docker/gates/preview/drivers.png)\n\n## Instructions\n\n### Prerequisites\n\nYou hardware must be able to run `KVM`. (Most computer can run at least 1 layer of virtualization now days.)\n\n### Install\n\nRun the command below, and head to Firefox at port 8080 to finish installation\n\n```sh\ndocker -it --rm \\\n  --privileged \\\n  -v /lib/modules:/lib/modules:ro \\\n  -p 8080:65080 \\\n  -v /vm_image_dir:/config \\\n  -v /iso_dir:/install \\\n  msjpq/kvm-windows new \u003cwindows.iso\u003e --bios\n```\n\n**Add `--bios`, if your windows version is old, or else it will load UEFI**\n\n`\u003cwindows.iso\u003e` will eject after first poweroff, you will find the generated libvirt manifest under `/config`.\n\nRun the command below to finish installation, and for future usage.\n\n```sh\ndocker -it --rm \\\n  --privileged \\\n  -v /lib/modules:/lib/modules:ro \\\n  -p 8080:65080 \\\n  -v /vm_image_dir:/config \\\n  msjpq/kvm-windows\n```\n\n#### Drivers\n\nYou will need to manually install some of drivers, (VirtIO is annoying like that).\n\n##### Essential\n\n1. The harddrive drivers will need to be installed before first reboot.\n\n2. The ethernet drivers will need to be installed after first login under Device Manager.\n\n##### Whatever\n\nThings like `qxl` can also be installed under Device Manager. Not really important though.\n\n**All drivers are included with the default install, under `D:/` or `E:/` drive.**\n\n##### Customization\n\nAdditional flags to pass onto `new \u003cimage name\u003e \u003cflag\u003e \u003cflag\u003e ...`\n\n| Flag        | Default  | Option                                                                    |\n| ----------- | -------- | ------------------------------------------------------------------------- |\n| `--bios`    | `False`  | Boot `bios` instead of `uefi`                                             |\n| `-os`       | `win10`  | Windows distro                                                            |\n| `--cpus`    | `#cores` | Number of virtual cpus                                                    |\n| `--memory`  | `4000`   | (MB)                                                                      |\n| `--vram`    | `256`    | (MB)                                                                      |\n| `--size`    | `100`    | (GB)                                                                      |\n| `--dry-run` | `False`  | Dry run                                                                   |\n| `--extra`   | `None`   | Extra args for [`virt-install`](https://linux.die.net/man/1/virt-install) |\n\n### Networking\n\nAll ports from VM are forwarded to container except:\n\n`53`, `67-68`, `65001-65535`\n\n**NOT** recommended to run with `--net=host`.\n\n### Environmental Variables\n\n#### Browser UI\n\n- `-e PATH_PREFIX=/`\n- `-e VNC_RESIZE=scale|off`\n- `-e RECON_DELAY=250` reconnection delay (ms)\n\n#### Virtualization\n\nLibvirt look for `VM_NAME.xml` to boot.\n\n`new` will create `VM_NAME.xml` and `VM_NAME.img`.\n\n- `-e VM_NAME=wind`\n\n### Ports\n\n- `-p 8080:65080` noVNC web UI\n\n- `-p 5900:65059` VNC\n\n### Volumes\n\nLibvirt manifests are stored in`/config`, along with VM images.\n\n- `-v ./vm_data/:/config`\n\nYou need to supply your own `windows.iso`, for obvious reasons.\n\n- `-v ./install_media/:/install`\n\n### Disclaimer\n\nWorks on my machine ™.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fms-jpq%2Fwindows-in-docker-old","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fms-jpq%2Fwindows-in-docker-old","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fms-jpq%2Fwindows-in-docker-old/lists"}