如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
r-parallel是一个基于Docker的Linux容器,通过扩展https://hub.docker.com/r/rocker/r-base/容器构建,包含基础R安装环境,以及多个用于并行/异步处理的系统库和R包。该镜像旨在为R用户提供便捷的并行计算环境,无需手动配置相关依赖。
本地构建
sh$ docker build . --tag rocker/r-parallel
从Docker Hub拉取
sh$ docker pull rocker/r-parallel
独立模式
直接启动R环境进行交互式操作:
sh$ docker run -ti rocker/r-parallel R version 3.6.1 (2019-07-05) -- "Action of the Toes" Copyright (C) 2019 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R是自由软件,不带任何担保;在满足某些条件的情况下,您可以重新分发它。 输入'license()'或'licence()'以获取分发细节。 自然语言支持,但运行在英语区域设置 R是一个协作项目,有许多贡献者。 输入'contributors()'以获取更多信息, 'citation()'以了解如何在出版物中引用R或R包。 输入'demo()'查看一些演示,'help()'获取在线帮助,或 'help.start()'通过HTML浏览器查看帮助。 输入'q()'退出R。 > # 基础计算示例 > y <- sapply(1:3, FUN = function(x) sqrt(x)) > y [1] 1.000000 1.414214 1.732051 > # 使用parallel包 > library(parallel) > y <- mclapply(1:3, FUN = function(x) sqrt(x)) > y <- Reduce(c, y) > y [1] 1.000000 1.414214 1.732051 > # 使用集群计算 > cl <- makeCluster(future::availableCores()) > y <- parSapply(cl, X = 1:3, FUN = function(x) sqrt(x)) > y [1] 1.000000 1.414214 1.732051 > stopCluster(cl) > # 使用future.apply包 > library(future.apply) > plan(multiprocess) > y <- future_sapply(1:3, FUN = function(x) sqrt(x)) > y [1] 1.000000 1.414214 1.732051 > # 使用foreach包 > library(foreach) > doFuture::registerDoFuture() > plan(multiprocess) > y <- foreach(x = 1:3, .combine = c) %dopar% sqrt(x) > y [1] 1.000000 1.414214 1.732051 > quit("no")
作为R后台工作节点
从主机系统的R安装中,启动由两个运行在独立Docker容器中的R工作节点组成的并行集群:
r$ R --quiet > library(parallel) > cl <- future::makeClusterPSOCK(rep("localhost", times = 2L), rscript = c( "docker", "run", "--net=host", "rocker/r-parallel", "Rscript" )) > print(cl) socket cluster with 2 nodes on host ‘localhost’ > y <- parSapply(cl, 1:3, function(x) sqrt(x)) > y [1] 1.000000 1.414214 1.732051 > stopCluster(cl)
使用Singularity的类似操作:
r> library(parallel) > cl <- future::makeClusterPSOCK(rep("localhost", times = 2L), rscript = c( "singularity", "exec", "docker://rocker/r-parallel", "Rscript" )) > print(cl) socket cluster with 2 nodes on host ‘localhost’ > y <- parSapply(cl, 1:3, function(x) sqrt(x)) > y [1] 1.000000 1.414214 1.732051 > stopCluster(cl)
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务