GitHub - dockur/windows: Windows in a Docker container.[1]
原文地址:https://hackerchi.top/article/36d9d3aa-d1b4-4698-b272-54a31347a296.html
展示
各位观众姥爷,献上结果
特征
- 内置windows发行版ISO下载器
- 自动激活
- KVM加速
- 基于网页的查看界面
用法
一、安装Docker和Docker Compose
在不同的操作系统上安装Docker和Docker Compose的步骤有所不同。以下是在Linux、Windows和macOS上安装Docker和Docker Compose的基本指南。
Kali Linux安装Docker和Docker Compose
sudo apt-get update sudo apt install docker docker-compose #验证 成功则返回配置信息 sudo docker info
其他Linux发行版安装Docker
-
- 更新软件包索引:
sudo apt-get update
-
- 安装Docker的必要包:
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
-
- 添加Docker的官方GPG密钥:
curl -fsSL <https://download.docker.com/linux/ubuntu/gpg> | sudo apt-key add -
-
- 设置稳定版仓库:
sudo add-apt-repository "deb [arch=amd64] <https://download.docker.com/linux/ubuntu> $(lsb_release -cs) stable"
-
- 再次更新软件包索引:
sudo apt-get update
-
- 安装Docker CE:
sudo apt-get install docker-ce
安装Docker Compose
-
- 下载Docker Compose的当前稳定版本:
sudo curl -L "<https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$>(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
-
- 为二进制文件添加执行权限:
sudo chmod +x /usr/local/bin/docker-compose
Windows
对于Windows,推荐使用Docker Desktop。
- 访问Docker Desktop的官方下载页面:Docker Desktop for Windows[2]
- 下载安装程序并运行。
- 安装过程中,选择是否启用Windows容器,根据需要选择即可。
- 完成安装后,重启计算机。
Docker Desktop包括Docker Compose,因此不需要单独安装Docker Compose。
macOS
对于macOS,也推荐使用Docker Desktop。
- 访问Docker Desktop的官方下载页面:Docker Desktop for Mac[3]
- 下载安装程序并运行。
- 拖动Docker到应用程序文件夹。
- 启动Docker Desktop。
Docker Desktop包括Docker Compose,因此不需要单独安装Docker Compose。
请注意,安装步骤可能会随着软件版本的更新而变化。建议访问Docker和Docker Compose的官方文档获取最新的安装指南。
二、运行
通过docker-compose运行
编辑docker-compose.yml文件
vi docker-compose.yml
version: "3"services: windows: image: dockurr/windows container_name: windows devices: - /dev/kvm cap_add: - NET_ADMIN ports: - 8006:8006 - 3389:3389/tcp - 3389:3389/udp stop_grace_period: 2m restart: on-failure
进入dockerdocker-compose.yml 所在目录后启动docker-compose
执行以下命令来启动镜像:
docker-compose up -d
这将启动在 docker-compose.yml 文件中定义的所有服务。-d 参数将使 Docker 在后台运行并打印容器ID。
通过docker运行
docker run
docker run -it --rm --name windows -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 dockurr/windows
常用问题
-
- 我该如何使用它?
很简单的!这些是步骤:
-
-
- 启动容器并使用 Web 浏览器连接到端口 8006 。[4]
- 等待奇迹发生,整个安装过程将全自动进行。
- 看到桌面后,您的 Windows 安装就可以使用了。
- 如何选择 Windows 版本?
-
默认情况下,将安装 Windows 11。但是您可以将VERSION环境变量添加到您的撰写文件中,以便指定要下载的替代 Windows 版本:
environment: VERSION: "win11"
从以下值中选择:
Value | Description | Source | Transfer | Size |
win11 | Windows 11 Pro | Microsoft | Fast | 6.4 GB |
win10 | Windows 10 Pro | Microsoft | Fast | 5.8 GB |
ltsc10 | Windows 10 LTSC | Microsoft | Fast | 4.6 GB |
win81 | Windows 8.1 Pro | Microsoft | Fast | 4.2 GB |
win7 | Windows 7 SP1 | Bob Pony | Medium | 3.0 GB |
vista | Windows Vista SP2 | Bob Pony | Medium | 3.6 GB |
winxp | Windows XP SP3 | Bob Pony | Medium | 0.6 GB |
2022 | Windows Server 2022 | Microsoft | Fast | 4.7 GB |
2019 | Windows Server 2019 | Microsoft | Fast | 5.3 GB |
2016 | Windows Server 2016 | Microsoft | Fast | 6.5 GB |
2012 | Windows Server 2012 R2 | Microsoft | Fast | 4.3 GB |
2008 | Windows Server 2008 R2 | Microsoft | Fast | 3.0 GB |
core11 | Tiny 11 Core | Archive.org | Slow | 2.1 GB |
tiny11 | Tiny 11 | Archive.org | Slow | 3.8 GB |
tiny10 | Tiny 10 | Archive.org | Slow | 3.6 GB |
要安装 ARM64 版本的 Windows,请使用dokur/windows-arm[5]。
-
- 如何使用 RDP 进行连接?
网页查看器主要是在安装过程中使用,因为它的图像质量较低,并且没有音频或剪贴板等。
因此,为了获得更好的体验,您可以使用任何 Microsoft 远程桌面客户端连接到容器的 IP,使用用户名docker并将密码留空。
GooglePlay 商店提供了一个很好的适用于Android的 RDP 客户端。[6]Apple Store 中有一款适用于iOS的产品。[7]对于 Linux,您可以使用rdesktop[8];对于 Windows,您不需要安装任何东西,因为它已经作为操作系统的一部分提供。
-
- 如何增加 CPU 或 RAM 的数量?
默认情况下,为容器分配 2 个 CPU 核心和 4 GB RAM,因为这是 Windows 11 的最低要求。
要增加此值,请添加以下环境变量:
environment: RAM_SIZE: "8G"CPU_CORES: "4"
-
- 如何更改磁盘大小?
要扩展 64 GB 的默认大小,请将设置添加DISK_SIZE到您的撰写文件并将其设置为您的首选容量:
environment: DISK_SIZE: "256G"
这也可用于将现有磁盘调整为更大的容量,而不会丢失任何数据。
-
- 如何更改存储位置?
要更改存储位置,请在您的撰写文件中包含以下绑定安装:
volumes: - /var/win:/storage
将示例路径替换/var/win为所需的存储文件夹。
-
- 如何与主机共享文件?
打开文件资源管理器并单击网络部分,您将看到一台名为 的计算机host.lan,双击它,它将显示一个名为 的文件夹Data。
在此文件夹中,您可以访问放置/storage/shared在主机上(见上文)的任何文件。
-
- 如何安装自定义镜像?
为了下载自定义 ISO 映像,请使用VERSION环境变量中指定的 ISO 的 URL 启动一个干净的容器:
environment: VERSION: "https://example.com/win.iso"
或者,您也可以将本地文件重命名为custom.iso并将其放入空/storage文件夹中以跳过下载。
-
- 如何执行手动安装?
最好使用自动安装,因为它优化了与此容器一起使用的各种设置。
但是,如果您坚持手动执行安装,请使用以下环境变量启动一个干净的容器:
environment: MANUAL: "Y"
-
-
- 启动容器并在 Web 浏览器中连接到容器的端口 8006 。[9]下载完成后,您将看到 Windows 安装屏幕。
- 单击开始安装Install now。在下一个屏幕上,出现提示时按“确定” ,然后从列表中Load driver选择与您的 Windows 版本匹配的驱动程序。VirtIO SCSI因此,对于 Windows 11,选择D:amd64w11vioscsi.inf并单击“下一步”。
- 接受许可协议并选择您喜欢的 Windows 版本,例如家庭版或专业版。
- 选择Custom: Install Windows only (advanced),然后单击Load driver下一个屏幕。选择“浏览”并导航到该D:NetKVMw11amd64文件夹,然后单击“确定”。从列表中选择VirtIO Ethernet Adapter并单击“下一步”。
- 选择Drive 0并单击“下一步”。
- 等待 Windows 完成文件复制并完成安装。
- 看到桌面后,打开文件资源管理器并导航到 CD-ROM 驱动器 (E:)。双击virtio-win-gt-x64.msi并继续安装 VirtIO 驱动程序。
- 如何为容器分配单独的 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
请务必修改这些值以匹配您的本地子网。
创建网络后,将您的撰写文件更改为如下所示:
services: windows: container_name: windows ..<snip>.. networks: vlan: ipv4_address: 192.168.0.100 networks: vlan: external: true
这种方法的另一个好处是您不必再执行任何端口映射,因为默认情况下所有端口都会公开。
请注意,由于 macvlan 的设计,Docker 主机无法访问此 IP 地址,这不允许两者之间进行通信。如果这是一个问题,您需要创建第二个 macvlan[10]作为解决方法。
-
- Windows 如何从我的路由器获取 IP 地址?
配置 macvlan 容器后(见上文),Windows 可以通过向路由器请求 IP 来成为家庭网络的一部分,就像真正的 PC 一样。
要启用此模式,请将以下行添加到您的撰写文件中:
environment: DHCP: "Y"devices: - /dev/vhost-net device_cgroup_rules: - 'c *:* rwm'
请注意,在此模式下,容器和 Windows 将各自拥有自己独立的 IP。容器将保留 macvlan IP,Windows 将使用 DHCP IP。
-
- 如何传递磁盘?
通过将磁盘设备添加到您的撰写文件中,可以直接传递磁盘设备:
environment: DEVICE: "/dev/sda"DEVICE2: "/dev/sdb"devices: - /dev/sda - /dev/sdb
DEVICE如果您希望它成为您的主驱动器,请使用它,并使用DEVICE2和更高版本将它们添加为辅助驱动器。
-
- 如何传递 USB 设备?
要传递 USB 设备,首先通过lsusb命令查找其供应商和产品 ID,然后将它们添加到您的 compose 文件中,如下所示:
environment: ARGUMENTS: "-device usb-host,vendorid=0x1234,productid=0x1234"devices: - /dev/bus/usb
-
- 如何验证我的系统是否支持 KVM?
要验证您的系统是否支持 KVM,请运行以下命令:
sudo apt install cpu-checker sudo kvm-ok
如果您收到一条错误消息,kvm-ok指示无法使用 KVM 加速,请检查 BIOS 中的虚拟化设置。
-
- 这个项目合法吗?
是的,该项目仅包含开源代码,不分发任何受版权保护的材料。代码中找到的任何产品密钥都只是 Microsoft 出于试用目的提供的通用占位符。因此,根据所有适用的法律,该项目将被视为合法。
免责声明
本项目中提及的产品名称、徽标、品牌和其他商标均为其各自商标所有者的财产。此项目不隶属于 Microsoft Corporation,也不受 Microsoft Corporation 赞助或认可。
欢迎访问我们的网站和关注我们的公众号,获取最新的技术共享内容、创新想法和安全知识。
参考资料
原文始发于微信公众号(黑客驰):Docker容器中运行Windows!
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论