Slide 1

Slide 1 text

エバンジェリストチーム 横田真俊(@Wslash) さくらインターネット株式会社 初心者向けDockerデモ ~ Gunma.web版 ~ はじめて触る Docker入門 2017/01/21

Slide 2

Slide 2 text

自己紹介 氏名 横田真俊(@Wslash) 「さくらのインターネット」の エバンジェリスト 兼 さくらのクラウド企画担当です。 年に50回ほどのセミナーやハンズオンなどを担当しています。 出身高校は高崎北高校、出身中学は中尾中です。 2

Slide 3

Slide 3 text

他にもこんな本を書いております インフラエンジニア向けの 本も書きました。 3

Slide 4

Slide 4 text

商 号 さくらインターネット株式会社 本 社 所 在 地 大阪市中央区南本町一丁目8番14号 設 立 年 月 日 1999年8月17日 (サービス開始は1996年12月23日) 上 場 年 月 日 2005年10月12日(マザーズ) 2015年11月27日(東証一部へ市場変更) 資 本 金 8億9,530万円 従 業 員 数 361名(連結) (※2016年6月末日現在) 会社プロフィール 会社概要 インターネットインフラの提供を事業ドメインとして、 大阪、東京、北海道の3都市に5つのデータセンターを展開 1996年12月に現社長の田中邦裕が、 舞鶴高専在学中に学内ベンチャーとして創業。 1999年8月に株式会社を設立。10月には、第1号 となるデータセンターを大阪市中央区に開設。 2005年10月に東京証券取引所 マザーズ市場に上場。 2011年11月、北海道石狩市に国内最大級の 郊外型大規模データセンターを開設。 石狩データセンター開設 2011 東証マザーズ上場 2005 1996 1999 ・株式会社を設立 2015年11月に東京証券取引所 市場第一部に市場変更。 東証一部に市場変更 2015 さくらインターネット創業 ・最初のデータセンター開設 5

Slide 5

Slide 5 text

(C) Copyright 1996-2017 SAKURA Internet Inc 5

Slide 6

Slide 6 text

既存サービスの売り上げ比率 6

Slide 7

Slide 7 text

ここ5年で「VPS・クラウド」が売り上げ比率1位に 7

Slide 8

Slide 8 text

直近のさくらインターネットのトピック 8

Slide 9

Slide 9 text

「さくらのレンタルサーバ」12周年で契約件数が40万件を突破 9

Slide 10

Slide 10 text

さくらのレンタルサーバでグループウェア提供(β) 10

Slide 11

Slide 11 text

11

Slide 12

Slide 12 text

すべてを自社でやるのは 現実的でしょうか? ネットワークとデータをやり取りしたいだけなのに、 やらなければならないことが多すぎる 通 信 ネ ッ ト ワ ー ク D B ミ ド ル A P I

Slide 13

Slide 13 text

2017/1/21 (C) Copyright 1996-2016 SAKURA Internet Inc 13 既存の事業領域/スキルセットの大幅な変更なく モノ/サービスづくり、連携に注力可能 さくらのIoT Platformが 実現したいこと 通信⇔データ連携 隠蔽

Slide 14

Slide 14 text

2017/1/21 (C) Copyright 1996-2017 SAKURA Internet Inc 14 さくらインターネット 世の中の IoT プラットフォーム 企画・アイディア モノ(製造) センサー データの送信手段 安全な通信経路 プラットフォーム (基本機能) 管理UI 連携API 「データを迎えに行く」という発想 モノに組み込めば、電源を入れるだけで利用可能 接続知識や現地の有線/無線LAN環境も不要 さくらのIoT Platform の特徴

Slide 15

Slide 15 text

2017/1/21 (C) Copyright 1996-2017 SAKURA Internet Inc 15 単体方式:SCM-LTE-beta 定価 9,960 円 100万回プラットフォームとデータ送受信可能な ポイント※付き RP=RelationPoint さくらのIoTプラットフォーム利用時に消費されるポイント 1分間に1つデータ(RM)をプラットフォームとやり取りすると 約2年間利用することが可能 さくらの通信モジュール

