Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Docker Hello World

5,952 views

Published on

ローカル環境のdockerにRedmineをインストール。
その後Docker Hubを経由し、AWSにデプロイします。

Published in: Travel
  • Be the first to comment

Docker Hello World

  1. 1. Docker Hello World NODE-Setagaya #11 / @ftakao2007
  2. 2. Dockerとは Docker社(旧dotCloud)が開発する オープンソースのコンテナ管理ソフトウェア
  3. 3. Dockerの魅力 • アプリケーションを少ないリソースで効率良く実行できる • 開発環境が簡単に用意でき、かつ本番環境と共通化できる
 -> プロダクション環境に転送、実行すると手元で設定した
 アプケーションがそのままプロダクションで動く • ベンダーロックインを気にしなくて良い
 -> GoogleのManagedVM, AmazonのElastic Beanstalkなど、
 Dockerをサポートするクラウドベンダーが増えつつある
 -> 利用しているクラウドベンダーが飛んでもすぐ移行対応しやすい
 参考:老舗クラウドストレージサービスの倒産−Nirvanix− • Docker1.0リリース、商用サポートが開始された
 -> 2014年6月より商用サポート開始、ユースケースも
  4. 4. Docker1.0からの変更点 • これまでのDocker(ソフトウェア)は「Docker Engine」と呼ばれるようになる
 -> 「Docker」は「Docker Engine」やDocker社が提供するWebサービス
 「Docker Hub」など、Dockerプラットフォーム全体の総称となる • 「Docker Hub」のサービス開始
 - クラウドサービス(AWS,GCE,etc...)に「Docker Hub API」を介して自動デプロイする機能
 - GitHubやAtlassian Bitbucketなどのソースコード管理サービスと連携して自動ビルドする機能
 - GitHubやAWS、Jenkinsなどと連携するWebhooks機能
 - Dockerイメージを共有する「Docker Hub Registry」
  5. 5. やってみる 1.ローカルでRedmineを動かす 2.AWSへデプロイする ※ ローカル環境はMacBookAir(marvericks)です ※ たまにコピペ実行できない箇所があるようです
  6. 6. 1.ローカルでRedmineを動かす 1-0. gitのインストール 1-1. VirtualBoxインストール 1-2. Vagrant インストール 1-3. CoreOSインストール 1-4. Vagrantfile編集 1-5. dockerでRedmineを立ち上げる
  7. 7. 1.ローカルでRedmineを動かす 1-0. gitのインストール 1-0-1. Homebrewのインストール ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)" (Mac用のyumとかapt-getみたいなもの) 1-0-2. gitのインストール brew install git
  8. 8. 1.ローカルでRedmineを動かす 1-1. VirtualBoxインストール 公式サイトのDownload VirtualBoxから
 「VirtualBox 4.3.12 for OS X hosts x86/amd64」
 をクリックしてdmgファイルをダウンロードして実行 ※ 2014年6月時点ではバージョンは4.3.12 ※ 公式のインストーラーから入れる方法推奨
  9. 9. 1.ローカルでRedmineを動かす 1-2. Vagrant インストール DOWNLOAD VAGRANTから
 「Universal (32 and 64-bit)」
 をクリックしてdmgファイルをダウンロードして実行 ※ 公式のインストーラーから入れる方法推奨
  10. 10. 1.ローカルでRedmineを動かす 1-3. CoreOSインストール (Dockerありきの小さなOS) mkdir /work cd /work git clone https://github.com/coreos/coreos-vagrant/ cd coreos-vagrant
  11. 11. 1.ローカルでRedmineを動かす 1-4. Vagrantfile編集 vi Vagrantfile ̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶- config.vm.network :forwarded_port, guest: 80, host: 3000 ̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶- ※ ブラウザからlocalhostのポート3000にアクセスすると
 CoreOSのポート80に接続するための設定 ※ 上記をVagrantfileの適当な場所に追記 … end ! # add ftakao2007 2014/06/13 config.vm.network :forwarded_port, guest: 80, host: 3000 <-今回はファイルの最後の方に追記 ! end end end
  12. 12. 1.ローカルでRedmineを動かす 1-5. dockerでRedmineを立ち上げる vagrant up vagrant ssh ※CoreOSのイメージを立ち上げてsshでログインする ※ 初回の起動はイメージのダウンロードに時間がかかります。
 月の通信量制限に気をつけてください。
  13. 13. 1.ローカルでRedmineを動かす 1-5. dockerでRedmineを立ち上げる docker pull sameersbn/redmine:latest ※ redmineのコンテナイメージをダウンロード ※ 容量は多めでダウンロードに時間がかかります。
 月の通信量制限に気をつけてください。
  14. 14. 1.ローカルでRedmineを動かす 1-5. dockerでRedmineを立ち上げる git clone https://github.com/sameersbn/docker-redmine.git cd docker-redmine/ docker build --tag="$USER/redmine" . docker run --name redmine -d -p 80:80 sameersbn/redmine:2.5.1 REDMINE_IP=$(docker inspect redmine ¦ grep IPAddres ¦ awk -F'"' '{print $4}') curl http://$REDMINE_IP ※ docker runの -p 80:80 はCoreOSとRedmineコンテナとの間の
 ポートフォワーディング設定。Vagrantfileの設定も合わせると
 ホストPC:3000 → CoreOS:80 → Redmine:80
 となる。 ※ 正しく設定されていると最後のcurlでそれっぽいhtmlが流れる
  15. 15. 1.ローカルでRedmineを動かす 1-5. dockerでRedmineを立ち上げる ブラウザから http://localhost:3000 にアクセスする ※ 正しく設定されているとRedmineの画面が表示される
  16. 16. 【脱線】手作業でインストールする場合 ※ 数年前の手順をまとめたマインドマップ抜粋 など気にせねばならず、現時点のOSやソフトウェアで
 この通り構築しても素直にRedmineが動く気がしません。。 • OSの種類やバージョン • ソフトウェアの種類やバージョン • その他環境の違い
  17. 17. 2.AWSへデプロイする 1-0. Docker Hubにアカウント作成 1-1. Docker Hubにリポジトリ作成 1-2. docker image作成とDocker Hubへpush 1-3. Dockerrun.aws.jsonファイル作成 1-4. Elastic Beanstalkにデプロイ ※ AWSアカウントは既に有る事前提です
  18. 18. 2.AWSへデプロイする 1-0. Docker Hubにアカウント作成 ※旧docker index
  19. 19. 2.AWSへデプロイする 1-1. Docker Hubにリポジトリ作成 ※ [ユーザ名 / タグ名] の命名規則が一般的
  20. 20. 2.AWSへデプロイする 1-2. docker image作成とDocker Hubへpush docker commit -m first commit" redmine ftakao2007/nodesetagaya docker images ※ ユーザ名/tag名のRepositoryができていることを確認 docker push ftakao2007/nodesetagaya ※ Docker Hubにpushされる ※ ftakao2007/nodesetagaya(ユーザ名/tag名)は先ほど自分で作成したものに
 置き換えてください
  21. 21. 2.AWSへデプロイする 1-3. Dockerrun.aws.jsonファイル作成 vi Dockerrun.aws.json ̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶- { "AWSEBDockerrunVersion": "1", "Image" : { "Name" : "ftakao2007/nodesetagaya:latest" }, "Ports" : [{ "ContainerPort": "80" }] } ̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶- ※ 後ほどAWSにアップしますので適当なフォルダに保存しておいてください ※ ftakao2007/nodesetagaya(ユーザ名/tag名)は先ほど自分で作成したものに
 置き換えてください
  22. 22. 2.AWSへデプロイする 1-4. Elastic Beanstalkにデプロイ Elastic Beanstalkのリンクをクリック
 ※以下選択肢と入力した内容抜粋 
 Create New Environment ! 「Environment Type」
 Environment tier: Web Server 1.0 Predefined configuration: Docker Environment type:Single instance ! 「Application Version」 Source: Upload your own (作成したDockerrun.aws.jsonを選択)
  23. 23. 2.AWSへデプロイする 1-4. Elastic Beanstalkにデプロイ 「Environment Information」 Environment name: myFirstElasticBeans-env (デフォルト) Environment URL: NODE-setagaya-test (任意の文字列) Description: NODE-setagaya-test (任意の文字列) ! 「Additional Resources」 全てチェック無しでNext ! 「Configuration Details」 Instance type: t1.micro EC2 key pair: (作成しているkey pairを選択) Email address: (空欄) Instance profile:(デフォルト)
  24. 24. 2.AWSへデプロイする 1-4. Elastic Beanstalkにデプロイ 「Environment Tags」 全て空欄のままNext ! 「Review」 Launchをクリック ! 10分ほど待つ HealthがGreenになったらクリック
  25. 25. 2.AWSへデプロイする Redmineの画面が表示される 1-4. Elastic Beanstalkにデプロイ ※ 課金されますので試したあとはアプリを忘れず削除してください
  26. 26. 参考ページ • Linux女子部 Dockerを支える技術
 Dockerの技術的な内容解説
 • いまさら聞けないDocker入門
 Docker1.0についてのわかりやすい説明
 • Dockerで何が変わるのか
 ベンダーロックが無くなることについてなど

×