16
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

Dockerを利用してRStudio ServerでRStan環境を準備する

この記事は,Stan Advent Calender 2016の二日目の記事です。
※当初この記事はRStudio Advent Calendar 2016の二日目の記事と兼用のつもりでしたが,Qiitaはアドカレの兼用を認めない仕様っぽいので,RStudio分は別に補足記事を立てることにしました。

補足記事→Dockerを利用してRStudio ServerでRStan環境を準備したあと。

要約

tidyverseなパッケージ群,そしてRStanを回すのに使うようなパッケージ群がインストール済みなRStudio Server(日本向け)を,Dockerでさくっと構築しよう。

手順

  1. Dockerをインストールして使える状態に
  2. Dockerイメージを取得
  3. コンテナを作成
  4. ブラウザでアクセス

これでOKです。

Dockerをインストール

各種プラットフォームによって異なりますので,すみませんがWebで検索してください。情報はたくさんありますので,ここで下手に説明するよりもずっといいかと思います。本家Webサイトはこちらです。

以降,すでにDockerがインストールされたことを前提に進めます。

Dockerイメージを取得

利用するDockerイメージ

今回の記事用に,kazutan/stan-dというDockerHubリポジトリを作成しました。元のGitHubはこちらです。主な特徴は以下のとおりです:

  • rocker/hadleyverse(GitHub, DockerHub)をベース
  • tokyor/rstudio(GitHub, DockerHub)に記述してあるDockerfileを参考に日本語化
  • RでStanを実行するために必要なパッケージをインストール
    • rstan
    • ggmcmc
    • rstanarm
    • 上記が依存するパッケージ

これをlatestタグで準備しています(GitHubのmasterブランチのDockerfileに記述)。

また,共立出版のWonderful Rシリーズの「StanとRでベイズ統計モデリング」サポートページのREADME下方にある一連のパッケージを組み込んだものも作成しました。これをRStanBookというタグで準備しています(GitHubのRStanbookブランチのDockerfileに記述)。

お好みに応じてどちらかを使うかを選んでおいてください。別に後からinstall.packages("hoge")でインストールできるのであまり悩まなくても大丈夫です。

イメージを取得

latestを取得する場合,端末で以下のコマンドを実行してください:

#Ubuntuなどでは`sudo`が必要になります。
$ docker pull kazutan/stan-d:latest

これでローカルにイメージを取得します。最後のコロン以降がDockerHubリポジトリ内のタグ名なので,RStanBookの場合は差し替えてください。

コンテナの作成

コンテナを作成します。端末で以下のコマンドを実行してください:

#Ubuntuなどでは`sudo`が必要になります。
$ docker run -p 8787:8787 -v (リンクさせたいディレクトリパス):/home/rstudio -d --name (コンテナ名) kazutan/stan-d:latest

必要に応じてオプションなどは変更してください。例えば,手元PCのホームディレクトリとコンテナのホームディレクトリをリンクさせ,コンテナ名を"kosaki"にしたいなら,以下のような感じになります:

#Ubuntuなどでは`sudo`が必要になります。
$ docker run -p 8787:8787 -v ~:/home/rstudio -d --name kosaki kazutan/stan-d:latest

これでコンテナが作成され,RStudio Serverも起動しているはずです。

ブラウザでアクセス

ブラウザを起動し,アドレスバーにlocalhost:8787と入力してください。RStudio Serverへのログイン画面が表示されますので,ユーザー名をrstudio,パスワードをrstudioと入力してください。これでもうOKです。

1342342.png

注意事項

Dockerの基本的な操作について

私はDocker素人なのでそこまで把握していませんが,今回の内容で簡単なメモ書きはDockerHubのリポジトリに記載しています。またプラットフォームによって色々違うことが出てくるかもしれません。今回はUbuntu16.04環境で準備,テストしています。Dockerに関して不明な点はすみませんが詳しい人やWeb検索でおねがいします。

Dockerイメージについて

割とやっつけ(2,3時間)で作ったものなので,後からまた変更する可能性が高いです。その場合はリポジトリのトップなどに書いていきます。あと,これはローカルで実行することを念頭に置いています。またこれらの内容について損害などが発生した場合,私は一切の責任は負いません。ご了承ください。

問い合わせについて

何かありましたら,Twitterの@kazutanもしくはここのコメント,Dockerfileに関することでしたらGitHubリポジトリのissueにおねがいします。

参考資料

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
16
Help us understand the problem. What are the problem?