跳转到内容

使用容器

容器在 Astral 中是一台独立电脑,拥有自己的文件系统和身份。适合希望把任务环境与日常使用的系统分开时使用。

容器宿主机需要已运行的 Linux 容器引擎,并能通过本地 Docker CLI 和 context 访问。运行 Astral 或接入命令的账户必须有权使用该引擎。

宿主机 目标兼容环境
macOS Docker Desktop、OrbStack、Colima,或使用 Docker 兼容后端的 Rancher Desktop
Linux Docker Engine,包括 rootless Docker,或 Docker Desktop
Windows 使用 Linux 容器模式的 Docker Desktop

Astral 和 Windows 接入命令原生运行,使用时不需要进入 WSL;容器运行时管理自己的 Linux 环境。请选中本地 Docker context;本机容器快捷入口不会通过远程 Docker context 创建容器。

上表说明目标兼容范围,不表示每一种运行时版本、系统和 CPU 组合都已实测。实际验收环境以该次发行的检查记录为准。

“使用本机容器”会使用 Server 所在机器的本地容器运行时;不会因为你在另一台电脑的浏览器打开 Astral,就改用那台电脑的 Docker。

  • 在 Server 所在机器创建:打开 设置 → 电脑 → 添加电脑 → 使用本机容器。
  • 在其他机器创建:选择“连接其他机器”,启用“使用容器”,在容器宿主机执行生成的命令。

Astral 会下载当前应用版本指定的官方预构建 Ubuntu 环境,检查容器到 Server 的连接,再创建持久工作目录和容器,将对应架构的 Linux Daemon 复制进去,启动并等待电脑连接。界面会显示这些阶段及日志。首次下载镜像可能较慢,后续创建可复用 Docker 已缓存的镜像。

目标电脑不需要现场构建镜像或从头安装工具链。准备失败时,先确认容器运行时已启动、账户有访问权限,并能访问官方镜像仓库及发行下载。

上线后,在 Bot 的电脑权限中开放使用,再从会话选择该容器。

当前环境基于 Ubuntu 24.04,包含常用开发、数据、文档、媒体、OCR 和浏览器工具,以及中文和 emoji 字体。Bot 可以继续安装任务需要的软件。宿主机的项目文件不会自动出现在容器里,需明确复制或挂载。

环境镜像与 Astral 程序分别更新。每个应用版本固定使用一个镜像摘要;只有 Dockerfile 或其他构建输入变化时才重新构建镜像,应用发版可以复用同一个环境。Astral 在启动前把程序复制到容器可写层,位于持久工作数据目录之外,不新增宿主机程序目录挂载;原有数据卷和只读配对配置挂载保留。

“更新 Daemon”下载并校验官方程序,再重启原容器内的 Daemon。容器 ID、可写层、文件和已安装环境保留,正在运行的任务会中断。同一 Astral 二进制负责更新接管,不访问 Docker socket。这不会升级基础镜像。备用更新命令在 Docker 宿主机执行,会重启原有容器。

更新 Desktop 或 Server 不会重新创建已有容器电脑,也不会替换其中的环境。新的环境镜像仅用于以后创建的容器;准备其他环境时,保留原容器及工作文件。

断开电脑或撤销 Bot 权限不会自动清理宿主机上的容器和数据卷。删除前先确认工作文件已备份;容器不是替代权限规划的绝对隔离边界。