Slide 16

Slide 16 text

2017/1/21 (C) Copyright 1996-2017 SAKURA Internet Inc 16 定価8,000円 ブレイクアウトボード(検証ボード) SCO-BB-01 定価 5,000円 Aruduinoシールドボード SCO-ARD-01 さくらの通信モジュールオプション

Slide 17

Slide 17 text

2017/1/21 (C) Copyright 1996-2016 SAKURA Internet Inc 17 β提供記念 キャンペーン

Slide 18

Slide 18 text

2017/1/21 (C) Copyright 1996-2016 SAKURA Internet Inc 4,980円 単体方式 SCM-LTE-beta 2,500円 4,000円 Aruduino シールドボード SCO-ARD-01 9,960円 5,000円 8,000円 さくらの通信モジュール及びオプション 半 額 100万回プラットフォームと データ送受信可能なポイント※付き 88 ブレイクアウトボード (検証ボード) SCO-BB-01

Slide 19

Slide 19 text

Dockerとは何か? 19

Slide 20

Slide 20 text

2

Slide 21

Slide 21 text

2 「コンテナ」と仮想化の違い

Slide 22

Slide 22 text

今までの仮想化(1) 「ホストOS仮想型」 22 ホストOSの上で「仮想化ソフト」を動かすタイプ ホストOSとアプリを共存できるのでPCからの個人利用の形 で多いが、ホストの負荷が大きい ホスト形仮想化ソフト (VirtualBOXなど) OS (1) OS(2) OS(3) アプリ アプリ アプリ ホストOS(Windows/Linuxなど) アプリ

Slide 23

Slide 23 text

今までの仮想化(2) 「ハイパーバイザー型」 23 ホストOSの代わりに「ハイパーバイザー」が仮想サーバを 制御する。ホストサーバ全体を仮想化で利用するため、ホス トOSを経由しないためホストOS型よりレスポンスが良い ハイパーバイザー (VMWareなど) OS (1) OS(2) OS(3) アプリ アプリ アプリ

Slide 24

Slide 24 text

「コンテナ」 24 OSの代わりに各コンテナがアプリを稼動させます。今まで より一番ホストマシンの処理負荷が低い コンテナ管理ソフトウェア (Dockerなど) コンテナ(1) コンテナ(2) コンテナ(3) アプリ アプリ アプリ ホストOS(Linux) アプリ

Slide 25

Slide 25 text

25 Docker Engine Linux Kernel ・namespaces ・cgroups LXC libcontainer runC containerd v0.9~ v1.11~ Version 7 Unix chroot jail dockerd v1.12~ デーモン ライブラリ ランタイム docker daemon ・SELinux ・capabilities … etc Docker: the container engine v1.11~ カ ー ネ ル ネ ー ム ス ペ ー ス シ ー グ ル ー プ エ ス イ ー リ ナ ッ ク ス ケ ー パ ビ リ テ ィ エルエックスシー リ ブ コ ン テ ナ ラ ン シ ー ド ッ カ ー デ ー モ ン コ ン テ ナ デ ィ ー ド ッ カ ー デ ィ ー ド ッ カ ー エ ン ジ ン オ ー プ ン コ ン テ ナ イ ニ シ ア テ ィ ブ

Slide 26

Slide 26 text

2 何がうれしいのか?

Slide 27

Slide 27 text

よく言われるDocker(コンテナ)のメリット •処理速度が速い → OSやハードウェアを仮想化していないため オーバーヘッドが少なく処理能力が高い •メモリやディスクの消費量をおさえられる → それぞれにカーネルを持たないため メモリ/ディスクの消費量をおさえられる。 •ポータビリティ → 環境を意識せず使える 2

Slide 28

Slide 28 text

DockerのWebページに行くと… 2 DockerのWebページにある「BUOLD,SHIP,RUN」とは?

Slide 29

Slide 29 text

2

Slide 30

Slide 30 text

3 デモ

Slide 31

Slide 31 text

31 $ docker Docker Hub Nginx Build Run Ship 開 発 ・ 構 築 移 動 実 行 今日やること

Slide 32

