R言語による電子カルテデータの二次利用

~R言語初心者がデータ処理を楽しめるように基本的内容中心のサイトです~

DockerでRとMySQLの環境構築(Ubuntu16.04LTS仮想マシン編)

RとMySQLをDockerで動かす練習です。
今回はUbuntu 16.04 LTSで環境作ります。

まずVMwareでUbuntu64bit16.04LTSの仮想マシンを作っておきます。
f:id:r_beginner:20161129205319p:plain
端末から、

$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

パッケージでDockerインストールするときは

$ sudo apt-get install docker.io 

では、次に以前も紹介したHadley packageの入ったrocker/hadleyverse(Docker image)を入れます。

$ sudo docker run -d -p 8787:8787 -v ~:/home/rstudio rocker/hadleyverse

データベースはMySQLにします。

$ sudo docker run --name mysql -e MYSQL_ROOT_PASSWORD=mysql -d -p 3306:3306 mysql

ちゃんとうごいているか確認

$ sudo docker ps

f:id:r_beginner:20161129211745j:plain
大丈夫みたいです。STATUSはUPになってます。

Dockerコンテナのip addressを確認して。

$ ifconfig

f:id:r_beginner:20161129211301j:plain

さてRstudioをブラウザから動かして見ましょう。
ブラウザのアドレスバーに[ip address]:8787と入力します。
Rstudio serverが立ち上がりましたね。
f:id:r_beginner:20161129212203p:plain
Username,Passwordはどちらも"rstudio"で。

Consoleからでも、PackagesタブのInstallボタンでも良いので

install.packages("RMySQL")

まずはMySQLに接続するためのパッケージをインストール。
実際データベースを操作してみましょう。
Rstudioに新規ファイルを作り、下記コードをコピペしてください。

library(RMySQL) 
con <- dbConnect(MySQL(), host="[ip address]", port=3306, dbname="mysql", user="root", password="mysql") 
dbGetQuery(con,"SHOW DATABASES;") 
dbGetQuery(con,"CREATE DATABASE rbeginner;") 
dbGetQuery(con,"SHOW DATABASES;") 
dbDisconnect(con) # 終わったらconnectionは切りましょう 

順番にRUNボタンで実行すると。最初の"SHOW DATABASES;"ではなかったものが、2回めにできていますね。
本当にMySQLにrbegginerのデータベースができているでしょうか?

もういちどUbuntu端末に戻ります。

$ sudo docker exec -it mysql bash

mysqlコンテナに入ります。

# mysql -u root -pmysql
mysql> show databases;

f:id:r_beginner:20161129214240j:plain

できていますね。Dockerは環境構築が簡単なので良いですね。