步骤 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
)。
步骤 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环境,享受隔离的开发环境和一致的跨平台体验。