Slide 32 text

• 基本操作とコンテナ作成・デプロイ方法を習得 32 1. さくらのクラウド にログイン 2. 仮想サーバ(CentOS 7.2)の起動 3. Docker Engine のセットアップ 4. docker コマンドの基本操作を学ぶ 5. Nginx イメージを作成 6. Docker Hub にログイン 7. Docker Hub に push 8. Arukas に Nginx をデプロイ $ docker Docker Hub Nginx デモの流れ

Slide 33

Slide 33 text

Dockerをインストールする 33

Slide 34

Slide 34 text

Dockerをインストールするサーバについて 3 今回はCentOS 7系でインストールします 今日の資料は別途、公開いたします 2万円クーポンを配るのでそれで復習できます

Slide 35

Slide 35 text

サーバにDockerをインストールする 3 とりあえず「yum -y update」でパッケージ情報を最新にする yum -y update

Slide 36

Slide 36 text

サーバにDockerをインストールする 3 「curl -fsSL https://get.docker.com/ | sh」とコマンドを入れるとDocker のインストールがはじまります。 curl -fsSL https://get.docker.com/ | sh

Slide 37

Slide 37 text

Dockerを開始する 3 サービスを有効します。 systemctl enable docker.service

Slide 38

Slide 38 text

Dockerを開始する 3 「systemctl start docker」とコマンドを入れるとDockerが動きます systemctl start docker

Slide 39

Slide 39 text

Dockerがインストールされているか確認 3 「docker version」と入力してDockerのバージョンが表示されれば、 Dockerが正常にインストールされています。 docker version

Slide 40

Slide 40 text

4 コンテナを起動する「docker run」

Slide 41

Slide 41 text

docker run ■docker run コマンド → 指定したイメージのコンテナを起動する ■構文 → docker run イメージ [オプション][コマンド][引数] ■オプション → -d バックグランドで実行 → -i コンテナの標準入力を開く → -t ttyを確保する → -p ポートフォワード 4

Slide 42

Slide 42 text

Hello World 4 ちゃんとDockerが動くか「hello world」を動かしてみたいと思います。 上記のコマンドを入力してください。 docker run hello-world

Slide 43

Slide 43 text

docker run hello-worldの結果 4 「hello world」の入力が終わると「docker run –it ubuntu bash」を試し てみろ、と言われているので、これを入力してみましょう。

Slide 44

Slide 44 text

ubuntuを入れてみる 4 Dockerの上でUbuntuを入れて、コマンド入力ができるようにしてみる。 「-it」で、コンテナの中で入力できるようになる。 docker run -it ubuntu bash

Slide 45

Slide 45 text

ubuntuを入れてみる 4 上記コマンドでコンテナで作られたUbuntuのバージョンがわかります cat /etc/issue

Slide 46

Slide 46 text

Dockerを利用することでCentOS上でubuntuを利 用することができます。 ただし、このubuntuには、ほとんどコマンドが 入っていません。 例えば「curl ifconfig.me/ip」を叩くと、なにも表 示されないと表示されます。 4

Slide 47

Slide 47 text

4

Slide 48

Slide 48 text

起動したubuntuにcurlを利用できるようにする 4 「apt-get update」を叩いた後「apt-get install curl」で「curl」をインス トールしてください。インストール中、色々と聞かれますがとりあえずyを 押して下さい。 apt-get update apt-get install curl (1) (2)

Slide 49

Slide 49 text

Curlがインストールされていることの確認 4 「curl ifconfig.me/ip」でIPを表示してみる curl ifconfig.me/ip

Slide 50

Slide 50 text

作成したコンテナから出る 5 「exit」をコマンドを叩くとコンテナから出て、このコンテナが止る。 コンテナが止ると今までやった作業(apt-getとか)は保存されない。 exit

Slide 51

Slide 51 text

再度、コンテナを動かすと… 5 再度コンテナを起動して「curl ifconfig.me/ip」を入力してください。これ を入力しても、先ほどのように実行されないはずです。 docker run -it ubuntu bash curl ifconfig.me/ip (1) (2)

Slide 52

