飞牛Nas运行Windows容器
容器使用链接:dockur/windows
网络部分链接:使用 Docker macvlan 网络
目标
在飞牛nas docker中运行windows,将windows加入本地网络,有一个本地网络的地址,并且能够连通nas主机
1. 修改路由器DHCP 地址分配
因为要分一些ip地址给windows容器,所以在路由器上留一些ip,我这里路由器只分配 192.168.2.2-192.168.2.191
2. 创建docker网络
创建一个macvlan网络
docker network create -d macvlan -o parent=enx803f5d0651b4 \
--subnet 192.168.2.0/24 \
--gateway 192.168.2.1 \
--ip-range 192.168.2.192/28 \
--aux-address 'host=192.168.2.201' \
mynet
这里设置位docker保留地址 192.168.2.201
创建另一个macvlan网络
重启之后依旧有效,使用 NetworkManager 操作
sudo nmcli connection add type macvlan ifname mynet-shim con-name mynet-shim \
dev enx803f5d0651b4 mode bridge ip4 192.168.2.201/32
sudo nmcli connection modify mynet-shim +ipv4.routes "192.168.2.192/28"
sudo nmcli connection up mynet-shim
临时使用,重启丢失
这个用于与windows主机通信
ip link add mynet-shim link enx803f5d0651b4 type macvlan mode bridge
现在我们需要使用我们保留的地址配置接口 并提出来
ip addr add 192.168.2.201/32 dev mynet-shim
ip link set mynet-shim up
我们需要做的最后一件事是告诉我们的主机使用该接口与容器通信,因为我们已将容器限制为特定的CIDR本地网络子集,
我们只需向该范围添加一个路由,如下所示
ip route add 192.168.2.192/28 dev mynet-shim
3. 运行docker
docker-compose文件如下,镜像最好是提前下载好,
storage2 是第二块磁盘,windows 启动后在磁盘管理中格式化
/vol2/1000/share_mount:/data 是将飞牛这个路径挂载到 windows 的网络位置,后续可以映射网络驱动器
services:
windows:
image: dockurr/windows
container_name: windows10-ltsc
environment:
VERSION: "10l"
LANGUAGE: "Chinese"
DISK_SIZE: "80G"
DISK2_SIZE: "100G"
RAM_SIZE: "4G"
CPU_CORES: "8"
USERNAME: "admin"
PASSWORD: "xxxxxxxxxx"
REGION: "en-US"
KEYBOARD: "en-US"
DHCP: "Y"
devices:
- /dev/kvm
- /dev/net/tun
- /dev/vhost-net
device_cgroup_rules:
- 'c *:* rwm'
cap_add:
- NET_ADMIN
ports:
- 10000:8006
- 3389:3389/tcp
- 3389:3389/udp
volumes:
- /vol2/1000/Docker/Windows10-lts/data
- /vol2/1000/Docker/Windows10-lts/data2:/storage2
- /vol1/1000/镜像/19044.1288.211006-0501.21h2_release_svc_refresh_CLIENT_LTSC_EVAL_x64FRE_zh-cn.iso:/boot.iso
- /vol2/1000/share_mount:/data
restart: always
stop_grace_period: 2m
networks:
mynet:
networks:
mynet:
external: true
这时候容器ip是dhcp分配的
4. 连接windows
查看容器日志,等到windows安装成功之后,通过路由器查看到windows地址,再通过远程桌面连接进入系统,再把windows改为固定ip
5. windows kms激活
kms docker-compose 文件
services:
kms:
image: teddysun/kms
container_name: kms
restart: always
ports:
- "1688:1688"
默认情况下,企业评估版本无法KMS激活。需安装相应SKU才可以,需要下载skus文件到指定目录
下载Windows_10_ltsc_2021_skus解压并把子目录复制到 C:\Windows\System32\spp\tokens\skus
最后使用管理员权限执行激活命令,192.168.2.2 是我局域网中的 kms 服务器,如果使用飞牛 docker 运行 kms,这里是飞牛主机地址
cscript.exe %windir%\system32\slmgr.vbs /rilc
cscript.exe %windir%\system32\slmgr.vbs /upk >nul 2>&1
cscript.exe %windir%\system32\slmgr.vbs /ckms >nul 2>&1
cscript.exe %windir%\system32\slmgr.vbs /cpky >nul 2>&1
cscript.exe %windir%\system32\slmgr.vbs /ipk M7XTQ-FN8P6-TTKYV-9D4CC-J462D
cscript.exe %windir%\system32\slmgr.vbs /skms 192.168.2.2:1688
cscript.exe %windir%\system32\slmgr.vbs /ato
echo
...