Arukasハンズオン資料 - おまけ編

# はじめに

この記事は、

Arukasハンズオン受講希望者の方を対象とした、**おまけ編の説明**です！

目標：**色んなアプリを起動してみよう！**
難易度：**初級、中級**
所要時間：**15分**

**この記事に書かれている内容を一通り実行することで、**

* **様々なアプリの起動方法**
* **Blue-Green デプロイメント**

**について学習することができます！**

## 用語説明

* **Dockerイメージ：** 環境をまるごとDocker対応パッケージ化したファイル。
* **Docker Hub：** 米Docker, Inc.公式 Dockerイメージ保管サービス。(https://hub.docker.com/)

# ハンズオン開始！

**Hello world! だけではつまらない！**

**色々なアプリを起動してみましょう！**

## １．reichat

**reichat は、お絵かきチャットアプリです！**

![arukas_ucp_app_reichat.png](https://qiita-image-store.s3.amazonaws.com/0/123644/22810c7e-808a-f163-ca40-eeef6422f84b.png)

**次の項目を間違えずに入力してください！**

> **APP Name**（アプリの名前）**：** `reichat`
> **Image**（Dockerイメージ名）**：** `uzyexe/reichat`
> **Port**（アプリのポート番号）**：** `10133` `tcp`


**作成したアプリを起動してみましょう！**

![arukas_ucp_app_reichat_start.png](https://qiita-image-store.s3.amazonaws.com/0/123644/85aa7520-1fc3-9f81-2efd-1215b7050f87.png)

![start_button.png](https://qiita-image-store.s3.amazonaws.com/0/123644/96e28f91-11fd-f66b-5ebb-0268c243a589.png) **起動ボタンをクリック！**

**アプリが起動されました！**

![arukas_ucp_app_reichat_started.png](https://qiita-image-store.s3.amazonaws.com/0/123644/cd86b1e6-dff0-acb5-3ffb-98dbd28ad880.png)

**起動したアプリに Web ブラウザでアクセスしてみましょう！**

![arukas_ucp_endpoint_big_app.png](https://qiita-image-store.s3.amazonaws.com/0/123644/3d24f769-7849-b635-87d1-32c2e3993f0f.png)

**アプリの Endpoint（エンドポイント）に表示されている URL をクリック！** 

![reichat-entrance.png](https://qiita-image-store.s3.amazonaws.com/0/123644/20c153cf-c04b-2a23-5a3b-428659ab52a8.png)

**reichat が表示されました！** 

**ほかのアプリの起動も試してみましょう！** 

## ２．テトリス

**ターゲットを reichat に照準して・・・**

![edit_button.png](https://qiita-image-store.s3.amazonaws.com/0/123644/d02c6813-21e9-32ef-d073-098e6dda1308.png) **編集ボタンをクリック！**

![arukas_ucp_app_tetris.png](https://qiita-image-store.s3.amazonaws.com/0/123644/4998d3c3-dcde-0322-ac7b-53738aa28f82.png)

**起動中の reichat を次の内容に上書き編集してください！**

> **APP Name**（アプリの名前）**：** `tetris`
> **Image**（Dockerイメージ名）**：** `uzyexe/tetris`
> **Port**（アプリのポート番号）**：** `80` `tcp`

**起動したアプリに Web ブラウザでアクセスしてみましょう！**

![arukas_ucp_endpoint_big_app.png](https://qiita-image-store.s3.amazonaws.com/0/123644/3d24f769-7849-b635-87d1-32c2e3993f0f.png)

**アプリの Endpoint（エンドポイント）に表示されている URL をクリック！** 

**まだ、reichat が表示される人は F5キー連打でページ更新してください！**

![tetris-app.png](https://qiita-image-store.s3.amazonaws.com/0/123644/1b7de646-fb12-5c5f-b9db-016709f5b1bc.png)

**・・・**

**tetris が表示されました！** 

さて、ここで『F5キー連打』で reichat からテトリスへの切り替わりを心待ちされていた人は気付いたと思いますが、ほぼ通信断無しでreichat から テトリス にアプリが切り替わったと思います。

**Arukas は、Blue-Greenデプロイメントに対応しています。**

Blue-Greenデプロイメントでは、新しいアプリの起動が確認されてから古いアプリが停止されます。よって、最小限の通信断で新しいアプリにコンテンツを切り替えることができます。 仕様上、古いアプリと新しいアプリが一時的に混在する時間がいくらか発生しますが、利用ユーザーにほとんど気付かれることなくコンテンツの内容をアップデートするような運用が実現できます。

![Arukas_intro_and_infra_JTF_private.001.jpeg](https://qiita-image-store.s3.amazonaws.com/0/123644/b5f8e695-b3c8-e916-9e73-ba35556c5030.jpeg)

図にすると、こんな感じです！

**ほかのアプリの起動も試してみましょう！** 

## ３．SL

![arukas_ucp_app_sl.png](https://qiita-image-store.s3.amazonaws.com/0/123644/5f58b1f7-5735-0b97-8320-41214147c0bc.png)

**次の項目を間違えずに入力してください！**

> **APP Name**（アプリの名前）**：** `sl`
> **Image**（Dockerイメージ名）**：** `uzyexe/sl`
> **Port**（アプリのポート番号）**：** `8080` `tcp`

![start_button.png](https://qiita-image-store.s3.amazonaws.com/0/123644/96e28f91-11fd-f66b-5ebb-0268c243a589.png) **起動ボタンをクリックすると、アプリがデプロイされます！**

![arukas_ucp_app_sl_running.png](https://qiita-image-store.s3.amazonaws.com/0/123644/aa078d4a-0991-3140-3b35-72c7145153c4.png)

**アプリが起動されました！**

**起動したアプリに Web ブラウザでアクセスしてみましょう！**

![arukas_ucp_endpoint_big_app.png](https://qiita-image-store.s3.amazonaws.com/0/123644/3d24f769-7849-b635-87d1-32c2e3993f0f.png)

**アプリの Endpoint（エンドポイント）に表示されている URL をクリック！** 

![sl-app.png](https://qiita-image-store.s3.amazonaws.com/0/123644/7536b889-54ec-04c8-bcbd-66b2108584f5.png)

**SL が表示されました！** 

**ほかのアプリの起動も試してみましょう！** 

## ４．シェル芸

![arukas_ucp_app_shellgei.png](https://qiita-image-store.s3.amazonaws.com/0/123644/21c2a353-b64d-d203-ab04-68d2fb221453.png)

**次の項目を間違えずに入力してください！**

> **APP Name**（アプリの名前）**：** `shellgei`
> **Image**（Dockerイメージ名）**：** `hisaharu/shellgei`
> **Port**（アプリのポート番号）**：** `8080` `tcp`

![start_button.png](https://qiita-image-store.s3.amazonaws.com/0/123644/96e28f91-11fd-f66b-5ebb-0268c243a589.png) **起動ボタンをクリックすると、アプリがデプロイされます！**

![arukas_ucp_app_shellgei_running.png](https://qiita-image-store.s3.amazonaws.com/0/123644/5830a2ea-8ca9-6d5a-bf15-f72b22b9b08e.png)

**アプリが起動されました！**

**起動したアプリに Web ブラウザでアクセスしてみましょう！**

![arukas_ucp_endpoint_big_app.png](https://qiita-image-store.s3.amazonaws.com/0/123644/3d24f769-7849-b635-87d1-32c2e3993f0f.png)

**アプリの Endpoint（エンドポイント）に表示されている URL をクリック！** 

![arukas_ucp_app_shellgei_console.png](https://qiita-image-store.s3.amazonaws.com/0/123644/d32c1090-ca36-4ea8-d249-ff4b72f96128.png)

**コンソール画面が表示されました！**

![arukas_ucp_app_shellgei_cowsay.png](https://qiita-image-store.s3.amazonaws.com/0/123644/074e4639-8efa-2cca-72a1-3957cc58935d.png)

**コマンド入力もできます！**

**以上、おまけ編でした！**

# まとめ

* **Docker Hub にある Docker イメージをすぐに起動できる。**
* **色々なアプリを起動できる。**
* **入力ミスがあると起動に失敗する。**
* **Docker楽しい！**

# Dockerfile について

**この記事で利用した Dockerイメージは、Docker Hubの下記レポジトリにあります！**

* [uzyexe/reichat](https://hub.docker.com/r/uzyexe/reichat/)
* [uzyexe/tetris](https://hub.docker.com/r/uzyexe/tetris/)
* [uzyexe/sl](https://hub.docker.com/r/uzyexe/sl/)
* [hisaharu/shellgei](https://hub.docker.com/r/hisaharu/shellgei/)


**Docker は、Windows や Mac にもインストールして利用することができます！**

Dockerのインストール手順については、下記ページを参考にしてみてください！

* [**Docker - Install Docker Engine**](https://docs.docker.com/engine/installation/)
* [**Docker ドキュメント日本語化プロジェクト**](http://docs.docker.jp/index.html)

**自分でDockerイメージを作成したい！というときには、下記の記事も参考にしてみてください！**

* [**Qiita - 効率的に安全な Dockerfile を作るには**](http://qiita.com/pottava/items/452bf80e334bc1fee69a)

# おまけ編 - 完

* **[前のハンズオンに戻る（Arukasハンズオン資料 - 基本操作編）](http://qiita.com/uzyexe/items/57a699416af2e2e19c2c)**
* **[次のハンズオンに進む（Arukasハンズオン資料 - サービス連携編）](http://qiita.com/uzyexe/items/d621aef8e5023936824a)**