RStudioをdockerで使える、Rockerを触ってみた

はじめに

dockerは会社のエンジニア向けの勉強会で紹介されていて、存在は知ってはいたが使っていませんでした。先日参加したTokyo.RでRockerというものが紹介されており、よし使ってみようと思うに至りました。
今回は遅ればせながら、Rockerを使ってみて、何かを回して、保存するという一連のチュートリアルをやってみます。

用語のざっくり理解

専門家の方に怒られたらあれですが、私の理解はこんな感じです。

  • Dockerfile
    • OS、言語、ライブラリ、バージョンなどをレシピの食材っぽい感じでテキスト形式で書かれたもの
  • イメージ
    • コンテナの元。Dockerfileをもとにdockerで生成できる。あるいはdocker hubとか言うのサイトから入手できる。ここからコンテナ(RStudioとかを回したい環境のこと)を起動できる。
  • コンテナ
    • RStudioとかを起動させておく実行環境。
  • 永続化
    • ファイルの内容が消えないように残すこと。立ち上げたコンテナを永続化しないと都度データやインストールしたパッケージが消える。

Rockerはdocker hubで提供されているイメージです。RockerのGitHubにはDockerfileも当然あげられていました。自分であれやこれや設定を追加するにはこれを参考にいじることになるのだと思います。

とにかくやってみる

まずは、dockerをインストールします。

Install Docker Desktop on Mac
docker自体はだいぶ前にインストールしたので、入れ方を忘れていますが、ここを見ればわかるはず。

ターミナルで以下を実行

ブラウザなどで以下を表示

DALEXのサンプルコードを回してみる。DALEXはTokyo.Rでも紹介されている機械学習の解釈可能性に関する手法をあらかた実践できるパッケージです。
moDel Agnostic Language for Exploration and eXplanation

以下の図はDALEXなどを使ってGLMで推定した結果の各特徴量の影響度をプロットしたものです。

ターミナルでコンテナのIDを確認する。

分析結果やソースコードやデータを保存したいので、コンテナの永続化を行います。

ここではユーザー名をperio、イメージ名をrocker_hadleyにしています。

永続化したコンテナのイメージがきちんと存在するか確認してみます。

ありますね。

さて、先程のコンテナを止めてみましょう。コンテナIDを指定するだけです。

永続化したコンテナを読み込んでRstudioを起動してみます。

実は、誤って最新の状態で保存せずに再度立ち上げてしまいましたwDALEXのサンプルコードを回すために色々パッケージインストールしたので、それが消えてしまった。残念。
元のimageにはないRDataがあるので、一応、永続化はできているので安心です。うむ、次からはきちんと保存をしよう。

これでどのPCでも同じ条件で分析していけるので、良さそうです。
ただ、一部で入らないパッケージ(sfパッケージとか)があったので、より良いDockerfileを探し求めたいとも思いますね。

u_riboさんがsfパッケージが動くdocker imageを教えてくれました。これまで、一つの環境にギュッとパッケージを詰め込んでやってきたんですが、目的に応じてdocker imageを選ぶのが良いのでしょう。

せっかくなので先日作成した事故物件分析用のコードを回してみましょう。

mapviewもインストールできて、問題なく使えました。u_riboさんありがとう。

参考情報

[1] The Rocker Project Docker Containers for the R Environment
[2] The Rocker Images: choosing a container
[3] rocker/tidyverse
[4] How to save data
[5] DALEXverse and fraud detection

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です