把Windows系统装进Docker里进行远程桌面

项目介绍

在Docker容器中安装Windows系统。

安装Docker

curl -sSL https://get.docker.com/ | sh

检查CPU是否支持虚拟化技术

在CentOS 7上检查是否支持KVM的方法是通过检查CPU是否支持硬件虚拟化,以及是否已经加载了KVM内核模块。

egrep -c '(vmx|svm)' /proc/cpuinfo
如果输出大于0,则表示CPU支持Intel VT-x或AMD-V,这是硬件虚拟化的基础。

检查KVM内核模块是否已加载:

lsmod | grep kvm
如果已经加载,你会看到kvm_intel(对于Intel CPU)或kvm_amd(对于AMD CPU)。

如果上述命令没有输出,或者lsmod命令的输出中没有显示这些模块,你可以尝试手动加载它们:

sudo modprobe kvm
sudo modprobe kvm_intel  # 对于Intel CPU
# 或者
sudo modprobe kvm_amd  # 对于AMD CPU

如果你想要这些模块在系统启动时自动加载,你可以将它们添加到/etc/modules文件中:

echo "kvm" | sudo tee -a /etc/modules
echo "kvm_intel" | sudo tee -a /etc/modules  # 对于Intel CPU
# 或者
echo "kvm_amd" | sudo tee -a /etc/modules  # 对于AMD CPU

以上步骤可以帮助你确认CentOS 7是否支持KVM以及是否已经正确配置了KVM环境。

下载Windows Docker镜像

图片

下载镜像

docker pull dockurr/windows

你也可以本地构建

git clone https://github.com/dockur/windows.git
cd windows
docker build -t dockurr/windows .

几项技术

•qemus/qemu-docker[7],在容器中使用 QEMU,能够提供接近本机速度的虚拟机的网络、IO 速度等。
•christgau/wsdd[8],让容器中的 Windows 能够出现在局域网中的其他设备的共享设备中。(Windows 10 的 1511 版本后,默认开始禁用 SMBv1,NetBIOS 设备发现功能失效,导致其他设备不能对其进行服务发现)。
•qemus/virtiso[9],精简到 27MB 的 KVM/QEMU Virtio 驱动程序,能够让 Windows 在 Docker 环境中正常使用。
•krallin/tini[10],正确启动 Docker 中 QEMU,以及确保进程异常能够被正确处理,或正确的终止容器进程。

部署安装

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

创建windows

docker-compose up -d

方法-1,是使用浏览器访问容器所在主机的 IP地址:8006

图片

耐心等待,等待windows安装

图片

方法-2,用 RDP 远程工具,写上IP和端口3389,用户名为:docker,密码为空。

图片

posted @ 2024-03-14 09:27  GaoYanbing  阅读(683)  评论(0编辑  收藏  举报