一个基于 Docker 和 Deepin-Wine 的 Windows 应用运行环境,专为 Linux 系统设计。支持企业微信、微信、网易云音乐等数 Windows 应用程序在 Linux 上流畅运行。
截图展示:抖音、网易云音乐、邮件客户端等多应用同时运行
- 🐳 完全容器化 - 基于 Docker 的隔离环境,不影响宿主机系统
- 🚀 一键运行 - 智能脚本自动处理环境配置和应用安装
- 📦 应用管理 - 支持安装、卸载、搜索、列出数百款应用
- 🔖 版本管理 - 支持安装指定版本的应用,版本映射可配置
- 🎨 图形界面支持 - 完整的 X11 转发,完美支持 GUI 应用
- 💾 数据持久化 - 应用数据自动保存到宿主机,容器重建不丢失
- 🔧 自动化配置 - 自动配置 Docker、Wine、输入法等环境
- 🌐 网络支持 - 支持 host 网络模式,应用网络功能正常
- 操作系统: Linux ( Ubuntu 20.04 与 Ubuntu 22.04都测试过)
- Docker: 20.10+ (未安装时会自动安装,需要 root 权限)
- 内存: 至少 4GB RAM
- 磁盘空间: 至少 5GB 可用空间
- 图形环境: X11 或 Wayland (需要图形界面支持)
-
克隆项目
git clone https://github.com/zwhy2025/linux-wxwork.git cd linux-wxwork -
运行应用(推荐)
使用简短名称运行应用,脚本会自动安装和配置:
./tools/run.sh wxwork # 运行企业微信 ./tools/run.sh wechat # 运行微信 ./tools/run.sh netease # 运行网易云音乐
首次运行会自动执行:
- 检查并安装系统依赖(curl, jq 等)
- 自动检测并安装 Docker(如果未安装,需要 root 权限)
- 配置 Docker 镜像源
- 构建或拉取 Docker 镜像
- 创建并启动容器
- 安装并运行指定应用
-
查看可用应用
./tools/run.sh list # 列出所有支持的应用 ./tools/run.sh search <关键词> # 搜索应用
提示: 如果您更喜欢传统的虚拟机方案,也可以考虑使用 VirtualBox + Windows 10 精简版镜像 的方式运行 Windows 应用。
优势:
- ✅ 原生 Windows 环境,兼容性最佳
- ✅ 镜像体积小(最小的Windows 10 精简版镜像约 1.4GB),资源占用低
- ✅ 完全隔离,安全性高
- ✅ 支持所有 Windows 应用,无兼容性问题
资源占用对比:
- Wine-Docker: 内存占用约 500MB-1GB,磁盘约 2-3GB
- VirtualBox + Win10: 内存占用约 1-2GB,磁盘约 3-5GB(含镜像)
两种方案各有优势,您可以根据自己的需求选择。Wine-Docker 方案更轻量、启动更快;虚拟机方案兼容性更好、功能更完整。
方式一:使用简短名称(推荐)
./tools/run.sh <简短名称>例如:./tools/run.sh wxwork 会自动安装并运行企业微信
方式二:使用应用管理命令
# 安装应用
./tools/run.sh install <完整包名> [简短名称]
# 示例
./tools/run.sh install com.qq.weixin.work.deepin wxwork方式三:安装指定版本
# 安装指定版本的应用
./tools/run.sh install wxwork -v v4
./tools/run.sh install wxwork --version v4
# 运行应用时指定安装版本(如果未安装)
./tools/run.sh wxwork -v v4
./tools/run.sh wxwork --version v4注意:版本映射存储在
mapping.json文件中,每个应用可以配置多个版本的下载地址。目前支持企业微信 v4 版本。
./tools/run.sh uninstall <包名或简短名称>
# 示例
./tools/run.sh uninstall wxwork
./tools/run.sh uninstall com.qq.weixin.work.deepin从 Deepin-Wine 应用商店 搜索可用应用:
./tools/run.sh search wechat # 搜索包含 "wechat" 的应用
./tools/run.sh search 音乐 # 搜索音乐相关应用查看项目中已配置的热门应用列表:
./tools/run.sh list./tools/run.sh stop # 停止容器
./tools/run.sh stop --clear # 停止并删除容器和镜像./tools/run.sh # 显示帮助信息
./tools/run.sh help # 显示帮助信息linux-wxwork/
├── env/ # 环境安装脚本
│ ├── install_base.sh # 基础系统包安装
│ ├── install_dev.sh # 开发工具安装
│ ├── install_graphics.sh # 图形界面支持
│ ├── install_spark_store.sh # Spark Store 补丁包安装
│ ├── install_wxwork.sh # 企业微信安装(示例)
│ └── setup_env.sh # 环境设置
├── tools/ # 工具脚本
│ ├── run.sh # 统一运行脚本(运行应用+容器管理+应用管理)
│ ├── run_wxwork.sh # 企业微信快捷脚本(兼容性)
│ └── lib/ # 内部实现文件(不对外暴露)
│ ├── app.sh # 应用管理脚本(安装/卸载/搜索/列出)
│ ├── setup.sh # 环境依赖检查和安装
│ ├── install_docker.sh # Docker 安装脚本(支持 amd64/arm64)
│ └── functions.bash # 公共函数库
├── wxwork-files/ # 应用数据目录(自动创建)
│ ├── [用户ID]/ # 用户数据
│ │ ├── Data/ # 应用数据
│ │ ├── Cache/ # 缓存文件
│ │ ├── Backup/ # 备份数据
│ │ └── WeDrive/ # 企业网盘
│ ├── Global/ # 全局配置
│ └── Profiles/ # 用户配置文件
├── mapping.json # 应用映射表(简短名称 ↔ 包名 + 版本映射)
├── docker-compose.yml # Docker Compose 配置
├── Dockerfile # Docker 镜像构建文件
└── README.md # 项目说明文档
主要配置项:
- 镜像:
zwhy2025/wine-docker:base - 容器名:
wine_container - 网络模式:
host(共享主机网络) - 特权模式: 启用 (用于设备访问)
- 共享内存: 16GB
- 工作目录:
/workspace
.:/workspace- 项目目录挂载./wxwork-files:/root/.deepinwine/.../WXWork/- 应用数据持久化${HOME}/.Xauthority:/root/.Xauthority- X11 认证/tmp:/tmp- 临时文件共享/dev:/dev- 设备访问
DISPLAY- X11 显示服务器QT_X11_NO_MITSHM=1- 禁用 MIT-SHM 扩展ACCEPT_EULA=Y- 接受最终用户许可协议PRIVACY_CONSENT=Y- 隐私协议同意XDG_RUNTIME_DIR- XDG 运行时目录
# 方式一:使用快捷脚本
./tools/run.sh wxwork
# 方式二:使用完整命令
./tools/run.sh install com.qq.weixin.work.deepin wxwork
./tools/run.sh wxwork./tools/run.sh wechat./tools/run.sh netease# 1. 搜索应用
./tools/run.sh search 音乐
# 2. 查看搜索结果,找到包名
# 3. 安装应用
./tools/run.sh install <包名> <简短名称>
# 4. 运行应用
./tools/run.sh <简短名称># 停止容器
./tools/run.sh stop
# 停止并删除容器和镜像
./tools/run.sh stop --clear# 显示帮助信息
./tools/run.sh
# 或
./tools/run.sh help问题: 应用启动后看不到窗口
解决方案:
# 允许 X11 连接
xhost +local:docker
# 检查 DISPLAY 变量
echo $DISPLAY
# 如果为空,设置 DISPLAY
export DISPLAY=:0问题: 系统未安装 Docker
解决方案:
# 方式一:自动安装(推荐)
# 脚本会自动检测并安装 Docker,只需使用 sudo 运行
sudo ./tools/run.sh wxwork
# 方式二:手动安装
# 使用项目提供的安装脚本
sudo bash ./tools/lib/install_docker.sh注意: 如果使用普通用户运行脚本,检测到 Docker 未安装时会提示需要 root 权限。使用
sudo运行脚本即可自动安装 Docker。
问题: Docker 容器启动失败
解决方案:
# 检查 Docker 服务状态
sudo systemctl status docker
# 重启 Docker 服务
sudo systemctl restart docker
# 检查容器日志
docker logs wine_container问题: 安装应用时出现错误
解决方案:
# 检查容器是否运行
docker ps | grep wine_container
# 进入容器检查
docker exec -it wine_container bash
# 手动更新软件源
docker exec wine_container apt update
# 检查网络连接
docker exec wine_container ping -c 3 8.8.8.8问题: 容器内无法输入中文
解决方案:
# 检查输入法环境变量(已在 wrapper 中自动设置)
docker exec wine_container env | grep IM_MODULE
# 如果未设置,手动设置
docker exec -it wine_container bash
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx问题: 容器重建后应用数据丢失
解决方案:
- 确保
wxwork-files/目录存在且可写 - 检查 docker-compose.yml 中的卷挂载配置
- 检查文件权限:
ls -la wxwork-files/
# 容器日志
docker logs wine_container
# 实时查看容器日志
docker logs -f wine_container
# 应用日志(企业微信示例)
docker exec wine_container find /root/.deepinwine -name "*.log" -type f
# 查看 wrapper 调试日志
cat .cursor/debug.log如果遇到无法解决的问题,可以重置环境:
# 停止并删除容器和镜像(推荐)
./tools/run.sh stop --clear
# 或使用传统方式
docker compose down
docker rmi zwhy2025/wine-docker:base
# 清理数据(谨慎操作,会删除所有应用数据)
# rm -rf wxwork-files/
# 重新运行
./tools/run.sh wxwork# 进入运行中的容器
docker exec -it wine_container bash
# 查看 Wine 配置
winecfg
# 查看已安装的应用
dpkg -l | grep deepin
# 查看应用进程
ps aux | grep -E "wxwork|wechat|netease"
# 手动运行应用
/usr/bin/wxwork-
查找应用包名
./tools/run.sh search <关键词>
-
安装应用
./tools/run.sh install <包名> <简短名称>
-
添加到映射表 (可选)
编辑
mapping.json,添加新应用的映射:{ "简短名称": { "package": "完整包名", "description": "应用描述" } }
# 本地构建镜像
docker buildx build --platform linux/amd64 -t zwhy2025/wine-docker:base --load .
# 使用 docker-compose 构建
docker compose build
# 构建并启动
docker compose up -d --build编辑 env/ 目录下的脚本文件,然后重新构建镜像:
# 修改脚本后重新构建
docker compose build --no-cache
docker compose up -d- 数据安全:
wxwork-files/目录包含用户数据,请定期备份 - 权限问题: 容器以特权模式运行,注意安全风险
- 资源占用: 某些应用可能占用较多内存和 CPU 资源
- 网络访问: 使用 host 网络模式,注意防火墙设置
- X11 安全:
xhost +local:docker会降低 X11 安全性,仅在受信任环境使用
欢迎提交 Issue 和 Pull Request 来改进这个项目!
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
提交 Issue 时请包含:
- 操作系统版本
- Docker 版本
- 错误日志
- 复现步骤
本项目遵循相应的开源许可证。
- 基于 deepin-wine 项目
- 应用来源:Deepin-Wine 应用商店
如果遇到问题:
免责声明: 本项目仅用于学习和研究目的,请遵守相关软件的使用协议。使用本项目运行的应用需遵守其各自的许可协议。