Slide 52 text

コンテナについて •exitするだけで、今までの動作が消えてしまう ので、このままだと使えないです。 •次はバックグランドでDockerのコンテナを利 用する方法について解説します。 5

Slide 53

Slide 53 text

5 バッググランドでコンテナを動かす

Slide 54

Slide 54 text

今の時刻を毎秒表示するコンテナを起動する 5 上記のコンテナを起動すると、時刻を1秒ごとに表示するコンテナが表示さ れる。しばらく動かしてみて「ctrl + C」で止めてください。 docker run jpetazzo/clock

Slide 55

Slide 55 text

さきほどのコンテナをバックグランドで動かす 5 コンテナをバックグランドで動かすにはrunコマンドに「-d」をつける。 上記のコマンドを入力すると、先ほどのように時刻は表示されずバックグラ ンドで動いており、ログは記録されている。 docker run -d jpetazzo/clock

Slide 56

Slide 56 text

5 docker psでコンテナを確認する

Slide 57

Slide 57 text

docker ps ■docker ps コマンド → コンテナIDを確認するためコマンド。これでわかる ものは ・コンテナのID ・コンテナがどのイメージから作られたのか? ・コンテナが動いてどのぐらい経過したのか? ■オプション → -l 直近(latest)のコンテナの情報を表示 → -q コンテナのショートIDのみ表示 → -a 停止しているコンテナも含め全て(all)表示 5

Slide 58

Slide 58 text

docker psでコンテナの確認 5 docker psを入力すると、現在動いているコンテナの情報が見られる 現在のところ起動しているコンテナは「jpetazzo/clock」のみのはず docker ps

Slide 59

Slide 59 text

docker ps -aで今まで起動したコンテナを確認 5 docker ps –aを入力すると今まで起動したコンテナが確認できる。 docker ps -a

Slide 60

Slide 60 text

docker psのオプション 6 「docker ps -l」で直近に操作したコンテナを表示し「docker ps -q」でコ ンテナのショートIDが表示される。 docker ps -l docker ps -q (1) (2)

Slide 61

Slide 61 text

6 docker logsでコンテナ のログを確認する

Slide 62

Slide 62 text

docker logs ■docker logs コマンド → コンテナの標準出力の内容をコンテナ外から 確認する ■オプション → -tail ログの最後数行が見られるようになる → -follow リアルタイムでログが確認できる。 6

Slide 63

Slide 63 text

docker logs 6 「docker logs(コンテナのID)」を入力すると、コンテナの標準出力が見 られる。先ほどバックグランドで動かした「 jpetazzo/clock 」のコンテナ IDを入力してみましょう。 docker logs (コンテナのID)

Slide 64

Slide 64 text

docker logsのオプション 6 「-- tail」オプションを使うことで、ログの最後数行が見られるようになる。 例えば、(1)のコマンドはログの最後3行を出すコマンドとなる。 docker logs --tail 3 (コンテナのID)

Slide 65

Slide 65 text

リアルタイムでログを見る 6 docker logs --tail 1 --follow (コンテナのID) Unixコマンドのtail -fのようにfollowオプションをつけることでリアルタイ ムでログを確認することができる。上記のコマンドを入力するとリアルタイ ムでログが表示される。止めるには「Ctrl + C」で

Slide 66

Slide 66 text

6 docker kill、docker stopで コンテナを止める

Slide 67

Slide 67 text

コンテナの停止 6 「-d」で動作したコンテナを止めるにはkillかstopを使う。今回はkillコマン ドで、先ほどのコンテナを止めてください。 docker kill (コンテナのID) docker stop (コンテナのID) (1) (2)

Slide 68

Slide 68 text

停止したコンテナを確認する 6 「docker ps」で先ほど止めたコンテナのIDが無いことを確認してください 「docker ps –a」で止めたコンテナも確認できます。 docker ps docker ps -a (1) (2)

Slide 69

Slide 69 text

Docker上でGhostを インストールする 69

Slide 70

Slide 70 text

70 これだけではつまらないので アプリを入れてみましょう

Slide 71

Slide 71 text

