RackspaceのCarinaでDockerコンテナ

# Rackspaceが提供するコンテナホスティングのCarina
無償ベータ期間だそうで、使ってみました。

まずは、こちらでアカウントの作成
https://getcarina.com/

## ログイン
アカウントを作成してログインすると、こんな感じ。
![スクリーンショット 2016-06-21 1.31.43.png](https://qiita-image-store.s3.amazonaws.com/0/93508/dceb0479-958a-8fe6-b049-380078cd7042.png)

## チュートリアル
お試しということでこちらのチュートリアルをやってみる。
https://getcarina.com/docs/getting-started/getting-started-on-carina/

### クラスターの作成
なにはなくともクラスター、って事でクラスターを作成するようです。
クラスターは、ネットワーク、ストレージ、コンテナ群などを管理する単位のよう。

と言う事で、「Add Cluster」をクリック
![スクリーンショット 2016-06-21 1.39.14.png](https://qiita-image-store.s3.amazonaws.com/0/93508/e8fa76da-f274-fbc1-db3d-2c508ddd9ec7.png)

クラスター名とオートスケールするかどうかを指示して「Create Cluster」をクリック。
クラスター名：zum-cluster-01
今回はオートスケールは無しにしました。

しばらくSTATUSがbuilding...となって、１分程度待つと、

![スクリーンショット 2016-06-21 1.43.03.png](https://qiita-image-store.s3.amazonaws.com/0/93508/f5898f98-087d-164a-b6ef-a92a8c1199f8.png)

こんな感じでクラスターが作成されます。
デフォルトでNodeは３つ作成され、そのうちの一つが起動している様子です。

### Docker Version Manager
さて、ここからはローカルのCLIで作業が出来る。。。
ための準備を行います。

コントロールパネルで、作成したクラスターの「Get access」をクリックすると、Docker Version Manager (dvm)と言うツールがダウンロードされます。
![スクリーンショット 2016-06-21 1.47.15.png](https://qiita-image-store.s3.amazonaws.com/0/93508/3118922e-31b9-9490-78f7-2200565fa503.png)

ファイルは、[クラスター名].zipとなり、これを適当な場所にダウンロード、展開。
![スクリーンショット 2016-06-21 1.48.28.png](https://qiita-image-store.s3.amazonaws.com/0/93508/3b519bb4-0386-5e14-3fc6-5554b46a5716.png)

で、こんな感じのファイルが展開されました。
ターミナルからこのディレクトリに移動して、チュートリアルの通り、

`$ source docker.env`
※Windowsの場合は、チュートリアルを参照シて下さい。

ちなみに、docker.envの中身は、

```docker.env
__CARINA_ENV_SOURCE="$_"

if [ -n "$BASH_SOURCE" ]; then
  __CARINA_ENV_SOURCE="${BASH_SOURCE[0]}"
fi

DIR="$(cd "$(dirname "${__CARINA_ENV_SOURCE:-$0}")" > /dev/null && \pwd)"

unset __CARINA_ENV_SOURCE 2> /dev/null

export DOCKER_HOST=tcp://104.130.0.22:2376
export DOCKER_TLS_VERIFY=1
export DOCKER_CERT_PATH=$DIR

export DOCKER_VERSION=1.11.2
```

な感じで、もろもろdvmを利用するための設定など。

### Docker Version Manager (dvm)　のインストール
そして、dvmのインストールは下記。

```
$ curl -sL https://download.getcarina.com/dvm/latest/install.sh | sh

Downloading dvm.sh...
######################################################################## 100.0%
Downloading bash_completion
######################################################################## 100.0%
Downloading dvm-helper...
######################################################################## 100.0%

Docker Version Manager (dvm) has been installed to /Users/ist/.dvm
Run the following command to start using dvm. Then add it to your bash profile (e.g. ~/.bashrc or ~/.bash_profile) to complete the installation.

  source /Users/***/.dvm/dvm.sh
```

sourceでdvm指定して、インストールは

```
$ source /Users/***/.dvm/dvm.sh
$ dvm use
1.11.2 is not installed. Installing now...
Installing 1.11.2...
Now using Docker 1.11.2
Now using Docker 1.11.2
```

インストール完了。
```
$ docker info
Containers: 5
 Running: 3
 Paused: 0
 Stopped: 2
Images: 3
Server Version: swarm/1.2.0
Role: primary
Strategy: spread
Filters: health, port, dependency, affinity, constraint
Nodes: 1
 5fcf9b69-5b3f-4d7b-94f2-cb15f9e04231-n1: 104.130.0.22:42376
  └ Status: Healthy
  └ Containers: 5
  └ Reserved CPUs: 0 / 12
  └ Reserved Memory: 0 B / 4.2 GiB
  └ Labels: com.docker.network.driver.overlay.bind_interface=eth1, executiondriver=, kernelversion=3.18.21-7-rackos, operatingsystem=Debian GNU/Linux 7 (wheezy) (containerized), storagedriver=aufs
  └ Error: (none)
  └ UpdatedAt: 2016-06-20T16:58:50Z
  └ ServerVersion: 1.11.2
Plugins: 
 Volume: 
 Network: 
Kernel Version: 3.18.21-7-rackos
Operating System: linux
Architecture: amd64
CPUs: 12
Total Memory: 4.2 GiB
Name: 5fcf9b69-5b3f-4d7b-94f2-cb15f9e04231-n1
Docker Root Dir: 
Debug mode (client): false
Debug mode (server): false
WARNING: No kernel memory limit support
```

お〜、Carina見てるっ。

### コンテナ起動
チュートリアルではWordpressとMySQLの２つのコンテナを立ち上げるので、仰せのままに。

#### ネットワーク作成
クラスター内に独自のネットワークを作成します。この閉じられたネットワーク内でコンテナ同士が通信すると。

```
$ docker network create zum-nw-001
781c5d46b42f95de82e33143a636dd2fc1bf3e87e1076e51f4506f12bf99098d
```

dockerのコマンドのまんまですね。zum-nw-001と言うネットワークを作成しました。

#### MySqlコンテナ起動

```
$ docker run --detach --name mysql --net zum-nw-001 --env MYSQL_ROOT_PASSWORD=password mysql:5.6
b4a828eea06b8f78cd604b94e9bc6373071a8760fff7fb7f89e8eca22260f53c
```
※チュートリアルのまんま。。。この記事の価値皆無だな(^^;

ローカルでrunするよりも気持早いかな。

#### Wordpressコンテナ起動

```
$ docker run --detach --name wordpress --net zum-nw-001 --publish 80:80 --env WORDPRESS_DB_HOST=mysql --env WORDPRESS_DB_PASSWORD=password wordpress:4.4
a41838a98aa4ba6c2c98f7a0b5018c4c9f950fc9e2975722e2f3ffd2c7fc3d46
```

ホントに立ち上がってる？？？

```
$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                     NAMES
a41838a98aa4        wordpress:4.4       "/entrypoint.sh apach"   25 seconds ago      Up 22 seconds       104.130.0.22:80->80/tcp   5fcf9b69-5b3f-4d7b-94f2-cb15f9e04231-n1/wordpress
b4a828eea06b        mysql:5.6           "docker-entrypoint.sh"   2 minutes ago       Up 2 minutes        3306/tcp                  5fcf9b69-5b3f-4d7b-94f2-cb15f9e04231-n1/mysql
```

Carinaお見事！

### 動作確認

下記で、アクセス用IPアドレスを確認します。

```
$ docker port wordpress 80
104.130.0.22:80
```

![スクリーンショット 2016-06-21 2.12.04.png](https://qiita-image-store.s3.amazonaws.com/0/93508/0c1b47c2-1363-b714-b3ef-99ee1dc26cfa.png)

後は普通にWordpressのインストールを実行して、
![スクリーンショット 2016-06-21 2.13.56.png](https://qiita-image-store.s3.amazonaws.com/0/93508/67b54c5b-3c9c-30de-62c6-f2bc0bd0b749.png)

この状態でイメージを確認してみると、

```
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
swarm               1.2.0               021d335278a5        11 days ago         18.71 MB
mysql               5.6                 2c0964ec182a        3 weeks ago         329 MB
swarm               carina-consul       aac599bcad73        5 weeks ago         28.49 MB
wordpress           4.4                 769a7fd0230c        10 weeks ago        519.5 MB
cirros              latest              f8ce316a37a7        5 months ago        7.735 MB
```

swarmが動いてたりします。

ここまで来た状態で、WEBのコントロールパネルを見てみると、

Imageやコンテナ、ネットワーク等がわかりやすく表示されていました。


### コンテナ削除
動作確認が出来たので、コンテナを削除します。削除コマンドも「dvm」と同じ。

```
$ docker rm --force --volumes wordpress mysql
wordpress
mysql
```

## 感想
Carinaは思った以上に簡単でした。
dvmをインストールした後は、いつもローカルで行っているのと同じコマンドが利用出来るので、まったく悩むこともなく、Wordpressが立ち上がりました。

起動後の動作も、体感的には早い、と感じました。

操作性、性能とも、十分利用価値はありそうです。
ベータが終了した後のPricingにもよりますが。。。

しばらくは色々使ってみたいと思います。