在 Windows 下的 Docker 中安装 R语言
以下是在 Windows 系统的 Docker 中安装 R 语言的详细教程,包括 Docker 的安装、配置以及如何在容器中运行 R 语言的步骤。
步骤 1:安装 Docker
-
下载 Docker Desktop
访问 Docker 官方网站:Docker Desktop: The #1 Containerization Tool for Developers | Docker,下载适用于 Windows 的 Docker Desktop 安装程序。 -
安装 Docker Desktop
- 运行下载的安装程序,按照提示完成安装。
- 在安装过程中,确保勾选以下选项:
- Use the WSL 2 based engine(推荐使用 WSL 2 作为后端引擎)。
- Enable Docker Compose V2。
-
启动 Docker Desktop
安装完成后,启动 Docker Desktop。首次启动可能需要几分钟时间来完成初始化。 -
验证 Docker 是否安装成功
打开命令提示符(CMD)或 PowerShell,运行以下命令:docker --version如果显示 Docker 版本信息,则说明安装成功。
步骤 2:拉取 R 语言的 Docker 镜像
Docker Hub 提供了官方的 R 语言镜像,可以直接拉取。
-
查找 R 镜像
访问 Docker Hub 的 R 镜像页面:https://hub.docker.com/r/rocker/r-ver -
拉取 R 镜像
在命令提示符或 PowerShell 中运行以下命令:docker pull rocker/r-ver:latest这将会拉取最新的 R 语言镜像。
也可以
docker pull r-base:latest
r-base 和 rocker/r-ver 都是 Docker 官方提供的 R 语言镜像
- 如果只需要一个最简单的 R 环境,可以使用
r-base。镜像体积较小,适合快速启动。 - 如果需要更完整的 R 环境、特定版本的 R 或计划扩展为更复杂的开发环境(如 RStudio),推荐使用
rocker/r-ver。镜像体积较大,因为包含更多的工具和依赖
因此,在我的教程中使用了 rocker/r-ver,因为它更适合搭建完整的 R 开发环境。如果你只需要简单的 R 环境运行脚本,完全可以使用 r-base
步骤 3:运行 R 语言的 Docker 容器
-
启动 R 容器
运行以下命令以启动一个 R 容器:docker run -it --rm rocker/r-ver:latest-it:以交互模式运行容器。--rm:容器停止后自动删除。rocker/r-ver:latest:使用的镜像名称。
-
验证 R 是否运行
进入容器后,您会看到 R 的交互式命令行界面。输入以下命令验证 R 是否正常运行:sessionInfo()这将显示 R 的版本信息和其他环境配置。
步骤 4:挂载本地目录并运行 R 脚本
为了方便在容器中访问 Windows 上的文件,可以将本地目录挂载到容器中。
-
创建 R 脚本文件
在 Windows 上创建一个 R 脚本文件,例如script.R,内容如下:print("Hello, Docker with R!") -
挂载目录并运行脚本
运行以下命令,将本地目录挂载到容器中并执行脚本:docker run -it --rm -v C:\path\to\your\scripts:/workspace rocker/r-ver:latest Rscript /workspace/script.R-v C:\path\to\your\scripts:/workspace:将本地目录挂载到容器的/workspace目录。Rscript /workspace/script.R:在容器中运行指定的 R 脚本。
步骤 5:安装额外的 R 包(持久化)
如果需要在容器中安装额外的 R 包,可以在 R 交互式命令行中安装,或者通过 Dockerfile 自定义镜像。
方法 1:使用 Dockerfile 构建自定义镜像
-
在容器中安装包
进入容器后,可以使用以下命令安装包:install.packages("ggplot2") -
通过 Dockerfile 自定义镜像
创建一个Dockerfile文件,内容如下:FROM rocker/r-ver:latest RUN install.packages("ggplot2")构建自定义镜像:
docker build -t my-r-image .使用自定义镜像运行容器:
docker run -it --rm my-r-image
优点:可重复性强,适合团队协作。
缺点:每次修改需要重新构建镜像。
方法 2:使用数据卷(Volume)持久化 R 包
Rocker 镜像支持将 R 包的安装目录挂载到宿主机的数据卷中,从而实现持久化。
- 创建数据卷:
docker volume create r-packages - 启动容器时挂载数据卷:
docker run -it --rm -v r-packages:/usr/local/lib/R/site-library rocker/r-ver:latest R - 在容器中安装的 R 包会保存到
r-packages数据卷中。下次启动容器时,挂载相同的数据卷即可:docker run -it --rm -v r-packages:/usr/local/lib/R/site-library rocker/r-ver:latest R
优点:无需修改镜像,灵活高效。
缺点:需要手动管理数据卷。
方法3:使用 rocker/rstudio 镜像和持久化配置
如果需要使用 RStudio 并持久化用户数据和包,可以使用 rocker/rstudio 镜像。
- 启动容器并挂载数据卷:
docker run -d -p 8787:8787 -v rstudio-config:/home/rstudio rocker/rstudio:latest - 访问
http://localhost:8787,使用用户名rstudio和密码rstudio登录。 - 在 RStudio 中安装的包和用户数据会保存到
rstudio-config数据卷中。
优点:适合使用 RStudio 的场景,配置持久化方便。
缺点:需要启动完整的 RStudio 容器。
相关文章:
在 Windows 下的 Docker 中安装 R语言
以下是在 Windows 系统的 Docker 中安装 R 语言的详细教程,包括 Docker 的安装、配置以及如何在容器中运行 R 语言的步骤。 步骤 1:安装 Docker 下载 Docker Desktop 访问 Docker 官方网站:Docker Desktop: The #1 Containerization Tool for…...
电子科技大学考研复习经验分享
电子科技大学考研复习经验分享 本人情况:本科就读于电科软院,24年2月开始了解考研,24年3月开始数学,9月决定考本院(开始全天候图书馆学习)并开始专业课学习,11月底开始政治学习,最后…...
python 引用父目录:层级的模块
from pathlib import Path import sys 获取 project 目录 project_dir Path(file).resolve().parent.parent 将 project 目录添加到 sys.path 中 sys.path.append(str(project_dir)) 导入 support 模块 import support support.print_func(“Runoob”)...
git 查询包含某个文件夹的步骤
步骤 1:拉取最新的远程分支信息 确保本地缓存的远程分支信息是最新的: bash 复制 git fetch --all 步骤 2:遍历所有远程分支并检查目标文件夹 使用 git ls-tree 检查每个分支是否包含目标文件夹。以下脚本会列出所有包含 your_folder_pa…...
Linux中的查看命令
路径分为相对路径(行相对当前工作目录开始的路径)和绝对路径(不管是)#:命令提示符,从这个位置可以开始输入命令,另一个提示符为$,如果是root,则提示为#;如果是…...
DeepSeek技术提升,Linux本地部署全攻略
文章目录 1.Ollama部署1.1 安装Ollama1.2 配置Ollama1.3 下载deepseek模型 2.安装MaxKB可视化页面2.1 下载镜像2.2 运行容器2.3 配置MaxKB 3.配置Chatbox AI可视化页面 1.Ollama部署 Ollama下载地址 根据自己需求选择版本下载 1.1 安装Ollama 下载安装脚本并执行 curl -fs…...
在 Mac mini M2 上 MaxKb配置ollama,API域名无效的解决方案
环境说明 docker方案安装与使用的maxkb 本地ollama安装deekseek r1 解决方案 参考https://bbs.fit2cloud.com/t/topic/4165 mac m1用户,根据github的以下回复,成功绑定域名api 如果你想调用本地的ollama 中的大模型,域名试试:…...
使用torch.compile进行CPU优化
在PyTorch中,使用torch.compile可以自动地将模型转换成优化的执行代码,这对于提升模型在CPU上的运行效率尤其有用。torch.compile是基于TorchDynamo实现的,它可以将Python代码转换为高效的TorchScript代码。这对于那些在CPU上运行的大型模型尤…...
Java进阶(vue基础)
目录 1.vue简单入门 ?1.1.创建一个vue程序 1.2.使用Component模板(组件) 1.3.引入AXOIS ?1.4.vue的Methods(方法) 和?compoted(计算) 1.5.插槽slot 1.6.创建自定义事件? 2.Vue脚手架安装? 3.Element-UI的…...
B站pwn教程笔记-3
栈知识、部分保护措施 GDB显示的栈地址有时候并不是可靠的地址,gdb也是用特殊的进程映像来拿地址的。且gdb默认关闭栈地址随机化。但是,偏移量是没有错误的。目前还没学到咋解决 第一个栈帧是main函数栈帧,之前的一些系统函数什么的没有栈帧…...
论文笔记(七十二)Reward Centering(四)
Reward Centering(四) 文章概括摘要附录A 伪代码 文章概括 引用: article{naik2024reward,title{Reward Centering},author{Naik, Abhishek and Wan, Yi and Tomar, Manan and Sutton, Richard S},journal{arXiv preprint arXiv:2405.09999…...
【Python量化金融实战】-第1章:Python量化金融概述:1.1量化金融的定义与发展历程
本小节学习建议:掌握Python编程、统计学(时间序列分析)、金融学基础(资产定价理论)三者结合,是进入量化领域的核心路径。 👉 点击关注不迷路 👉 点击关注不迷路 文章目录 1.1 量化金…...
Java常见设计模式(中):结构型模式
🌈 引言:设计模式就像乐高积木 适配器:让不同形状的积木完美拼接装饰器:给积木添加炫酷灯光效果代理:遥控积木完成复杂动作组合:将小积木搭建成宏伟城堡 结构型模式 主要用于描述对象之间的关系ÿ…...
C#快速调用DeepSeek接口,winform接入DeepSeek查询资料 C#零门槛接入DeepSeek C#接入DeepSeek源代码下载
下载地址<------完整源码 在数字化转型加速的背景下,企业应用系统对智能服务的需求日益增长。DeepSeek作为先进的人工智能服务平台,其自然语言处理、图像识别等核心能力可显著提升业务系统的智能化水平。传统开发模式下,C#开发者需要耗费大…...
Para-Lane: 首个真实世界多车道数据集,目的评估自动驾驶系统中的新型视角合成能力。
2025-02-22,阿里巴巴集团菜鸟自动驾驶实验室和百度研究院共同创建了一个名为 Para-Lane 的真实世界多车道数据集。该数据集目的评估自动驾驶系统中的新型视角合成(NVS)能力,通过提供大量真实世界的数据,弥补了现有合成…...
STM32--SPI通信讲解
前言 嘿,小伙伴们!今天咱们来聊聊STM32的SPI通信。SPI(Serial Peripheral Interface)是一种超常用的串行通信协议,特别适合微控制器和各种外设(比如传感器、存储器、显示屏)之间的通信。如果你…...
Maven 基础环境搭建与配置(一)
一、Maven 初印象 在 Java 开发的广袤天地里,Maven 就像是一位神通广大的 “大管家”,为开发者们排忧解难,让项目管理与构建变得轻松高效。它是一个强大的项目管理和构建自动化工具,基于项目对象模型(POM)…...
[算法--前缀和] 一维前缀和
目录 1. 前缀和: 是一种对暴力求解的优化.2. 前缀和? 如何利用前面的计算结果提高效率?3. 如何预处理前缀和数组(如何让处理前缀和数组的复杂度是O(N))?接下来, 我们开启一个新的专题 -> 前缀和, 第一道是模板题, 一维前缀和 1. 前缀和: 是一种对暴力求解的优化. 前缀和…...
大模型基础概念之神经网络宽度
在大模型中,神经网络宽度是提升模型容量的核心手段之一,与深度、数据规模共同构成性能的三大支柱。合理增加宽度可显著增强模型表达能力,但需结合正则化、硬件优化和结构设计进行平衡。未来趋势可能包括动态宽度调整、稀疏化宽度设计(如MoE)以及更高效宽度-深度复合缩放策…...
LeetCode 每日一题 2025/2/17-2025/2/23
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 2/17 1287. 有序数组中出现次数超过25%的元素2/18 2080. 区间内查询数字的频率2/19 624. 数组列表中的最大距离2/20 2595. 奇偶位数2/21 2209. 用地毯覆盖后的最少白色砖块…...
《零基础学会!如何用 sql+Python 绘制柱状图和折线图,数据可视化一看就懂》
在数据驱动的时代,MySQL 是最常用的关系型数据库管理系统之一,广泛应用于各类数据存储和处理场景。数据分析的过程不仅仅是收集数据,还包括数据的清洗、转换、查询以及最终的报告和可视化。在本文中,我们将通过实际案例来介绍如何…...
【算法系列】归并排序详解
文章目录 归并排序详解1. 基本原理1.1 分治法策略1.2 归并排序步骤1.3 图解示例 2. 时间复杂度与空间复杂度2.1 时间复杂度2.2 空间复杂度 3. 稳定性4. Java 实现示例5. 归并排序的优点与缺点5.1 优点5.2 缺点 6. 总结 归并排序详解 归并排序(Merge Sort࿰…...
Vue的项目创建以及项目目录与组合式API
一.创建Vue 1.Vue-CLI:创建Vue的脚手架工具 2.Create-vue:是Vue官方提供的脚手架之一,底层采用官方自主研发的vite,快捷,开发方便。 3.准备工作:系统中需要安装nodejs环境,在该环境中提供npm包管理器 4.创建Vue项目的命令:npm init vuela…...
ubuntu-server 安装 navidia 显卡驱动
资料 https://juejin.cn/post/7362562720708280332 过程 ubuntu-drivers devices 选择ubuntu-server安装 rootroot:~# ubuntu-drivers devices udevadm hwdb is deprecated. Use systemd-hwdb instead. udevadm hwdb is deprecated. Use systemd-hwdb instead. udevadm hwd…...
【学习笔记】计算机网络(四)
第4章 网络层 文章目录 第4章 网络层4.1 网络层的几个重要概念4.1.1 网络层提供的两种服务虚电路服务(Virtual Circuit Service)数据报服务(Datagram Service) 4.1.2 网络层的两个层面 4.2 网际协议 IP - IPv44.2.1 虚拟互连网络4…...
DeepSeek-R1:通过强化学习激励大语言模型的推理能力
摘要 本文介绍了我们的第一代推理模型,DeepSeek-R1-Zero 和 DeepSeek-R1。DeepSeek-R1-Zero 是通过大规 模强化学习(RL)训练的模型,在没有使用监督微调(SFT)这个前置步骤的情况下,展示了卓越的推…...
Linux运维——网络管理
Linux网络管理 一、Linux网络应用要点二、命令常见用法2.1、curl2.1.1、发送GET请求2.1.2、发送POST请求2.1.3、设置请求头2.1.4、处理cookies2.1.5、处理重定向2.1.6、调试和详细信息2.1.7、使用代理2.1.8、文件上传2.1.9、其它常用选项2.1.10、综合示例 2.2、wget2.2.1、基本…...
洛谷 P8705:[蓝桥杯 2020 省 B1] 填空题之“试题 E :矩阵” ← 卡特兰数
【题目来源】 https://www.luogu.com.cn/problem/P8705 【题目描述】 把 1∼2020 放在 21010 的矩阵里。要求同一行中右边的比左边大,同一列中下边的比上边的大。一共有多少种方案? 答案很大,你只需要给出方案数除以 2020 的余数即可。 【答案提交】 …...
基于Flink SQL实现7天用户行为风险识别,结合滚动窗口预聚合与CEP复杂事件处理技术,根据用户7天的动作,包括交易,支付,评价等行为,识别用户的风险等级
一、数据建模与预聚合 1. 数据源定义 CREATE TABLE user_actions (user_id STRING,event_time TIMESTAMP(3),action_type STRING, -- 交易/支付/评价amount DOUBLE,status STRING, -- 交易状态(成功/失败)review_score INT, -- 评价分数&#x…...
【无标题】网络安全公钥密码体制
第一节 网络安全 概述 一、基本概念 网络安全通信所需要的基本属性“ 机密性;消息完整性;可访问性与可用性;身份认证。 二、网络安全威胁 窃听;插入;假冒;劫持;拒绝服务Dos和分布式拒绝服务…...
