WSL 或 Docker 报告虚拟化不可用
WSL 2 后端需要硬件虚拟化和 Virtual Machine Platform(虚拟机平台),而不是 Docker 另一种 Hyper-V 后端所使用的完整 Hyper-V 功能。请从以下检查开始:- 在 Windows 的 Task Manager → Performance → CPU(任务管理器 → 性能 → CPU)中,检查是否显示 Virtualization: Enabled(虚拟化:已启用)。如果未启用,请按照电脑制造商的说明在 BIOS/UEFI 中启用 Intel VT-x/VMX 或 AMD-V/SVM。
- 在以管理员身份运行的 PowerShell 中,检查 Windows 功能:
- 如果这些功能和 BIOS 设置都已启用,但仍然出现错误
0x80370102,请在以管理员身份运行的 PowerShell 中检查:
Off,请恢复虚拟机监控程序的启动设置并重启 Windows:
- 如果 Windows 本身运行在虚拟机中,外层虚拟机监控程序必须提供嵌套虚拟化。仅在 Windows 中勾选某个选项无法提供缺失的虚拟 CPU 功能。
Docker Desktop 需要更新或无法拉取镜像
如果提示 WSL update required,请在 PowerShell 中运行wsl --update,如有提示请重启 Windows,然后重新打开 Docker Desktop 和 Ubuntu。如果 Ubuntu 所在行仍显示 WSL 1,请按照第 0 步中的说明转换该发行版。
对于镜像仓库超时、DNS、代理或证书错误,请在拉取输出中查看具体是哪个镜像仓库失败。如果你的网络需要,请配置 Windows/Docker Desktop 的代理和证书信任;不要禁用 TLS 验证。能够成功克隆 GitHub 仓库并不能证明 Docker 可以访问 ghcr.io 或 Docker Hub。请参阅 Docker Desktop 代理设置。网络连接恢复后,请重新运行 bin/up -d;配置的镜像名称必须保持一致。
Ubuntu 中无法使用 Docker
如果找不到docker,请在 Windows 中打开 Docker Desktop,在 Settings → Resources → WSL Integration 下启用 Ubuntu,应用更改并重新打开 Ubuntu。在 PowerShell 中使用 wsl --list --verbose 检查发行版的名称和 WSL 模式。它必须使用 WSL 2。
如果客户端存在但无法连接到守护进程,请检查引擎是否已完成启动。检查 docker context ls 以及任何自定义的 DOCKER_HOST/DOCKER_CONTEXT 设置;远程引擎或旧的 Ubuntu Engine socket 不属于本指南的本地 Desktop 设置。不要通过安装另一个守护进程或让 socket 对所有人可写来解决此问题。
MongoDB 无法启动
bin/up 会在启动应用程序之前初始化 MongoDB 副本集。如果它停在 Waiting for Mongo...,请在另一个 Ubuntu 终端中检查数据库:
mongo,并且输出显示镜像拉取错误,请先解决镜像仓库访问或磁盘空间问题;此时还没有进入数据库启动阶段。解决原因后,请重新运行 bin/up -d。
MongoDB 运行后,检查副本集:
1。bin/up -d 会执行初始的副本集设置;在新部署上直接启动 Compose 服务会跳过 Toolkit 的这一步。
仅当你的 Docker 引擎使用受影响的内核时,才应用 MongoDB 内核变通方法。如果 MongoDB 日志表明存在内核问题,请将引擎的实际内核与 MongoDB 的生产环境说明进行比较,并根据需要更新 WSL/Docker。切勿将清除 data/mongo 作为通用的启动修复方法。
Windows 无法打开 localhost
首先在 Ubuntu 中测试:OVERLEAF_PORT、OVERLEAF_SITE_URL 和浏览器 URL,然后运行 bin/up -d。
沙盒编译失败
请验证以下三个方面:镜像存在于此 Docker 引擎中,应用程序可以使用引擎 socket,并且同级容器可以挂载编译目录:config/variables.env 中配置的镜像。SERVER_PRO=true、SIBLING_CONTAINERS_ENABLED=true 和 DOCKER_SOCKET_PATH=/var/run/docker.sock 应写在 config/overleaf.rc 中。编辑后请运行 bin/up -d;仅运行 bin/start 不会更新容器环境。
No such image 错误表示 Docker 找不到该项目所请求的确切镜像。请保持 TEX_LIVE_DOCKER_IMAGE 和 ALL_TEX_LIVE_DOCKER_IMAGES 一致,在同一个引擎中拉取该镜像,并检查项目的 TeX Live 选择。现有项目可能仍保留着较旧的镜像选择。
对于挂载错误或空的 /compile 目录,请确认 Toolkit 位于 Ubuntu 的主目录下,并且 Docker Desktop 的集成已为同一个发行版启用。不要将 WSL 主机路径替换为 Windows 的 C:\... 路径。Toolkit 会根据 OVERLEAF_DATA_PATH 计算同级容器的路径。
在 basic 镜像下缺少 ctexart.cls 或字体,是宏包/镜像本身的限制。请先验证第 6 步中的简单 article;对于需要额外宏包的项目,请使用更完整的镜像。不要通过禁用沙盒来解决缺少 TeX 宏包的问题。
Shell 脚本报告 CRLF 错误
请在 Ubuntu Bash 中运行脚本。编辑配置时请使用 LF 换行符。提到bash\r 或 $'\r' 的错误通常意味着文件已被转换为 Windows 的 CRLF 格式。请从仓库恢复受影响的脚本或转换其换行符,同时保留本地配置的更改。
重启后容器消失
检查 Docker Desktop 是否正在运行,以及 Ubuntu 集成是否已启用。docker ps 只显示正在运行的容器;也请检查 docker ps -a。如果当前引擎与设置时使用的引擎不同,请切换回正确的上下文,而不是再初始化一个空的安装。
对于存在但已停止的容器,请运行 bin/start 并检查日志。有关登录时启动、重启策略和 Windows 睡眠设置,请参阅保持实例可用。
