- Docker (26+)
- Linux x86_64 环境,运行 X11 桌面
- 微信 .deb 安装包放在
debs/目录
# 构建镜像
./run.sh build
# 运行微信(单实例)
./run.sh run
# 运行微信(多开,启动 3 个独立实例)
./run.sh run 3
# 查看日志(实例 1)
./run.sh logs
# 停止所有微信容器
./run.sh stop├── Dockerfile # 容器构建文件
├── docker-compose.yml # Compose 编排(需安装 docker-compose-plugin)
├── run.sh # 便捷管理脚本(支持多开)
├── debs/
│ └── WeChatLinux_x86_64.deb
├── home/ # 容器内 /home/wechat 的映射目录
│ ├── 1/ # 实例 1
│ │ ├── .xwechat/
│ │ ├── xwechat_files/
│ │ ├── .config/
│ │ └── ...
│ └── 2/ # 实例 2(多开时自动创建)
│ └── ...
| 项目 | 说明 |
|---|---|
| 基础镜像 | debian:13 (Trixie) |
| 软件源 | USTC 镜像 (HTTP + GPG 签名验证) |
| 微信版本 | 4.1.1.4 (Linux 原生) |
| 运行用户 | wechat (UID 1000,非 root) |
| 中文字体 | Noto CJK |
- 家目录:
./home/<N>→/home/wechat(配置聊天记录持久化,多开时每个实例独立目录) - X11:
/tmp/.X11-unix(GUI 显示) - GPU:
/dev/dri(硬件加速) - 音频:
/dev/snd(声音输出) - 网络: host 模式
- IPC: host 模式(Electron 共享内存)
每个 WeChat 实例使用 --ipc host 共享宿主机 IPC 命名空间,实例数受系统 System V 信号量/共享内存 限制,实测上限约 30–40 个。主要瓶颈:
| 资源 | 查看命令 | 常见上限 |
|---|---|---|
| 信号量 (sem) | ipcs -s | wc -l + cat /proc/sys/kernel/sem |
32–128 |
| 共享内存 (shm) | ipcs -m | wc -l + cat /proc/sys/kernel/shmall |
取决于内存 |
若需提高上限,可临时调整内核参数(重启后失效):
sudo sysctl -w kernel.sem="250 32000 100 256"
sudo sysctl -w kernel.shmall=4294967296若达到限制,docker run 会报类似 permission denied 或 resource temporarily unavailable 的错误。退出部分实例后即可恢复正常。
若 run.sh 不可用,可直接用 docker:
# 构建
docker build -t wechat-debian13 .
# 运行实例 N(N 为正整数)
xhost +local:
docker run -d \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix:ro \
-v $(pwd)/home/N:/home/wechat \
-v /dev/dri:/dev/dri:ro \
--device /dev/snd \
--network host \
--ipc host \
--name wechat-N \
wechat-debian13