Ghostとは? 71 「Ghost」は最近、人気が出ているNode.js製の軽量ブログエンジンです。 今回はDockerを利用して、コマンド1発でインストールします。

Slide 72

Slide 72 text

通常でGhostをインストールするのに必要なもの 72 • Node.jsとnpm • ApacheとかのWebサーバ • その他、色々 「Ghost」をインストールして利用するには上記のような物を色々とインス トールする必要があり面倒です。

Slide 73

Slide 73 text

DockerからGhostを入れる 73 Ghostを80番ポートで利用できるようにします。元々Ghostは2368番ポート で動いているので80番ポートとマッピングさせます。 docker run -p 80:2368 -d ghost

Slide 74

Slide 74 text

インストールが終わったらIPアドレスをいれる 74 インストールが終わったら「(IPアドレス)」をブラウザで入力してください。 上記のような「画面」が表示されます。「(IPアドレス)/admin」でGhostの セットができます。

Slide 75

Slide 75 text

docker psでコンテナIDを調べる 75 起動を確認したら、このコンテナを止めてみましょう。コンテナの止め方は 「docker stop (コンテナのID)」で止りますので「docker ps」でコンテナ IDを調べます。 docker ps

Slide 76

Slide 76 text

docker psでコンテナIDを調べる 76 「docker ps」を入力して「CONTANER ID」を確認する。

Slide 77

Slide 77 text

docker psでコンテナIDを調べる 77 「docker stop (コンテナのID)」を入力すると、ghostのコンテナが止りま す。(先ほどの例だと07a4e04f6418となります。) docker stop (CONTANER ID)

Slide 78

Slide 78 text

nginx dockerイメージの作成 78

Slide 79

Slide 79 text

79 ここからはnginxを例にして、 Dockerイメージの作成を行います

Slide 80

Slide 80 text

Dockerを利用してnginxを起動する 80 「nginxを立ち上げる docker run -itd -p 80:80 nginx:latest

Slide 81

Slide 81 text

Dockerを利用してnginxを起動する 81 起動が出来たらブラウザからIPアドレスを入力し、上記の画面が表示される のを確認する

Slide 82

Slide 82 text

docker exec ■docker exec コマンド → 実行中のコンテナでコマンドを実行します。 ■構文 → docker exec [オプション] コンテナ コマン ド [引数...] ■オプション → -d コマンドをバックグラウンドで実行 8

Slide 83

Slide 83 text

docker exec コマンドで bash の追加プロセスを実行 83 docker exec コマンドで bash の追加プロセスを実行。 docker exec -it $(docker ps -ql) /bin/bash

Slide 84

Slide 84 text

ps -ef コマンドで、nginx コンテナの中での操作を確認。 84 コンテナの中でnginxが動いているのを確認する ps -ef

Slide 85

Slide 85 text

85 上記のようになっている事を確認

Slide 86

Slide 86 text

Nginx のドキュメント・ルートにある index.html を書き換えます。 86 Nginx のドキュメント・ルートにある index.html を書き換えhello world が表示されるようにします echo 'hello world' > /usr/share/nginx/html/index.html cat /usr/share/nginx/html/index.html

Slide 87

Slide 87 text

ページの表示確認 87 ブラウザで表示を確認します。画面に hello world が表示されます。

Slide 88

Slide 88 text

exitでbashを終了する 88 exitでbashを終了する。 exit

Slide 89

Slide 89 text

89 変更したnginxコンテナから イメージを作成してみましょう

Slide 90

Slide 90 text

Docker コンテナとDocker イメージの違い ・「Docker run」をコマンドを叩くとDocker イメージからDocker コンテナが作られる ・Dockerイメージは読み込みのみ可能(read- only)。変更はできない。 ・Dockerコンテナは、読み書きができるファイ ルシステム 9

Slide 91

Slide 91 text

新しいイメージを作るには 91 ・docker commit → コンテナからDocker イメージを作る。 ・docker build → Docker fileからDockerイメージを作る。 ・docker import → Base imageからDockerイメージをつくる。

Slide 92

Slide 92 text

