LoginSignup
2
2

More than 1 year has passed since last update.

【Windows】ブラウザからRstudioを利用する【Docker】

Last updated at Posted at 2021-09-26

背景

RStudioのデスクトップアプリは各種OSに対応していますが、OS固有の問題(Windowsだと文字コード周りでエラーが出やすいなど)があります。また、どの端末からも同じ環境で使用できると便利です。
RStudio Serverを利用すればWebブラウザからRStudioを使用することができます。さらにDockerを使用すればサーバーを準備する必要もありません。ここではDockerを用いてWindowsでRStudio Serverを立て、WebブラウザからRstudioを利用してみます。

参考

RStudio Serverのインストール
Using the rocker/rstudio container

環境

OS: windows10 Pro (19043.1237)
Docker Desktop: 2.3.0.2

方法

1. Dockerのインストール

下記の記事などを参考にDocker Desktop for Windowsをインストールします。
WindowsでDocker環境を試してみる

2. rockerイメージの取得

rockerはRstudio Serverを含むDebianベースのDockerイメージです。docker hubで検索すると複数のレポジトリがヒットします。最小構成のrocker/rstudioをインストールしても良いですが、ここでは使用頻度の高いライブラリがインストール済のrocker/tidyverseをインストールします。
rocker.PNG
Windows PowerShellを起動し、下記のコマンドを実行します。

docker pull rocker/tidyverse

3. rockerの起動

Windows PowerShellで下記コマンドを実行します。

docker run -p 8787:8787 -v C:¥Users¥yourname¥Documents¥rstudio:/home/rstudio -e PASSWORD=yourpassword rocker/tidyverse

Rstudio Server上で作成したファイルをホスト(windows)側からも取得したいので、Documentsフォルダに直下に「rstudio」フォルダ作成し、-vオプションでrockerのホームディレクトリ(/home/rstudio)にマウントさせています。また「-e PASSWORD=」で任意のパスワードを設定する必要があります。ポートはrockerのREADMEに従って8787を指定しています。

4. ブラウザでRStudio Serverにアクセスする

ブラウザを起動してアドレスバーに「localhost:8787/」と入力します。
ユーザー名とパスワードが求められます。ユーザー名はデフォルトで「rstudio」、パスワードはコンテナを立ち上げるときに設定したものになります。
rstudio_login.PNG

結果

デスクトップアプリとほぼ同じ外観でブラウザからRstudioを使用できます。
※ログイン時点ではSourceパネルが表示されていません。Tools→Global options→Pane LayoutでSourceパネルを表示できます。

rstudio_session5.PNG

散布図をggplot2で作図し、png形式で保存してみます。

library(tidyverse)

x <- rnorm(100)
y <- rnorm(100)
dt <- data.frame(x, y)
ggplot(dt, aes(x = x, y = y)) + 
  geom_point()

png("test.png")
ggplot(dt, aes(x = x, y = y)) + 
  geom_point()
dev.off()

ホスト側のフォルダにもきちんと反映されています。
rstudio_folder.PNG

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2