1. 单容器批量执行

1.1 Shell 串联多条命令

一次性传入一组命令,顺序执行,执行完容器自动销毁,适合短平快的批量任务。

1.2 挂载脚本目录,执行入口脚本

适合逻辑复杂、包含多个脚本文件的场景。把本地脚本目录只读挂载进容器,执行入口脚本。

2. 长驻容器 + 多次 exec

Agent 多轮对话的标准方案:启动一个后台容器,多次注入命令,全程共享文件系统和环境,会话结束销毁。

3. 进阶:保留解释器内存状态

上面的 exec 模式每次都是新进程,只能共享文件,无法共享 Python 内存变量。下面两种方案实现同一个 Python 解释器进程内执行多段代码,变量、函数、导入的库全程保留。

3.1 容器内跑轻量 HTTP 代码执行服务

容器内启动一个极简 HTTP 服务,接收代码片段执行并返回结果。稳定性好,是工业界常用方案。

3.2 交互式进程通信(stdin 管道)

通过 docker exec -i 保持一个 python -i 交互式进程常开,持续往 stdin 注入代码,全程复用同一个解释器进程。开销最小,无需网络。

代码见:https://github.com/Simon-Wong/sandboxex