DockerでCentOS6にRとRStudio Serverが入ったDockerfileを作ってみる
概要
普段iMacで分析をやることもあれば、ラップトップのMac Book Airで分析をやったりすることもあり、 お互いの環境が一致せずに気持ち悪さを感じる事があるのもあり、ついにDockerに手を出してみました。
今回はDockerでCentOS6にRとRStudio Serverが入ったimageを作るDockerfileを作るということをやってみたいと思います。
ちなみに以下のような、
rockerというR周りの環境が用意されたimageがすでにあるようですが、あえて素のCentOSにRsutio Serverを入れるまでの処理をすることで、Dockerへの理解を深めていきたいと思います。
実装
それでは実装です。まずはベースとなるCentOS6を指定します。
FROM centos:6
そしてコマンドが標準出力されるようにセット。なくても大丈夫です。
#print doing command RUN set -x
諸々のインストールに必要なコマンド類を入れて、
#install utility command RUN yum -y install epel-release && \ yum install -y wget && \ yum install -y sudo
RとRstudio Serverを入れ、
#install r and rstudio server RUN sudo yum -y install R && \ mkdir downloads && \ cd downloads && \ wget -q https://download2.rstudio.org/rstudio-server-rhel-1.1.463-x86_64.rpm && \ sudo yum -y install rstudio-server-rhel-1.1.463-x86_64.rpm
ログイン用のユーザーを作成します。
#user setting RUN adduser rstudio && \ echo "rstudio:rstudio" | chpasswd
ここで、echo "rstudio:rstudio"
のコロンのあとでパスワードを設定しています。
つまりユーザー名:rstudio、パスワード:rstudioのユーザーを作っていることになります。
最後にポートの開放設定です。
EXPOSE 8787
これらをまとめてDockerfileという名前で保存します。それでDockerfileの準備は完了です。
次にターミナルでDockerfileのあるフォルダまで移動して、
docker build -t rstudio-server .
というコマンドを打ち込みrstudio-server
というimageを作ります。そして、
docker run -it --name rstudio-server -p 8787:8787 rstudio-server /bin/bash
と実行しコンテナの作成・ログインします。
コンテナの中で、
sudo rstudio-server verify-installation
とすることでRstudio Serverが起動します。
そしてブラウザからhttp://localhost:8787にアクセスすると以下のような画面が出るので、
作成したユーザー名とパスワードを入力すればログイン可能で、 Rstudioが使用可能です。
全体のコードをまとめたのは以下になります。
gist:f56478dee631c371c5377128c3953334 · GitHub
まとめ
今回はあえて素のCentOSにRstudio Serverを入れるDockerfileを作ってみました。
今後はJupyter等を入れるDockerfileも作成し、再利用可能で変更しやすい分析環境の構築をできるようになっていきたいなと思います。
それでは間違い等ありましたら、ご指摘お願いいたします。