当前位置: 首页 > news >正文

在docker中运行R容器,并在Windows下的vscode中使用该R

步骤 1:安装和配置Docker

  1. 安装Docker Desktop for Windows

    • 访问 Docker官网 下载安装程序。

    • 安装时启用 WSL 2后端(推荐)或 Hyper-V(旧版Windows)。

    • 启动Docker Desktop并确保服务运行正常(任务栏出现Docker图标)。

  2. 验证Docker安装
    打开PowerShell或命令提示符,运行:

    docker run hello-world

    如果看到欢迎信息,说明安装成功。


步骤 2:拉取R镜像并运行容器

  1. 选择R镜像
    Rocker项目提供了多个预配置的R镜像,推荐:

    • rocker/r-ver: 基础R环境。

    • rocker/tidyverse: 包含tidyverse工具链。

    • rocker/rstudio: 包含RStudio Server(可选,但VS Code可直接连接容器)。

  2. 拉取镜像
    运行以下命令拉取镜像(以rocker/tidyverse为例):

    docker pull rocker/tidyverse
  3. 启动R容器
    运行以下命令启动容器,并映射端口、挂载本地目录:

    docker run -d --name my_r_container \
      -p 8787:8787 \  # 如果使用RStudio Server
      -v ${PWD}:/home/rstudio/work \  # 挂载当前目录到容器的/work
      -e PASSWORD=yourpassword \  # RStudio Server的密码
      rocker/tidyverse
    • 若仅需VS Code连接,可省略端口映射,直接挂载目录即可。


步骤 3:配置VS Code连接容器

  1. 安装扩展

    • 在VS Code中安装 Remote - Containers 扩展(Microsoft官方扩展)。

  2. 连接到容器

    • 点击VS Code左下角远程连接图标,选择 Attach to Running Container

    • 从列表中选择你创建的R容器(如my_r_container)。

  3. 在容器内安装VS Code扩展

    • 连接到容器后,在扩展市场中安装 R扩展(如vscode-RR Debugger)。


步骤 4:配置R环境

  1. 安装R依赖包
    在容器内的终端(VS Code中按Ctrl+`)运行:

    install.packages(c("languageserver", "httpgd", "jsonlite"))
    • languageserver: 提供代码补全和诊断功能。

    • httpgd: 支持在VS Code中显示图形。

  2. 配置VS Code的R设置
    在容器内的VS Code中,打开设置(Ctrl+,),搜索R> Rpath,将其设置为容器内的R路径(通常为/usr/local/bin/R)。


步骤 5:使用R in VS Code

  1. 创建/打开R脚本
    在挂载的目录(如/home/rstudio/work)中创建.R文件。

  2. 运行代码

    • 使用快捷键 Ctrl+Enter 执行选中代码。

    • 绘图将直接在VS Code的“Plots”面板中显示(需httpgd包支持)。

  3. 交互式终端
    打开VS Code的终端,输入R进入交互式会话。


可选:使用DevContainer自动化配置

  1. 创建.devcontainer目录
    在项目根目录新建.devcontainer/devcontainer.json,内容如下:

    {
      "name": "R Container",
      "image": "rocker/tidyverse:latest",
      "extensions": ["REditorSupport.r"],
      "settings": {
        "r.rpath.linux": "/usr/local/bin/R"
      },
      "mounts": ["source=${localWorkspaceFolder},target=/home/rstudio/work,type=bind"],
      "postCreateCommand": "Rscript -e 'install.packages(c(\"languageserver\", \"httpgd\"), repos=\"https://cloud.r-project.org\")'"
    }
  2. 重新打开项目
    VS Code会提示在容器中重新打开文件夹,自动完成配置。


常见问题解决

  1. 路径问题

    • Windows路径在容器中映射为/mnt/c/...,确保挂载时使用正确路径。

    • docker run中使用绝对路径,如-v C:/myproject:/home/rstudio/work

  2. 权限问题

    • 如果容器内无法写入挂载目录,尝试在docker run中添加-u root以root用户运行。

  3. 图形显示问题

    • 确保安装httpgd包,并在VS Code设置中启用"r.plot.useHttpgd": true


通过以上步骤,你可以在Windows的VS Code中无缝使用Docker容器内的R环境,享受隔离的开发环境和一致的跨平台体验。

相关文章:

  • win11本地部署deepseek大模型(安装ollama+docker+open-webui)最终实现自己的项目可通过API调用投喂数据后的模型
  • kiln微调大模型-使用deepseek R1去训练一个你的具备推理能力的chatGPT 4o
  • 【十二】Golang 映射
  • 【多模态大模型学习】位置编码的学习记录
  • 【FFmpeg】拉流
  • 【架构师从入门到进阶】第五章:DNSCDN网关优化思路——第四节:请求链路中代理的作用
  • 设计模式-行为型-责任链模式
  • easy云盘笔记
  • 总结一下Java中的Synchronized同步锁的常见面试题
  • Java基础第14天-坦克大战【1】
  • 【C++修炼之路】C++类与对象:面向对象编程的第一步
  • 【JavaEE】SpringMVC获取HTTP中的元素
  • C# 弃元的使用
  • 决策树-分类
  • 鸿蒙OS特点对测试的影响
  • JVM垃圾回收器深度底层原理分析与知识体系构建
  • DDS技术分享(一)
  • std::ranges::ref_view,std::ranges::owning_view, std::ranges::views::all
  • 【TypeScript】ts在vue中的使用
  • 电脑显示屏亮度怎么调?电脑屏幕亮度调节步骤介绍
  • 市场监管总局召开平台企业支持个体工商户发展座谈会
  • 寒武纪陈天石:公司的产品力获得了行业客户广泛认可,市场有望迎来新增量需求
  • 网信部门曝光网络谣言典型案例,“AI预测彩票号码百分百中奖”等在列
  • 中国科学院院士徐春明不再担任山东石油化工学院校长
  • 农林生物安全全国重点实验室启动建设,聚焦重大有害生物防控等
  • 竞彩湃|德甲欧冠资格竞争白热化,伯恩茅斯主场迎恶战