首页
学习
活动
专区
圈层
工具
发布
39 篇文章
1
Docker 从Dockerfile 构建镜像 :build 命令的用法
2
[操作系统] 环境变量详解
3
【多厂商设备仿真】EVE-NG社区懒人版5.1+使用方法,如何导入、设备连线、关联CRT、抓包
4
EVE-NG社区懒人版发布——By EmulatedLab
5
一键开启AI编程新纪元:Windows版Trae初体验
6
PySide6 GUI 编程(14):QDial的使用
7
【Python篇】PyQt5 超详细教程——由入门到精通(序篇)
8
猫头虎分享:Python库 Twisted 的简介、安装、用法详解入门教程
9
在 Visual Studio Code 中添加自定义的代码片段
10
【Docker项目实战】使用Docker部署HomeBox家庭库存管理系统
11
Flet-基于Flutter的Python跨平台开发框架(组件学习)
12
Deno对Node最近支持TypeScript的回应
13
深入理解css中的link 和 @import
14
go语言安装及其环境配置
15
《深入浅出Dart》Dart的命令行和Web编程
16
FastAPI(42)- Static Files 静态资源
17
FastAPI 学习之路(三十八)Static Files
18
Python Playwright 入门指南
19
VueHooks Plus:Vue 3 Hooks 的全面解决方案
20
基于 Vue3、TypeScript、Vite2、Pinia 开源的后台管理框架
21
Vue2 + Element-Plus极客范儿后台管理框架,告别繁琐开发!
22
一文带你搞清楚USB、type-C、雷电三接口之间的区别与联系
23
使用tinc+quagga搭建个人SD-WAN网络
24
SSL VPN搭建与使用(OpenVpn)
25
利用Simple-RTMP-Server搭建RTMP和HLS直播服务(上)
26
飞牛 fnos 使用docker部署 Windows 系统:虚拟机的轻量级替代方案
27
iptable端口重定向 MASQUERADE[通俗易懂]
28
68.8K的 star的Supabase免费!2 分钟搞定用户认证功能
29
全新升级!Supabase 与 Next.js 14 的完美融合
30
Arista 收购软件定义网络先驱 Pluribus
31
你的第一个XDP BPF 程序
32
关于 COS 发布新域名 tencentcos.cn 的通知
33
腾讯云主机安装COSFS工具并使用COS对象存储
34
大白话讲清楚:什么是 Langchain 及其核心概念
35
当 Redis 原生支持 JSON,大厂程序员都说它像德芙一样丝滑
36
使用腾讯COS对象存储同步obsidian
37
【linux命令讲解大全】195.Bash 命令解析:declare 的用法和功能详解
38
统信 UOS 使用 Remmina 工具实现 RDP、SSH、SFTP 远程连接
39
终端下强大的资源管理器 -- Ranger 详解
清单首页2025文章详情

飞牛 fnos 使用docker部署 Windows 系统:虚拟机的轻量级替代方案

dockur/windows 开源项目介绍

飞牛系统暂缺官方虚拟机,而 dockur/windows 这个开源项目能让 Windows 系统在 Docker 容器中运行,支持多版本(如 win7、win8、win10、win11、Win Server、Tiny Win)和多语言,很适合开发、测试以及学习场景,可快速搭建且自动部署,稳定又高效,是飞牛系统下 Windows 环境搭建的理想之选。

其具备以下特点:

  • 多系统版本支持:涵盖 win7、win8、win10、win11、Win Server、Tiny Win 等。
  • 支持虚拟化加速
  • 支持自定义 IP 与主机文件共享、磁盘映射、USB 映射

compose 部署 win 系统步骤

新建文件夹:在任意位置创建一个名为“windows”的文件夹,用于存放 docker-compose.yaml 文件。

2024-12-16T06:33:58.png

新增项目:使用 docker 的 compose 方式构建,点击新增项目。

2024-12-16T06:34:06.png

创建项目:输入项目名称,路径选择刚刚创建的“windows”文件夹,点击创建,然后把以下代码拷贝进 docker-compose.yml 文件(创建项目后立即启动打钩,注意看代码注释并根据需求修改):

