2014年4月12日土曜日

Docker上に作成したCentos6.4にRuby2.1、RubyOnRails4をインストールする




Docker上のCentosにRails4環境を構築していきます。

・Docker上にCentosを起動
$ docker -i -t centos /bin/bash

・Centos上に必要そうなライブラリをインストール
$ yum -y install gcc gcc-c++ make openssl-devel zlib-devel readline-devel

・CentosにRuby2.1をインストール
まだRuby2.1系のリポジトリがないので、yumではインストール出来なかったので、ソースからコンパイルしてインストールしていきます。
$ cd /root
$ wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.1.tar.gz
$ tar zxvf ruby-2.1.1.tar.gz
$ cd ruby-2.1.1
$ ./configure
$ make
$ make install
以上でRuby2.1がインストールされたはずです。
一応テストで、下記を実施してみてください。
$ ruby -e "print 'hello ruby2.1'"

・Rails4をインストール
$ gem install rails
$ rails -v
Rails 4.1.0

以上でRails4の環境構築は完了です。

ここから先はDockerの話になります。

せっかくRuby2.1、Rails4の環境が出来たので、このコンテナをコミットしてとっておきます。
$ exit
$ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6050a77b02d2 centos:6.4 /bin/bash 15 hours ago Exit 130 suspicious_fermi
$ docker commit 605 centos/rails4
これでいつでもRails環境が使えます。




Docker軽量仮想環境

WEB+DB PRESS vol.79」に掲載されていたDockerを試してみました。



WEB+DB的には10ページくらいの記事で、コンテナ型の環境の説明などが書かれています。
その後、Docker環境の構築について書かれていますが、OSX用ユーザ用の説明が書かれています。
が、もちろんWindowsユーザでも動かすことは出来ます。

というか、WindowsとMac(OSX)では大体動かし方は同じで、boot2dockerというものをVirtualBox上で動かして、そこでDockerを動かす必要があります。

ということで、今回はWindowsでの導入とMacでの導入を記事にしたいと思います。
※Macの場合、雑誌上にも書かれているのですがVagrantを利用するので、Dockerを直接インストールしていないので、直接インストールする方法を書いていきます。

・Windows環境にDockerをインストール
・VirtualBoxインストール
まずはVirtualBoxをダウンロードします。(Windows hosts)ってやつをダウンロードしてダブルクリックでインストールして下さい。

・boot2dockerダウンロード
まずはboot2dockerのISOをダウンロード

・VirtualBox上でboot2dockerを動かす
VirtualBoxの設定↓
Name: boot2docker
Type: Linux
Version: Linux 2.6 (64 bit)
Memory size: 1024 MB
Hard drive: Do not add a virtual hard drive
上記を作成したら、boot2docker.isoをマウントして起動。

・インストール確認
$ docker run busybox echo hello world
と入力し、「hello world」と表示されればDockerのインストールは完了です。

・Mac環境にDockerをインストール
・boot2dockerインストール
ターミナルを表示し、適当なディレクトリに移動し下記コマンドを入力(boot2dockerのダウンロード)
$ curl https://raw.github.com/boot2docker/boot2docker/master/boot2docker > boot2docker
$ chmod +x boot2docker
・dockerインストール
$ curl -o docker https://get.docker.io/builds/Darwin/x86_64/docker-latest
$ chmod +x docker
$ export DOCKER_HOST=tcp://127.0.0.1:4243
$ sudo cp docker /usr/local/bin/
$ ./boot2docker up #ちなみに止めるときは./boot2docker stop

・インストール確認
$ docker run busybox echo hello world
と入力し、「hello world」と表示されればDockerのインストールは完了です。

Dockerの基本コマンドはは下記に貼っておきます。
===============================================================
Dockerの基本コマンドを羅列していきます。

・Dockerのバージョン確認
$ docker version

・Dockerで使用するコンテナの検索
$ docker search [centos]
ubuntuがほしいなら、「docker search ubuntu」

・使用するコンテナのダウンロード
$ docker pull centos
docker pull [searchした結果のNAME]
結構時間かかります。

・コンテナを走らせコマンドを実行する
$ docker run -i centos echo "hello world"
docker run -i [ダウンロードしたコンテナ名] [実行したいコマンド]

・コンテナのIDを取得
$ docker ps -l

・コンテナのコミット
$ docker commit 347ba centos/echo
docker commit [docker ps -lで表示されたIDの頭の一部で良いらしい] [コミットする名前]

・コミットしたコンテナの使用
$ docker run centos/echo echo 'hello'
docker run [コミットしたREPOSITORY名] [コマンド]

・コミットしたコンテナの確認
$ docker images
===============================================================

WEB+DB PRESS vol.79」にはDockerの詳しい説明など書かれているので、興味をもった人は買って読んでみるといいかもしれません。Dockerの本家サイトは英語なんでね。。。雑誌で日本語である程度理解してから、本家読むと英語も多少読みやすいですね。