この記事は,RStudio Advent Calendar 2016の二日目の記事です。
Dockerを利用してRStudio ServerでRStan環境を準備する に関する補足記事です。なので先にそちらをご覧ください。
※本当は併用する予定だったのですが,Qiitaがアドカレを併用認めない仕様っぽいので,追記記事を作ることにしました。
運用について
DockerでRStudio Serverを立てた後ですが,コンテナを削除しない限り,変更などはそのまま継承されます。つまり,Rのパッケージを追加でインストールしていっても,コンテナがそのまま残していれば継続して使えます。
ただし,このような使い方はあまり向かないと思います。Dockerの利点はimageからコンテナという環境をさくっと構築できる点であり,長期的に運用するようなことを念頭においていません。使い捨てや検証用,あるいは環境の共有するような感じです。もし,長期的に色々と使っていくのであれば,Vagrantなどコンテナ型ではなくマシンとして仮想環境を整備するほうが柔軟でいいかなと思います。VagrantでRStudio Serverを構築するには,以前書いたので参考にしてもらえればと思いいます:
Vagrantでローカルの仮想マシンにRStudioServer環境を作る
イメージの更新を当てるには
ベースにしているのがhadleyverseで,これはかなりの頻度で更新されています(数日くらい)。なので新しいイメージに更新したいなら,以下の手順を踏んでください。
- 依存してるコンテナを停止
- 依存してるコンテナを削除
- `docker pull (イメージ名):(タグ名)
更新されていれば,新しく入ってくるはずです。
自分好みにRStudioをカスタマイズしたものを再利用していきたい
Dockerfileを自分好みに編集してイメージをBuildするか,あるいはコンテナを手元で修正してそれをcommit→pushすれば可能です。イメージを公開するにはDockerイメージ用のDockerHubリポジトリが必要になりますので,DockerHubアカウント作成が必要になります。以下のサイトが参考になるかもしれません:
Dockerfileを作成
Dockerfileを初めて触るのは難しいですから,参考になるものを見ながら修正していくといいかと思います。これをGitHubなどに設置して,DockerHubと連動するようにするとスムーズです。
手元のコンテナをPush
- 事前にどこをどう設定して残すかをリストアップ
- ベースになるイメージから新たにコンテナ作成
- カスタマイズを実施
- docker commitを実施
もし公開するのであれば,このコミットしたイメージをDockerHubにpushする作業が必要となります。細かい手続きについては,私がしろううというのがあるので省略します。すみません。
問い合わせについて
何かありましたら,Twitterの@kazutanもしくはここのコメント,Dockerfileに関することでしたらGitHubリポジトリのissueにおねがいします。