docker commit ■docker commit コマンド →コンテナの変更を元に新しいイメージを作成 ■構文 → docker commit [オプション] コンテナ [リポジトリ[:タグ]] 9

Slide 93

Slide 93 text

docker commitでイメージを作る 93 docker commit コマンドで mynginx:1.0 イメージを作成します。 docker commit $(docker ps -ql) mynginx:1.0

Slide 94

Slide 94 text

docker images ■docker images コマンド →ローカルにあるイメージを一覧表示します。 ■構文 → docker images [オプション] [リポジトリ[:タグ]] 9

Slide 95

Slide 95 text

docker images で利用してきたイメージを見てみる 95 docker images コマンドで、先ほど作ったイメージ「mynginx:1.0」が作 成されたのを確認します。 docker images

Slide 96

Slide 96 text

docker images で利用してきたイメージを見てみる 96 docker docker run -d -p 8080:80 mynginx:1.0 docker run -d -p 8080:80 mynginx:1.0

Slide 97

Slide 97 text

curlコマンドからちゃんと起動しているか確認をする 97 curl コマンドで、コマンドライン上でポート 8080 を開きます。 (ブラウザでポートを指定して確認しても良いです。) curl http://localhost:8080

Slide 98

Slide 98 text

Dockerfileを利用して、 Dockerイメージを作る 98

Slide 99

Slide 99 text

自分が使用したイメージの表示 99 このコマンドを入力すると、過去に利用したDockerイメージが表示されます docker images

Slide 100

Slide 100 text

100 Dockerfileを利用して、 Dockerイメージを作る。

Slide 101

Slide 101 text

Dockerfile? ・DockerfileはDockerイメージを作るためのレ シピのようなものです。 ・ Dockerfileは作成するDockerイメージの内容 をテキスト形式で記述します。 ・作成したテキストファイルはdocker buildコ マンドで読み込んでDockerイメージの作成を実 行します。 10

Slide 102

Slide 102 text

Dockerfileを書いてみる 10 作業用ディレクトリ mynginx を作成し、移動します。 mkdir mynginx cd myimage (1) (2)

Slide 103

Slide 103 text

簡単なDockerfileを作る 10 次のコマンドを実行し、 Dockerfile を作成します。 tee ./Dockerfile <<-'EOF' FROM nginx:latest RUN echo "hello world
$(date)" > /usr/share/nginx/html/index.html EOF

Slide 104

Slide 104 text

docker build ■docker build コマンド → DockerfileからDockerイメージを作る ■構文 docker build –t :<タ グ名> 10

Slide 105

Slide 105 text

docker build 105 docker build コマンドで mynginx:1.1 イメージを自動作成します。 docker build -t myimage . docker build -t mynginx:1.1 .

Slide 106

Slide 106 text

106 Successfully built <イメージID>が出れば、イメージの作成成功

Slide 107

Slide 107 text

docker build 107 docker images コマンドで、イメージが作成されたのを確認します。 docker images

Slide 108

Slide 108 text

docker build 108 作成した mynginx:1.1 イメージを使って、新しいコンテナを実行します。 docker run -d -p 8888:80 mynginx:1.1

Slide 109

Slide 109 text

docker build 109 curl コマンドで、コマンドライン上でポート 8888 を開きます。 curl http://localhost:8888

Slide 110

Slide 110 text

作成したDockerイメージを Docker Hubにアップロードする 110

Slide 111

Slide 111 text

Docker Hubにアクセス 11 https://hub.docker.com/ からDocker IDを登録し、ログインします。

Slide 112

Slide 112 text

Docker Hub にログインします。 112 上記コマンドでDocker Hub にログインできます。 docker login

Slide 113

Slide 113 text

docker tags コマンド 113 docker tags コマンドで mynginx:1.1 イメージに Docker Hub ID の情報 を付けます docker tag mynginx:1.1 <自分のID名>/mynginx:1.1

Slide 114

Slide 114 text

docker imges コマンド 114 docker images で確認します。先ほどタグづけしたイメージを確認いたし ます。 docker images

Slide 115

Slide 115 text

