以下是在 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 容器。