本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
runtimes-docker 是一个容器化镜像,旨在提供 DMOJ(一个开源在线判题系统)支持的多种编程语言运行时环境。该镜像将各类编程语言的编译工具、解释器及依赖库打包为标准化容器,确保代码执行环境的一致性、隔离性和可移植性,主要用于在线判题系统、编程教育平台或多语言代码测试场景中,作为代码编译与执行的基础环境。
集成 DMOJ 官方支持的主流编程语言环境,包括但不限于:
通过容器化技术实现运行时环境隔离,避免不同代码执行时的资源冲突或依赖干扰;内置基础安全限制,降低恶意代码执行风险。
统一的目录结构和环境变量配置,简化外部系统(如 DMOJ 判题核心)与容器的交互,支持通过配置文件或命令行参数快速调整运行参数。
基于精简基础镜像构建,减少资源占用;支持通过挂载卷动态扩展依赖库或工具链,适配定制化需求。
作为 DMOJ 或其他在线判题平台的代码执行节点,提供标准化的编译/解释环境,确保判题结果的准确性。
用于编程课程作业提交、自动评分系统,或学生代码调试环境,提供一致的语言支持。
在开发流程中作为临时测试环境,快速验证跨语言代码片段的编译或执行结果,无需在本地配置复杂依赖。
嵌入持续集成/部署 pipeline,用于自动化测试多语言项目的编译输出或运行时行为。
通过 Docker 命令拉取镜像(需替换 <image-source> 为实际镜像源,如私有仓库地址或官方镜像名):
docker pull <image-source>/runtimes-docker:latest
以交互式终端模式启动容器,直接进入运行时环境:
docker run -it --rm <image-source>/runtimes-docker:latest /bin/bash
-it:启用交互式终端;--rm:容器退出后自动删除,避免残留;/bin/bash:启动 bash 终端,可直接执行编译/解释命令(如 gcc、python3)。通过挂载代码目录和配置文件,后台运行容器以接收外部任务:
docker run -d \ --name dmoj-runtime \ -v /path/to/local/code:/app/code \ # 挂载本地代码目录到容器内/app/code -v /path/to/config:/etc/dmoj/runtime \ # 挂载运行时配置文件 --user 1000:1000 \ # 指定非root用户运行,增强安全性 --memory 2g --cpus 1 \ # 限制资源使用(2GB内存,1核CPU) <image-source>/runtimes-docker:latest
| 参数名 | 说明 | 默认值 |
|---|---|---|
RUNTIME_LANG | 指定默认激活的编程语言环境 | all(全部支持) |
WORKDIR | 容器内工作目录 | /app |
LOG_LEVEL | 运行日志级别(info/debug) | info |
| 本地路径 | 容器内路径 | 用途 |
|---|---|---|
/path/to/code | /app/code | 挂载待执行的代码文件 |
/path/to/config | /etc/dmoj/runtime | 覆盖默认运行时配置(如编译器参数) |
/path/to/cache | /var/cache/dmoj | 持久化编译缓存,加速重复执行 |
建议通过 docker run 参数限制容器资源,避免单个任务占用过多主机资源:
--memory <size>:限制内存(如 2g、512m);--cpus <number>:限制 CPU 核心数(如 1、0.5);--pids-limit <number>:限制进程数(如 50)。适用于多容器部署场景(如与 DMOJ 判题核心联动):
version: '3' services: runtime: image: <image-source>/runtimes-docker:latest container_name: dmoj-runtime-node volumes: - ./local_code:/app/code:ro # 只读挂载代码目录 - ./runtime_config:/etc/dmoj/runtime:ro environment: - RUNTIME_LANG=python3,cpp - LOG_LEVEL=debug deploy: resources: limits: cpus: '1' memory: 2G reservations: cpus: '0.5' memory: 1G user: "1000:1000" restart: unless-stopped
latest 标签镜像以获取语言环境更新(如编译器版本升级);--user 参数指定),并限制挂载目录权限为只读(ro);docker run --rm <image> /bin/bash -c "dmoj-runtime-list" 命令查看;stdout,可通过 Docker 日志驱动(如 json-file、syslog)收集至外部系统。

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429