Ubuntu Weekly Recipe

第529回 RStudio Serverをよりかんたんにインストールする

この記事を読むのに必要な時間:およそ 3 分

第527回ではRStudioのインストール方法を紹介しました。実はコンテナ技術を使うと,インストール方法はさらにかんたんになります。今回はDockerを活用したRStudio Serverのインストール方法を紹介します。

コンテナ技術を使う利点

直近だと第521回でLXDの使い方を解説したように,本連載ではこれまでに何度もコンテナ技術に関する活用方法を紹介してきました。今回も実際に実行するコマンド自体は,これまでとほぼ変わりはありません。そこでRStudio Serverをコンテナ上で利用する際のポイントなども合わせて紹介します。

まず,RStudio Serverのインストールにおいて,コンテナ技術を活用すると得られるメリットは次のとおりです。

  • ホストに余計なパッケージをインストールしなくて良い
  • コマンドひとつで全部入りの環境を構築できる
  • 複数のバージョンもかんたんに共存できる
  • Linuxディストリビューションの差異を無視できる
  • 複数のマシン間で環境のマイグレーションを行える

その多くは「コンテナ技術だからできる」というよりも「コンテナ技術だからかんたんにできる」ものです。しかしながらコンテナ技術を導入することで生じる性能上のデメリットはほぼないので,使わない手はありません。数多あるコンテナ技術のうち,今回はDockerに限定して紹介しましょう。

最初に行なうべきはコンテナプラットフォームのインストールです。Dockerのインストール方法は第458回を参照してください※1)⁠今回紹介する手順はDocker公式のdocker-ce版でもUbuntuリポジトリのdocker.io版でも関係なく使えます。

※1
ちなみに第458回で解説しているlinux-image-extra-$(uname -r)パッケージは,Ubuntu 18.04 LTSではパッケージ名が変わっています。適宜linux-modules-$(uname -r)に読み替えてください。

RockerプロジェクトのDockerコンテナ

Dockerで特定のアプリケーションを使う上で最初に考えるべきことは,どのコンテナを使うか,もしくは自分でビルドするのか,です。最近のサーバーソフトウェアの多くは,公式のイメージがDocker Hubにアップロードされていますので,まずは探してみましょう。もし見つからなかったり,見つかったとしてももう少しカスタマイズしたい場合は,自分でDockerfileを記述することになります。

幸いR・RStudioにはRocker Projectによる質の高いDockerイメージが存在します。まずはこれを使うと良いでしょう。Rockerでは主に5種類のイメージが提供されています。

RユーザのためのRStudio[実践]入門の勉強に使うのであれば,最低でもtidyverseイメージを使ったほうが良さそうです。第5章のR Markdownのことを考えるとverseでもいいかもしれません※2)⁠今回はverseイメージを使います。

※2
イメージにはTeX LiveではなくTinyTexがインストールされています。このためR Markdownで日本語PDFを生成したい場合,第527回の方法だけではうまくいきません。一応,tlmgrで必要なパッケージをインストールしようとはしているのですが,検索パスの設定がうまくいっていないのか,パッケージがインストールされる度にmktexlsrを実行しなくてはならない状況です。さらに日本語フォントも別途用意する必要があります。このあたりは本来Dockerfileに書くべき処理ではあるので,Rocker環境での日本語PDF生成については,別途説明する予定です。

まずはdocker pullでイメージを取得しましょう。

$ sudo docker pull rocker/verse
(中略)
Status: Downloaded newer image for rocker/verse:latest
$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
rocker/verse        latest              a7a50ddde3dd        5 hours ago         2.45GB

Dockerはコンテナ起動時のオプションによって個々のイメージの挙動を変更できます。とりあえず起動してみましょう。

$ sudo docker run -d -p 8787:8787 rocker/verse
a465f38827b3c311dde567223349a89a2ac6593ddc18e381587b30a02f88c19d
$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
a465f38827b3        rocker/verse        "/init"             8 seconds ago       Up 8 seconds        0.0.0.0:8787->8787/tcp   priceless_austin

-dはインスタンスをバックグラウンドで起動するオプションです。-p 8787:8787-p ホストのポート番号:コンテナのポート番号と記述することで,コンテナのポート番号をホストのポート番号に紐付け,ホストやホストの外からコンテナのポートにアクセスできるようにします。要するにコンテナの中のRStudioサーバーに,ホストの外から「ホストのアドレス:8787」でアクセスするオプションです。

実際にウェブブラウザーから「ホストのアドレス:8787」へとアクセスしてみましょう。ユーザー名とパスワードはいずれも「rstudio」です。

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。

コメント

コメントの記入