Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

この記事は,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におねがいします。

参考資料

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away