在 Windows 下的 Docker 中安裝 R語言

以下是在 Windows 系統的 Docker 中安裝 R 語言的詳細教程,包括 Docker 的安裝、配置以及如何在容器中運行 R 語言的步驟。


步驟 1:安裝 Docker

  1. 下載 Docker Desktop
    訪問 Docker 官方網站:Docker Desktop: The #1 Containerization Tool for Developers | Docker,下載適用于 Windows 的 Docker Desktop 安裝程序。

  2. 安裝 Docker Desktop

    • 運行下載的安裝程序,按照提示完成安裝。
    • 在安裝過程中,確保勾選以下選項:
      • Use the WSL 2 based engine(推薦使用 WSL 2 作為后端引擎)。
      • Enable Docker Compose V2
  3. 啟動 Docker Desktop
    安裝完成后,啟動 Docker Desktop。首次啟動可能需要幾分鐘時間來完成初始化。

  4. 驗證 Docker 是否安裝成功
    打開命令提示符(CMD)或 PowerShell,運行以下命令:

    docker --version

    如果顯示 Docker 版本信息,則說明安裝成功。


步驟 2:拉取 R 語言的 Docker 鏡像

Docker Hub 提供了官方的 R 語言鏡像,可以直接拉取。

  1. 查找 R 鏡像
    訪問 Docker Hub 的 R 鏡像頁面:https://hub.docker.com/r/rocker/r-ver

  2. 拉取 R 鏡像
    在命令提示符或 PowerShell 中運行以下命令:

    docker pull rocker/r-ver:latest

    這將會拉取最新的 R 語言鏡像。

也可以

docker pull r-base:latest

r-baserocker/r-ver 都是 Docker 官方提供的 R 語言鏡像

  • 如果只需要一個最簡單的 R 環境,可以使用?r-base。鏡像體積較小,適合快速啟動。
  • 如果需要更完整的 R 環境、特定版本的 R 或計劃擴展為更復雜的開發環境(如 RStudio),推薦使用?rocker/r-ver。鏡像體積較大,因為包含更多的工具和依賴

因此,在我的教程中使用了 rocker/r-ver,因為它更適合搭建完整的 R 開發環境。如果你只需要簡單的 R 環境運行腳本,完全可以使用 r-base


步驟 3:運行 R 語言的 Docker 容器

  1. 啟動 R 容器
    運行以下命令以啟動一個 R 容器:

    docker run -it --rm rocker/r-ver:latest
    • -it:以交互模式運行容器。
    • --rm:容器停止后自動刪除。
    • rocker/r-ver:latest:使用的鏡像名稱。
  2. 驗證 R 是否運行
    進入容器后,您會看到 R 的交互式命令行界面。輸入以下命令驗證 R 是否正常運行:

    sessionInfo()

    這將顯示 R 的版本信息和其他環境配置。


步驟 4:掛載本地目錄并運行 R 腳本

為了方便在容器中訪問 Windows 上的文件,可以將本地目錄掛載到容器中。

  1. 創建 R 腳本文件
    在 Windows 上創建一個 R 腳本文件,例如 script.R,內容如下:

    print("Hello, Docker with R!")
  2. 掛載目錄并運行腳本
    運行以下命令,將本地目錄掛載到容器中并執行腳本:

    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 構建自定義鏡像
  1. 在容器中安裝包
    進入容器后,可以使用以下命令安裝包:

    install.packages("ggplot2")
  2. 通過 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 包的安裝目錄掛載到宿主機的數據卷中,從而實現持久化。

  1. 創建數據卷:
    docker volume create r-packages
  2. 啟動容器時掛載數據卷:
    docker run -it --rm -v r-packages:/usr/local/lib/R/site-library rocker/r-ver:latest R
  3. 在容器中安裝的 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 鏡像。

  1. 啟動容器并掛載數據卷:
    docker run -d -p 8787:8787 -v rstudio-config:/home/rstudio rocker/rstudio:latest
  2. 訪問?http://localhost:8787,使用用戶名?rstudio?和密碼?rstudio?登錄。
  3. 在 RStudio 中安裝的包和用戶數據會保存到?rstudio-config?數據卷中。

