步骤 1:安装和配置Docker
-
安装Docker Desktop for Windows
-
访问 Docker官网 下载安装程序。
-
安装时启用 WSL 2后端 (推荐)或 Hyper-V(旧版Windows)。
-
启动Docker Desktop并确保服务运行正常(任务栏出现Docker图标)。
-
-
验证Docker安装
打开PowerShell或命令提示符,运行:
docker run hello-world如果看到欢迎信息,说明安装成功。
步骤 2:拉取R镜像并运行容器
-
选择R镜像
Rocker项目提供了多个预配置的R镜像,推荐:
-
rocker/r-ver: 基础R环境。 -
rocker/tidyverse: 包含tidyverse工具链。 -
rocker/rstudio: 包含RStudio Server(可选,但VS Code可直接连接容器)。
-
-
拉取镜像
运行以下命令拉取镜像(以
rocker/tidyverse为例):docker pull rocker/tidyverse -
启动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连接容器
-
安装扩展
- 在VS Code中安装 Remote - Containers 扩展(Microsoft官方扩展)。
-
连接到容器
-
点击VS Code左下角远程连接图标,选择 Attach to Running Container。
-
从列表中选择你创建的R容器(如
my_r_container)。
-
-
在容器内安装VS Code扩展
- 连接到容器后,在扩展市场中安装 R扩展 (如
vscode-R和R Debugger)。
- 连接到容器后,在扩展市场中安装 R扩展 (如
步骤 4:配置R环境
-
安装R依赖包
在容器内的终端(VS Code中按``Ctrl+```)运行:
install.packages(c("languageserver", "httpgd", "jsonlite"))-
languageserver: 提供代码补全和诊断功能。 -
httpgd: 支持在VS Code中显示图形。
-
-
配置VS Code的R设置
在容器内的VS Code中,打开设置(
Ctrl+,),搜索R> Rpath,将其设置为容器内的R路径(通常为/usr/local/bin/R)。
步骤 5:使用R in VS Code
-
创建/打开R脚本
在挂载的目录(如
/home/rstudio/work)中创建.R文件。 -
运行代码
-
使用快捷键
Ctrl+Enter执行选中代码。 -
绘图将直接在VS Code的"Plots"面板中显示(需
httpgd包支持)。
-
-
交互式终端
打开VS Code的终端,输入
R进入交互式会话。
可选:使用DevContainer自动化配置
-
创建
.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\")'" } -
重新打开项目
VS Code会提示在容器中重新打开文件夹,自动完成配置。
常见问题解决
-
路径问题
-
Windows路径在容器中映射为
/mnt/c/...,确保挂载时使用正确路径。 -
在
docker run中使用绝对路径,如-v C:/myproject:/home/rstudio/work。
-
-
权限问题
- 如果容器内无法写入挂载目录,尝试在
docker run中添加-u root以root用户运行。
- 如果容器内无法写入挂载目录,尝试在
-
图形显示问题
- 确保安装
httpgd包,并在VS Code设置中启用"r.plot.useHttpgd": true。
- 确保安装
通过以上步骤,你可以在Windows的VS Code中无缝使用Docker容器内的R环境,享受隔离的开发环境和一致的跨平台体验。