2024-12-16T06:34:15.png
代码语言:javascript
代码运行次数:0
复制
services:
  windows:
 image: dockurr/windows
 container_name: windows
 environment:
   VERSION: "7e"        # Windows 版本
   DISK_SIZE: "80G"     # 硬盘大小,单位 G
   RAM_SIZE: "2G"       # 内存大小
   CPU_CORES: "2"       # CPU 核心数
   LANGUAGE: "Chinese"  # Windows 语言中文
   REGION: "zh-CN"     # 区域设置为中文(中国)
   KEYBOARD: "zh-CN"   # 键盘布局为中文(中国)
 devices:
   - /dev/kvm
   - /dev/net/tun
 cap_add:
   - NET_ADMIN
 ports:
   - 8010:8006          # 服务端口
   - 3390:3389/tcp      # RDP(远程桌面协议)
   - 3390:3389/udp
 volumes:
   - /vol1/1000/win7:/storage     # 挂载存储目录
   - /vol1/1000/win7/共享:/data  # 文件共享目录
 stop_grace_period: 2m             # 停止时的宽限时间
 restart: unless-stopped           # 自动重启策略
 tty: true
 stdin_open: true

注意:要把/vol1/1000/win7换成你自己的路径,系统将安装到这个位置,/vol1/1000/win7/共享是和主机共享文件用的。

支持的 Windows 版本可参照相关图示

2024-12-16T06:35:19.png

将 Value 里面的版本填到代码中VERSION处就行。点击完成后,等待构建完成

可通过容器运行日志查看镜像下载进度,下载完成后,既能在日志查看安装进度

2024-12-16T06:36:15.png
2024-12-16T06:36:23.png

也可以浏览器打开IP:8010实时查看安装进度

2024-12-16T06:36:34.png
2024-12-16T06:36:47.png

耐心等待自动安装完成即可。 NAS 文件共享 host.lan 是默认名称,打开它就能看到代码中容器映射的 data 文件夹。

2024-12-16T06:37:02.png

使用问题及解决办法

  1. 如何连接使用?
    • 浏览器访问:通过浏览器访问http://NAS IP:8010
    • 第三方工具访问:利用向日葵、Todesk 等第三方工具访问。
  2. 如何安装自定义镜像? 若无法自动下载也可以使用本地镜像文件,方法是将下面代码添加到 compose 文件中:
代码语言:javascript
代码运行次数:0
复制
volumes:
  - /vol1/1000/win7/win7.iso:/custom.iso # 本地镜像路径
  1. 如何配置用户名和密码? 默认情况下,在安装过程中创建一个 called 用户,没有密码。若想使用不同的用户和密码,可以在 compose 代码文件中更改,示例如下:
代码语言:javascript
代码运行次数:0
复制
environment:
  USERNAME: "bill" # 用户名
  PASSWORD: "gates" # 密码
  1. 分配单个 IP 地址 默认情况下,容器使用网桥网络,它与 NAS 主机共享 IP 地址。若要为容器分配单个 IP 地址,可以按如下方式创建 macvlan 网络(请修改这些值以匹配您的本地子网):
代码语言:javascript
代码运行次数:0
复制
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

创建网络后,将 compose 文件更改为如下所示:

代码语言:javascript
代码运行次数:0
复制
services:
  windows:
    container_name: windows
   ...
    networks:
      vlan:
        ipv4_address: 192.168.0.100
networks:
  vlan:
    external: true

此方法的另一个好处是,不必再执行任何端口映射,因为默认情况下将公开所有端口。

  1. 如何添加多个磁盘? 要创建其他磁盘,请按如下方式修改 compose 文件:
代码语言:javascript
代码运行次数:0
复制
environment:
  DISK2_SIZE: "32G"
  DISK3_SIZE: "64G"
volumes:
  - /vol1/1000/win7/example:/storage2
  - /vol1/1000/win7/data/数据备份:/storage3

其他参数具体可查看官方文档,官方文档链接:https://github.com/dockur/windows

下一篇
举报
领券