????????優點:適合使用 RStudio 的場景,配置持久化方便。
????????缺點:需要啟動完整的 RStudio 容器。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/70790.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70790.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70790.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【數據挖掘在量化交易中的應用:特征發現與特征提取】

好的,我將撰寫一篇關于金融領域數據挖掘的技術博客,重點闡述特征發現和特征提取,特別是在量化交易中的應用。我會提供具體的實操步驟,并結合Python和TensorFlow進行代碼示例。 完成后,我會通知您進行查看。 數據挖掘…

如何在視頻中提取關鍵幀?

在視頻處理中,提取關鍵幀是一項常見的任務。下面將介紹如何基于FFmpeg和Python,結合OpenCV庫來實現從視頻中提取關鍵幀的功能。 實現思路 使用FFmpeg獲取視頻的關鍵幀時間戳:FFmpeg是一個強大的視頻處理工具,可以通過命令行獲取…

九、數據治理架構流程

一、總體結構 《數據治理架構流程圖》(Data Governance Architecture Flowchart) 水平結構:流程圖采用水平組織,顯示從數據源到數據應用的進程。 垂直結構:每個水平部分進一步劃分為垂直列,代表數據治理的…

Docker 搭建 Gitlab 服務器 (完整詳細版)

參考 Docker 搭建 Gitlab 服務器 (完整詳細版)_docker gitlab-CSDN博客 Docker 安裝 (完整詳細版)_docker安裝-CSDN博客 Docker 日常命令大全(完整詳細版)_docker命令-CSDN博客 1、Gitlab鏡像 # 查找Gitlab鏡像 docker search gitlab # 拉取Gitlab鏡像 docker pull gitlab/g…

Spring MVC 框架學習筆記:從入門到精通的實戰指南

目錄 1. Spring MVC 概述 2. Spring MVC 項目搭建 3. Spring MVC 執行流程 4. Spring MVC RequestMapping 注解 5. Spring MVC 獲取請求參數 6. Spring MVC 常見注解 7. Spring MVC 響應處理 8. Spring MVC SSM 整合 9. Spring MVC 作用域傳參 10. Spring MVC 上傳 1…

RK3568開發筆記-AD7616調試筆記

目錄 前言 一、AD7616介紹 高分辨率 高速采樣速率 寬模擬輸入范圍 集成豐富功能 二、原理圖連接 三、設備樹配置 四、內核驅動配置 五、AD芯片測試 總結 前言 在嵌入式數據采集領域,將模擬信號精準轉換為數字信號至關重要。AD7616 作為一款性能卓越的 16 位模數轉換器…

【對話推薦系統】Towards Topic-Guided Conversational Recommender System 論文閱讀

Towards Topic-Guided Conversational Recommender System 論文閱讀 Abstract1 Introduction2 Related Work2.1 Conversation System2.2 Conversational Recommender System2.3 Dataset for Conversational Recommendation 3 Dataset Construction3.1 Collecting Movies for Re…

ASP.NET Core 8.0學習筆記(二十八)——EFCore反向工程

一、什么是反向工程 1.原則:DBFirst 2.反向工程:根據數據庫表來反向生成實體類 3.生成命令:Scaffold-DbContext ‘連接字符串’ 字符串示例: Server.;DatabaseDemo1;Trusted_Connectiontrue; MultipleActiveResultSets true;Tru…

springcloud和dubbo的區別

Spring Cloud和Dubbo作為微服務架構中非常流行的兩個框架,它們在多個方面存在顯著的區別。以下是對兩者區別的詳細分析: 1. 初始定位和生態環境 Spring Cloud:定位為微服務架構下的一站式解決方案,依托于Spring平臺,…

【大模型LLM】DeepSeek LLM Scaling Open-Source Language Models with Longtermism

深度探索LLM:以長期主義擴展開源語言模型 0.論文摘要 開源大語言模型(LLMs)的快速發展確實令人矚目。然而,以往文獻中描述的擴展規律得出了不同的結論,這為LLMs的擴展蒙上了一層陰影。我們深入研究了擴展規律&#…

C#快速調用DeepSeek接口,winform接入DeepSeek查詢資料 C#零門檻接入DeepSeek C#接入DeepSeek源代碼下載