docker Push コマンド 115 docker push コマンドでイメージを送信します。 docker push <自分のID名/mynginx:1.1>

Slide 116

Slide 116 text

116 コンテナ等をまとめて処理する

Slide 117

Slide 117 text

docker build 117 上記コマンドから実行しているコンテナをまとめて終了させられます docker kill $(docker ps -q)

Slide 118

Slide 118 text

docker build 118 上記コマンドでコンテナ(コンテナ用のイメージ・レイヤとメタ情報)を削 除します。 docker rm $(docker ps -aq)

Slide 119

Slide 119 text

119 不要なイメージの削除

Slide 120

Slide 120 text

docker images -q 120 docker images -q を実行すると、ローカルにあるイメージ ID を表示します docker images -q

Slide 121

Slide 121 text

docker images -q 121 docker images -q を実行すると、ローカルにあるイメージ ID を表示します docker images -q

Slide 122

Slide 122 text

docker rmi 122 docker rmi とdocker images –aqを利用して全てのイメージを削除します。 docker rmi -f $(docker images -aq)

Slide 123

Slide 123 text

Docker Hubにアップロードした イメージをArukasで実行する 123

Slide 124

Slide 124 text

Arukasとは DockerイメージをDocker最適化したArukasインフラで稼働 12

Slide 125

Slide 125 text

12

Slide 126

Slide 126 text

126 Arukasの利用方法

Slide 127

Slide 127 text

ログイン 127 https://app.arukas.io/から新規登録を行い、登録が完了したらログインをしてくだ さい

Slide 128

Slide 128 text

アプリの作成 128 ログインをしたら「新しいアプリケーションを作成」をクリック

Slide 129

Slide 129 text

12 Imgesに「 /mynginx:1.1 」← 1.1 のタグを忘れずに Portに「80」を入力をして、一番下の「アプリケーションを作成」をクリックする

Slide 130

Slide 130 text

13 ダッシュボードに戻り、作成したアプリの「起動ボタン」をクリックする。

Slide 131

Slide 131 text

起動状態 13 起動状態になったら「Endpoint」をクリックして、nginxが動いているか確認する

Slide 132

Slide 132 text

まとめ 132

Slide 133

Slide 133 text

まとめ Docker の基本コマンドをデモしました。 Dockerを利用すると開発環境から 本番環境への移動が便利です 133

Slide 134

Slide 134 text

134 ご静聴ありがとうございました。 「さくらのクラウド 2万円クーポン」を配布いたします。 今日の復習にご利用ください

Slide 135

Slide 135 text

13 ご清聴ありがとうございました http://cloud.sakura.ad.jp

Slide 136

Slide 136 text

おまけ

Slide 137

Slide 137 text

Dockerを利用してWordPressを 構築する。 137

Slide 138

Slide 138 text

Wordpressをインストールしてみる 138 上記のコマンドを入力すると、色々とダウンロードがはじまる。 docker run wordpress

Slide 139

Slide 139 text

Wordpressをインストールしてみる 139 エラーが出てWordPressが起動できない、どうやらMySQLが必要な様子。 というわけで、MySQLのコンテナを持ってくる。

Slide 140

Slide 140 text

MySQLイメージのダウンロード 140 「docker pull [イメージ名]」でイメージのダウンロードがはじまります。 ちなみに「docker run [イメージ名]」をした時にローカルにコンテナイメー ジがないと自動的にダウンロードされます docker pull mysql

Slide 141

Slide 141 text

MySQLの設定 141 わかりやすいように –eを利用することでMySQLのパスワードの設定が可能 となります。(パスワード)には、任意のパスワードを入れてください docker run --name mysql -e MYSQL_ROOT_PASSWORD=(パスワード) -d mysql

Slide 142

Slide 142 text

Wordpressの立ち上げ 142 上記のコマンドを入力するとWordPressが立ち上がります。「-- link」は、- -link <連携したいコンテナ名>:<エイリアス名>オプションで新しいコンテ ナを起動すると,そのコンテナ内で連携したいコンテナのポート番号やIPを 環境変数として利用できるという機能です docker run --name wordpress --link mysql:mysql -p 80:80 wordpress

