Docker Hello World
NODE-Setagaya #11 / @ftakao2007
Dockerとは
Docker社(旧dotCloud)が開発する
オープンソースのコンテナ管理ソフトウェア
Dockerの魅力
• アプリケーションを少ないリソースで効率良く実行できる
• 開発環境が簡単に用意でき、かつ本番環境と共通化できる

-> プロダクション環境に転送、実行すると手元で設定した

アプケーションがそのままプロダクションで動く
...
Docker1.0からの変更点
• これまでのDocker(ソフトウェア)は「Docker Engine」と呼ばれるようになる

-> 「Docker」は「Docker Engine」やDocker社が提供するWebサービス

「Docker ...
やってみる
1.ローカルでRedmineを動かす
2.AWSへデプロイする
※ ローカル環境はMacBookAir(marvericks)です
※ たまにコピペ実行できない箇所があるようです
1.ローカルでRedmineを動かす
1-0. gitのインストール
1-1. VirtualBoxインストール
1-2. Vagrant インストール
1-3. CoreOSインストール
1-4. Vagrantfile編集
1-5. dock...
1.ローカルでRedmineを動かす
1-0. gitのインストール
1-0-1. Homebrewのインストール
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/g...
1.ローカルでRedmineを動かす
1-1. VirtualBoxインストール
公式サイトのDownload VirtualBoxから

「VirtualBox 4.3.12 for OS X hosts x86/amd64」

をクリックし...
1.ローカルでRedmineを動かす
1-2. Vagrant インストール
DOWNLOAD VAGRANTから

「Universal (32 and 64-bit)」

をクリックしてdmgファイルをダウンロードして実行
※ 公式のインス...
1.ローカルでRedmineを動かす
1-3. CoreOSインストール (Dockerありきの小さなOS)
mkdir /work
cd /work
git clone https://github.com/coreos/coreos-vag...
1.ローカルでRedmineを動かす
1-4. Vagrantfile編集
vi Vagrantfile
̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶-
config.vm.network :forwarded_port, guest: ...
1.ローカルでRedmineを動かす
1-5. dockerでRedmineを立ち上げる
vagrant up
vagrant ssh
※CoreOSのイメージを立ち上げてsshでログインする
※ 初回の起動はイメージのダウンロードに時間がかか...
1.ローカルでRedmineを動かす
1-5. dockerでRedmineを立ち上げる
docker pull sameersbn/redmine:latest
※ redmineのコンテナイメージをダウンロード
※ 容量は多めでダウンロード...
1.ローカルでRedmineを動かす
1-5. dockerでRedmineを立ち上げる
git clone https://github.com/sameersbn/docker-redmine.git
cd docker-redmine/
...
1.ローカルでRedmineを動かす
1-5. dockerでRedmineを立ち上げる
ブラウザから
http://localhost:3000
にアクセスする
※ 正しく設定されているとRedmineの画面が表示される
【脱線】手作業でインストールする場合
※ 数年前の手順をまとめたマインドマップ抜粋
など気にせねばならず、現時点のOSやソフトウェアで

この通り構築しても素直にRedmineが動く気がしません。。
• OSの種類やバージョン
• ソフトウェア...
2.AWSへデプロイする
1-0. Docker Hubにアカウント作成
1-1. Docker Hubにリポジトリ作成
1-2. docker image作成とDocker Hubへpush
1-3. Dockerrun.aws.jsonファ...
2.AWSへデプロイする
1-0. Docker Hubにアカウント作成
※旧docker index
2.AWSへデプロイする
1-1. Docker Hubにリポジトリ作成
※ [ユーザ名 / タグ名] の命名規則が一般的
2.AWSへデプロイする
1-2. docker image作成とDocker Hubへpush
docker commit -m first commit" redmine ftakao2007/nodesetagaya
docker imag...
2.AWSへデプロイする
1-3. Dockerrun.aws.jsonファイル作成
vi Dockerrun.aws.json
̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶-
{
"AWSEBDockerrunVersion": ...
2.AWSへデプロイする
1-4. Elastic Beanstalkにデプロイ
Elastic Beanstalkのリンクをクリック

※以下選択肢と入力した内容抜粋


Create New Environment
!
「Environme...
2.AWSへデプロイする
1-4. Elastic Beanstalkにデプロイ
「Environment Information」
Environment name: myFirstElasticBeans-env (デフォルト)
Envir...
2.AWSへデプロイする
1-4. Elastic Beanstalkにデプロイ
「Environment Tags」
全て空欄のままNext
!
「Review」
Launchをクリック
!
10分ほど待つ
HealthがGreenになったら...
2.AWSへデプロイする
Redmineの画面が表示される
1-4. Elastic Beanstalkにデプロイ
※ 課金されますので試したあとはアプリを忘れず削除してください
参考ページ
• Linux女子部 Dockerを支える技術

Dockerの技術的な内容解説

• いまさら聞けないDocker入門

Docker1.0についてのわかりやすい説明

• Dockerで何が変わるのか

ベンダーロックが無くなる...
Upcoming SlideShare
Loading in …5
×

Docker Hello World

5,401 views
5,114 views

Published on

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

Published in: Travel
0 Comments
12 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,401
On SlideShare
0
From Embeds
0
Number of Embeds
77
Actions
Shares
0
Downloads
17
Comments
0
Likes
12
Embeds 0
No embeds

No notes for slide

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で何が変わるのか
 ベンダーロックが無くなることについてなど

×