1. 安装 Docker 和 Docker Compose
使用 R 和 Docker 进行可重复性研究和独立开发环境的原因主要涉及四个关键点:透明度、可移植性、可扩展性和可重用性。此外,无论身在何处,都能在浏览器中访问 RStudio Server。
可以参考这篇 HomeLab 3 博客文章中提供的详细步骤。
sudo apt update
sudo apt upgrade
mkdir -p $HOME/docker/rstudio && cd $HOME/docker/rstudio
# 查看rstudio的镜像,选star最多的那个官方的
docker search rstudio
docker pull rocker/rstudio:latest
2. 启动 RStudio Server 容器
为卷/绑定挂载创建目录
# 为卷/绑定挂载创建文件夹,在rstudio目录下:
mkdir renv
mkdir r-projects
mkdir r-scripts
mkdir shiny-apps
创建docker-compose.yaml
文件:
touch docker-compose.yaml
vim docker-compose.yaml
复制以下文本:
version: "3.6"
services:
rstudio:
image: rocker/verse:latest
container_name: rstudio
restart: unless-stopped
#env_file: .rstudio.env # 如果需要,可以在这里声明密码
ports:
- 8787:8787
environment:
- PASSWORD=password
volumes:
- type: volume
source: rstudio
target: $HOME/docker/rstudio
- type: bind
source: ./r-projects
target: $HOME/docker/rstudio/r-projects
- type: bind
source: ./r-scripts
target: $HOME/docker/rstudio/r-scripts
- type: bind
source: ./renv
target: $HOME/docker/rstudio/renv
- type: bind
source: ./shiny-apps
target: $HOME/docker/rstudio/shiny-apps
- type: volume
source: r_libs
target: /usr/local/lib/R
volumes:
r_libs:
rstudio:
特别注意:
docker-compose.yaml文件,每个冒号后面需要有空格,每个-
线后有空格,包括:- 8787:8787
,- PASSWORD=C11223344g
, - type: bind
防火墙开放8787端口
sudo ufw allow 8787
启动容器:
sudo docker-compose up -d
若遇到问题,重新启动rstudio server容器的方法
1.进入本docker-compose.yaml的目录
cd $HOME/docker/rstudio
2.运行docker-compose命令
sudo docker-compose up -d