Slide 143

Slide 143 text

143 インストールに成功するとこんな画面が出てきます。

Slide 144

Slide 144 text

ブラウザでIPアドレスにアクセス 144

Slide 145

Slide 145 text

145 「-d」を指定していないので「ctrl + c」を入力すると、このコンテナ自体 も停止してしまいます。 それでは、次はバッグランドでWordPressを起動してみましょう。 ただし、同じ名前のコンテナ(--name以下)は作れないので、名前を変えて みましょう。

Slide 146

Slide 146 text

146 Docker Compose

Slide 147

Slide 147 text

Docker Composeとは? 147 Docker Composeは、複数のコンテナか ら構成するサービスを従来よりも簡単に 構築できるツールです。 従来はコンテナを作成するには、いちい ち「docker run」しなければならなかっ たのが、コマンド1発で複数のコンテナ を利用したサービスを構築できます。

Slide 148

Slide 148 text

148 Docker Composeを利用して Rocket.Chatの環境を構築する

Slide 149

Slide 149 text

Docker composeのバイナリをセットする。 149 上記のコマンドを入力して、Docker Composeのバイナリをセットする curl -L https://github.com/docker/compose/releas es/download/1.8.0/docker-compose- `uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose

Slide 150

Slide 150 text

Docker composeがインストールされたか確認 150 「docker-compose version」を入力すると、Docker composeのバージョ ンが表示される、正しくインストールされれば、このコマンドでバージョン 情報が表示される。 docker-compose version

Slide 151

Slide 151 text

Docker-compose.yamlの作成 151 本来であれば、作業用のディレクトリの中に「docker-compose.yaml」を用 意する必要があるのですが、今回は事前に私の方で作成したので、そちらをク ローンしてください。クローンが終わったら「rocketchat」に移動します。 git clone https://github.com/zembutsu/sakura-cloud- hands-on.git cd sakura-cloud-hands-on/rocketchat

Slide 152

Slide 152 text

イメージを取得する 152 先ほど作成したディレクトリ「rocketchat」の中で「docker-compose pull」を入力。Rocket.Chatに必要なイメージをダウンロードします。 docker-compose pull

Slide 153

Slide 153 text

イメージを取得する 153 エラーが出ていなければ「docker images」を入力して「mongo」と 「rocketchat/rocket.chat」と「rocketchat/hubot-rocketchat」のイメー ジを取得できているか確認をする。 docker images

Slide 154

Slide 154 text

154 エラーが出ていなければ「docker images」を入力して「mongo」と 「rocketchat/rocket.chat」と「rocketchat/hubot-rocketchat」のイメー ジを取得できているか確認をする。 # docker images REPOSITORY TAG IMAGE ID CREATED SIZE mongo latest 7f09d45df511 5 days ago 336.1 MB rocketchat/rocket.chat latest 30826dfbbfa6 2 weeks ago 332.4 MB rocketchat/hubot-rocketchat latest a727f5c88c43 5 weeks ago 800.5 MB

Slide 155

Slide 155 text

Composeを使って複数のコンテナを立ち上げる 155 イメージを取得できていれば「docker-compose up -d」を入力して Rocket.chat起動に必要な複数のコンテナを立ち上げます。 docker-compose up -d

Slide 156

Slide 156 text

「docker ps」を入力して動作を確認する 156 「docker-compose up -d」でコンテナを立ち上げた後「docker ps」で、 正常に動作しているか確認する。 docker ps

Slide 157

Slide 157 text

ブラウザで「IPアドレス」を入力する 157 正常に動作していれば、ブラウザに http://サーバのIPアドレス:3000/ を入 力すれば、Rocket.Chat ログイン画面が表示されます。「新しいアカウント を登録」をクリック後、名前、メールアドレス、パスワードを入力します。

Slide 158

Slide 158 text

Wordpressの立ち上げ 158 上記のコマンドを入力するとWordPressが起動します。起動するのを確認し たら、docker killで落としてみましょう。 docker run --name wordpress2 -d --link mysql:mysql -p 80:80 wordpress