下載地址<------完整源碼 在數字化轉型加速的背景下&#xff0c;企業應用系統對智能服務的需求日益增長。DeepSeek作為先進的人工智能服務平臺&#xff0c;其自然語言處理、圖像識別等核心能力可顯著提升業務系統的智能化水平。傳統開發模式下&#xff0c;C#開發者需要耗費大…

Qt常用控件之多行輸入框QTextEdit

多行輸入框QTextEdit QTextEdit 是一個多行輸入框控件&#xff0c;支持富文本和 markdown 格式&#xff0c;當文本內容超出編輯框的范圍時能自動提供滾動條。 QPlainTextEdit 是只支持富文本格式的多行輸入框&#xff0c;屬性和使用上與 QTextEdit 幾乎沒有區別。 QTextEdit屬…

VC++零基礎入門之系列教程 【附錄E MFC快速參考指南】

附錄E MFC快速參考指南 E.1 創建窗口 使用M F C CWnd wnd; W n d . C r e a t e E x ( E xSt y l e , C l a s s N a m e , Wi n d o w N a m e , S t y l e , x , y, Wi d t h , H e i g h t , P a r e n t , M e n u , P a r a m ) ; 使用A P I HWND hwnd=::CreateWi n d …

【前端】react+ts 輪播圖的實現

一、場景描述 在很多網站的頁面中都有輪播圖&#xff0c;所以我想利用react.js和ts實現一個輪播圖。自動輪播圖已經在前面實現過了&#xff0c;如&#xff1a;https://blog.csdn.net/weixin_43872912/article/details/145622444?sharetypeblogdetail&sharerId145622444&a…

python與C系列語言的差異總結(4)

如果具有傳統編譯型語言的經驗&#xff0c;大家可能會對是否使用字典而猶豫不決&#xff0c;擔心字典的效率比列表或數組低。事實上Python字典的執行速度已經相當快了。Python語言的許多內部特性都依賴于字典&#xff0c;為提高字典的效率已經投入了大量的心血。Python的所有數…

[Web 安全] 反序列化漏洞 - 學習筆記

關注這個專欄的其他相關筆記&#xff1a;[Web 安全] Web 安全攻防 - 學習手冊-CSDN博客 0x01&#xff1a;反序列化漏洞 — 漏洞介紹 反序列化漏洞是一種常見的安全漏洞&#xff0c;主要出現在應用程序將 序列化數據 重新轉換為對象&#xff08;即反序列化&#xff09;的過程中…

深入理解C語言中的位段

在C語言編程中&#xff0c;我們常常會遇到需要對內存進行精細控制的場景&#xff0c;位段&#xff08;bit - field&#xff09;便是C語言提供的一種強大工具&#xff0c;它允許我們在一個字節或多個字節內對數據進行按位的定義和操作&#xff0c;極大地提高了內存使用效率。 一…

實現使用RBF(徑向基函數)神經網絡模擬二階電機數學模型中的非線性干擾,以及使用WNN(小波神經網絡)預測模型中的非線性函數來抵消遲滯影響的功能

下面將詳細介紹如何實現使用RBF&#xff08;徑向基函數&#xff09;神經網絡模擬二階電機數學模型中的非線性干擾&#xff0c;以及使用WNN&#xff08;小波神經網絡&#xff09;預測模型中的非線性函數來抵消遲滯影響的功能。我們將按照以下步驟進行&#xff1a; 步驟1&#x…

Grouped-Query Attention(GQA)詳解: Pytorch實現

Grouped-Query Attention&#xff08;GQA&#xff09;詳解 Grouped-Query Attention&#xff08;GQA&#xff09; 是 Multi-Query Attention&#xff08;MQA&#xff09; 的改進版&#xff0c;它通過在 多個查詢頭&#xff08;Query Heads&#xff09;之間共享 Key 和 Value&am…

ReentrantLock 用法與源碼剖析筆記

&#x1f4d2; ReentrantLock 用法與源碼剖析筆記 &#x1f680; 一、ReentrantLock 核心特性 &#x1f504; 可重入性&#xff1a;同一線程可重復獲取鎖&#xff08;最大遞歸次數為 Integer.MAX_VALUE&#xff09;&#x1f527; 公平性&#xff1a;支持公平鎖&#xff08;按等…