概要
タイトルの通り使ってみました
dockerhub で公開されている sinatra アプリを動かしてみます
執筆時点ではまだ無料で 3 コンテナまで動作させられるようです
環境
- CentOS 7.3 (64bit)
- Docker 1.12.6
- Arukas 2017/02/07 時点
ユーザ登録
https://app.arukas.io/sign_up からサインアップしましょう
メールアドレスがあれば登録できます
Github アカウントでも登録できるようです
API キーの取得
ログインした状態で https://app.arukas.io/settings/api-keys にアクセスすると API キーが取得できるのであらかじめメモしておきましょう
あとで使用します
コンテナを立ち上げる
少し準備が必要なのでそれについて触れておきます
とその前に
Arukas の場合、ECS のようにコンテナホストを作成したりクラスタの設定をする作業がありません
おそらくアカウントに紐付いてバックエンドで自動でコンテナホストが作成されているのだと思います
なので、いきなりコンテナを立ち上げることができます
で、このコンテナを立ち上げる方法がコンパネか専用の CLI があるのですがコンパネは簡単なので今回は CLI から行いたいと思います
で、この CLI が少し特殊でローカルの環境でコンテナを立ち上げてそのコンテナ上で Arukas に対して CLI を実行する感じになります
Arukas ではこの CLI の仕組みを「Dockernized CLI」と呼んでいました
なので CLI を使って Arukas 上にコンテナを立ち上げる場合はまずローカルで docker が動作する環境を作る必要があります
今回は環境に記載の通り CentOS7 + docker の環境を事前に構築しています
立ち上げる
では前置き長くなりましたがコンテナを立ち上げてみましょう
コマンドが長いですが以下で Arukas 上にコンテナが立ち上がります
初回実行の場合コンテナのデプロイまでに時間がかかるので待ちます (おそらく Arukas 上で docker pull などをしているためだと思います)
docker run --rm -e ARUKAS_JSON_API_TOKEN="api-key" -e ARUKAS_JSON_API_SECRET="api-secret" arukasio/arukas run --instances=1 --mem=512 --app-name="quickstart-ruby" --ports=4567:tcp arukasio/quickstart-ruby
api-key と api-secret の部分は事前に取得した API キーの情報に書き換えてください
何をしているかというと
1 dockerhub にある arukasio/arukas というイメージをローカルに持ってきてコンテナを立ち上げます
2 ローカルで立ち上げたコンテナに -e ARUKAS_JSON_API_TOKEN="api-key" -e ARUKAS_JSON_API_SECRET="api-secret"
の環境変数の値を渡します
3 ローカルで立ち上げたコンテナに引数として run --instances=1 --mem=512 --app-name="quickstart-ruby" --ports=4567:tcp arukasio/quickstart-ruby
を与えることで最後に指定した arukasio/quickstart-ruby というイメージを Arukas 上にデプロイします
ということをしています
3 で指定した run のオプションはいろいろと変更することができます
また run 以外のコマンドとして docker っぽい stop, start, rm, ps などが提供されています
コンテナを確認する
コンテナができたか確認するために ps を実行してみます
docker run --rm -e ARUKAS_JSON_API_TOKEN="api-key" -e ARUKAS_JSON_API_SECRET="api-secret" arukasio/arukas ps
以下のような感じで表示されると思います
(カラムとのインデントが合っていないのが若干気になりますが、、)
CONTAINER ID IMAGE COMMAND CREATED STATUS NAME ENDPOINT
299e8ca8-66a8-4acf-9014-baf028bc47ec arukasio/quickstart-ruby 2017-02-07T09:03:41.624+09:00 running angry-ptolemy-5159.arukascloud.io
動作確認
今回 Arukas 上で起動したアプリは sinatra ベースの Web アプリです
curl でアクセスしてみると Hello World が返ってくると思います
curl https://angry-ptolemy-5159.arukascloud.io/
起動したコンテナにはダイナミックに DNS が振られかつ https でアクセスできるので、その点は嬉しい点かなと思います
おまけ
コンテナを停止
起動したい場合は stop の部分を start にすれば OK です
docker run --rm -e ARUKAS_JSON_API_TOKEN="api-key" -e ARUKAS_JSON_API_SECRET="api-secret" arukasio/arukas stop 299e8ca8-66a8-4acf-9014-baf028bc47ec
コンテナを削除
docker run --rm -e ARUKAS_JSON_API_TOKEN="api-key" -e ARUKAS_JSON_API_SECRET="api-secret" arukasio/arukas rm 299e8ca8-66a8-4acf-9014-baf028bc47ec
最後に
Arukas を試してみました
おそらく Dockernized CLI 的なことをしてるのはセキュリティの観点からだと思います
コンテナに API キーを渡すことでその API キーを使ってコンテナを立ち上げるということがしたいので独自の CLI を作っているのだと思います
デフォルトの docker コマンドだとそういった認証機能がリポジトリ用にしか用意されていないので、そのせいだと思います
あと気になったところとしては以下がありました
- プライベートリポジトリは提供していないのでイメージは必ず dockerhub で公開する必要がある
- docker-compose には対応していないっぽい
- 合わせて network, volume, swam は使えないっぽい
- ドキュメントやコンパネは見やすい
あたりでしょうか
複数のコンテナを立ち上げることはできるようですが link は使えないようです
シンプルなサービスではあるのでホスティング的に使うには良いかもしれません
0 件のコメント:
コメントを投稿