Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
(C)Copyright 1996-2014 SAKURA Internet Inc. さくらインターネット 横田真俊(@wslash) 2016/06/16
Slide 2
Slide 2 text
2 氏名 横田真俊(@Wslash) 「さくらのクラウド」の企画担当 兼 エバンジェリストをやっております 年に50回程度の講演・ハンズオンを 行っております 左のアイコンで、ツイッターを やっていますのでお気軽に お声がけください
Slide 3
Slide 3 text
3 Amazon EC2/S3 入門 今は、さくらのクラウド企画担当 をやっていますが、昔はこんな本 を書いていました
Slide 4
Slide 4 text
4 ツイッターやFacebookなど ソーシャルメディアの本 を5冊ほど書いてます
Slide 5
Slide 5 text
5 インフラエンジニア向けの 本も書きました。 6月24日に発売されます
Slide 6
Slide 6 text
Dockerに触っていただき どんなものなのか体験 していただきます 6
Slide 7
Slide 7 text
(C)Copyright 1996-2014 SAKURA Internet Inc.
Slide 8
Slide 8 text
8 ホストOSの上で「仮想化ソフト」を動かすタイプ ホストOSとアプリを共存できるのでPCからの個人利用の形 で多いが、ホストの負荷が大きい ホスト形仮想化ソフト (VirtualBOXなど) OS (1) OS(2) OS(3) アプリ アプリ アプリ ホストOS(Windows/Linuxなど) アプリ
Slide 9
Slide 9 text
9 ホストOSの代わりに「ハイパーバイザー」が仮想サーバを 制御する。ホストサーバ全体を仮想化で利用するため、ホス トOSを経由しないためホストOS型よりレスポンスが良い ハイパーバイザー (VMWareなど) OS (1) OS(2) OS(3) アプリ アプリ アプリ
Slide 10
Slide 10 text
10 OSの代わりに各コンテナがアプリを稼動させます。今まで より一番ホストマシンの処理負荷が低い コンテナ管理ソフトウェア (Dockerなど) コンテナ(1) コンテナ(2) コンテナ(3) アプリ アプリ アプリ ホストOS(Linux) アプリ
Slide 11
Slide 11 text
• 処理速度が速い → OSやハードウェアを仮想化していないためオーバーヘッド が少なく処理能力が早い • メモリやディスクの消費量をおさえられる → それぞれにカーネルを持たないためメモリ/ディスクの 消費量をおさえられる。 • ポータビリティ → 環境を意識せず使える 11
Slide 12
Slide 12 text
12 何がうれしいのか?
Slide 13
Slide 13 text
■検証・使い捨て環境がすぐに使える → 「低コスト」かつ「コマンド1発」で利用できる。 ■環境の統一化 → 開発・運用・ステージングと色々な「環境」を用意せずに コンテナに統一できる。 ■クラウド時代のバズワードが手軽に実現 → イミュータブル、オートスケーリング etc… 13
Slide 14
Slide 14 text
(C)Copyright 1996-2014 SAKURA Internet Inc.
Slide 15
Slide 15 text
15 「コントロールパネル」にログインするには、Webサイトの上部にある 「コントロールパネルログイン」をクリックしてください
Slide 16
Slide 16 text
16 「コントロールパネル」にログインしたら「さくらのクラウドユーザ」 としてログインの箇所にある「ユーザコード」「会員ID」 「パスワード」を入力してください
Slide 17
Slide 17 text
17 無事にログインできたら、このような画面が表示されますので 「さくらのクラウド(IaaS)」をクリックしてください
Slide 18
Slide 18 text
18 さくらのクラウド(IaaS) をクリックすると このような画面が表示されます
Slide 19
Slide 19 text
(C)Copyright 1996-2014 SAKURA Internet Inc.
Slide 20
Slide 20 text
20 ・まずは、CPU 1ギガ、メモリ 1GB、ディスク SSD 20GB、NIC 1のもので OSはCent OS 7.2の物を作成してみましょう
Slide 21
Slide 21 text
21 ・メインメニューより「サーバ」をクリック ・その後「追加」をクリックすると「サーバ作成画面」に移動します
Slide 22
Slide 22 text
22 まず「ホスト名」を入力し、次にサーバプランを選択します。今回はホスト 名は適当に入力し、サーバプランは「1GB/1仮想コア」を選択します。
Slide 23
Slide 23 text
23 ボタンにないプランの場合は「全てのアイテムから選択」を選択すると アイテム一覧が表示され、そこから選択できます
Slide 24
Slide 24 text
24 次に「ディスクプラン」を選択します。今回は「20GB SSDプラン」を選択 します。上記のプランにない物を利用する場合は、サーバと同じように「全 てのアイテムから選択」を選択してください。
Slide 25
Slide 25 text
25 ディスクイメージを選択します、利用したい「OS」を選択してください。 今回は「CentOS 7.2」を利用します。
Slide 26
Slide 26 text
26 接続のネットワークに「インターネット」を選択し「管理ユーザのパスワー ド」でrootのパスワードを入力します。
Slide 27
Slide 27 text
27 全ての入力項目を入力し終わった後「作成」をクリックします
Slide 28
Slide 28 text
28 「操作確認」のダイアログが表示されます。問題が無ければ「作成」をク リックします。
Slide 29
Slide 29 text
29 「作成」をクリックすると上記のダイアログが出てきます。 ステータスが全て成功になるとサーバが作成されます。
Slide 30
Slide 30 text
30 サーバの作成が完了すると、画面の右下にダイアログが表示されます。これ をクリックしてください。
Slide 31
Slide 31 text
31 ダイアログをクリックすると、サーバ情報が表示されます。
Slide 32
Slide 32 text
(C)Copyright 1996-2014 SAKURA Internet Inc.
Slide 33
Slide 33 text
33 ブラウザ内でサーバの操作ができます。作成したサーバの 「コンソール」をクリックしてください。
Slide 34
Slide 34 text
34 画面中央をクリックすると、文字入力ができるようになりま す。rootと先ほど入力したパスワードを入れてください
Slide 35
Slide 35 text
35 「ペースト」を選択すると、文字列のペーストも可能です
Slide 36
Slide 36 text
36 IPアドレスでSSH接続できるので わかる方はそれで接続してください
Slide 37
Slide 37 text
(C)Copyright 1996-2014 SAKURA Internet Inc.
Slide 38
Slide 38 text
38 今回はCentOS 7系でインストールします 今日の資料は別途、公開いたします 2万円クーポンを配るのでそれで復習できます
Slide 39
Slide 39 text
39 「curl -sSL https://get.docker.com/ | sh」とコマンドを入れるとDocker のインストールがはじまります。 curl -sSL https://get.docker.com/ | sh
Slide 40
Slide 40 text
40 「systemctl start docker」とコマンドを入れるとDockerが動きます systemctl start docker
Slide 41
Slide 41 text
41 「docker version」と入力してDockerのバージョンが表示されれば、 Dockerが正常にインストールされています。 docker version
Slide 42
Slide 42 text
42 コンテナを起動する「docker run」
Slide 43
Slide 43 text
■docker run コマンド → 指定したイメージのコンテナを起動する ■構文 → docker run イメージ [オプション][コマンド][引数] ■オプション → -d バックグランドで実行 → -i コンテナの標準入力を開く → -t ttyを確保する → -p ポートフォワード 43
Slide 44
Slide 44 text
44 ちゃんとDockerが動くか「hello world」を動かしてみたいと思います。 上記のコマンドを入力してください。 docker run hello-world
Slide 45
Slide 45 text
45 「hello world」の入力が終わると「docker run –it ubuntu bash」を試し てみろ、と言われているので、これを入力してみましょう。
Slide 46
Slide 46 text
46 Dockerの上でUbuntuを入れて、コマンド入力ができるようにしてみる。 「-it」で、コンテナの中で入力できるようになる。 docker run -it ubuntu bash
Slide 47
Slide 47 text
Dockerを利用することでCentOS上でubuntuを利 用することができます。 ただし、このubuntuには、ほとんどコマンドが 入っていません。 例えば「curl ifconfig.me/ip」を叩くと、なにも 表示されないと表示されます。 47
Slide 48
Slide 48 text
48
Slide 49
Slide 49 text
49 「apt-get update」を叩いた後「apt-get install curl」で「curl」をインス トールしてください。インストール中、色々と聞かれますがとりあえずyを 押して下さい。 apt-get update apt-get install curl (1) (2)
Slide 50
Slide 50 text
50 「curl ifconfig.me/ip」でIPを表示してみる curl ifconfig.me/ip
Slide 51
Slide 51 text
51 「exit」をコマンドを叩くとコンテナから出て、このコンテナが止る。 コンテナが止ると今までやった作業(apt-getとか)は保存されない。 exit
Slide 52
Slide 52 text
52 再度コンテナを起動して「curl ifconfig.me/ip」を入力してください。これ を入力しても、先ほどのように実行されないはずです。 docker run -it ubuntu bash curl ifconfig.me/ip (1) (2)
Slide 53
Slide 53 text
• exitするだけで、今までの動作が消えてしまう ので、このままだと使えないです。 • 次はバックグランドでDockerのコンテナを利用 する方法について解説します。 53
Slide 54
Slide 54 text
54 バッググランドでコンテナを動かす
Slide 55
Slide 55 text
55 上記のコンテナを起動すると、時刻を1秒ごとに表示するコンテナが表示さ れる。しばらく動かしてみて「ctrl + C」で止めてください。 docker run jpetazzo/clock
Slide 56
Slide 56 text
56 コンテナをバックグランドで動かすにはrunコマンドに「-d」をつける。 上記のコマンドを入力すると、先ほどのように時刻は表示されずバックグラ ンドで動いており、ログは記録されている。 docker run -d jpetazzo/clock
Slide 57
Slide 57 text
57 docker psでコンテナを確認する
Slide 58
Slide 58 text
■docker ps コマンド → コンテナIDを確認するためコマンド。これでわかるものは ・コンテナのID ・コンテナがどのイメージから作られたのか? ・コンテナが動いてどのぐらい経過したのか? ■オプション → -l 直近(latest)のコンテナの情報を表示 → -q コンテナのショートIDのみ表示 → -a 停止しているコンテナも含め全て(all)表示 58
Slide 59
Slide 59 text
59 docker psを入力すると、現在動いているコンテナの情報が見られる docker ps
Slide 60
Slide 60 text
60 「docker ps –l」で直近に操作したコンテナを表示し「docker ps -q」でコ ンテナのショートIDが表示される。 docker ps -l docker ps -q (1) (2)
Slide 61
Slide 61 text
61 docker logsでコンテナ のログを確認する
Slide 62
Slide 62 text
■docker logs コマンド → コンテナの標準出力の内容をコンテナ外から確認する ■オプション → -tail ログの最後数行が見られるようになる → -follow リアルタイムでログが確認できる。 62
Slide 63
Slide 63 text
63 「docker logs(コンテナのID)」を入力すると、コンテナの標準出力が見 られる。先ほどバックグランドで動かした「 jpetazzo/clock 」のコンテナIDを 入力してみましょう。 docker logs (コンテナのID)
Slide 64
Slide 64 text
64 「-- tail」オプションを使うことで、ログの最後数行が見られるようになる。 例えば、(1)のコマンドはログの最後3行を出すコマンドとなる。 docker logs --tail 3 (コンテナのID)
Slide 65
Slide 65 text
65 docker logs --tail 1 --follow (コンテナのID) Unixコマンドのtail -fのようにfollowオプションをつけることでリアルタイ ムでログを確認することができる。上記のコマンドを入力するとリアルタイ ムでログが表示される。止めるには「Ctrl + C」で
Slide 66
Slide 66 text
66 docker kill、docker stopで コンテナを止める
Slide 67
Slide 67 text
67 「-d」で動作したコンテナを止めるにはkillかstopを使う。今回はkillコマン ドで、先ほどのコンテナを止めてください。 docker kill (コンテナのID) docker stop (コンテナのID) (1) (2)
Slide 68
Slide 68 text
68 「docker ps」で先ほど止めたコンテナのIDが無いことを確認してください 「docker ps –a」で止めたコンテナも確認できます。 docker ps docker ps -a (1) (2)
Slide 69
Slide 69 text
(C)Copyright 1996-2014 SAKURA Internet Inc.
Slide 70
Slide 70 text
70 これだけではつまらないので アプリを入れてみましょう
Slide 71
Slide 71 text
71 「Ghost」は最近、人気が出ているNode.js製の軽量ブログエンジンです。 今回はDockerを利用して、コマンド1発でインストールします。
Slide 72
Slide 72 text
• Node.jsとnpm • ApacheとかのWebサーバ • その他、色々 72 「Ghost」をインストールして利用するには上記のような物を色々とインス トールする必要があり面倒です。
Slide 73
Slide 73 text
73 Ghostを80番ポートで利用できるようにします。元々Ghostは2368番ポート で動いているので80番ポートとマッピングさせます。 docker run -p 80:2368 -d ghost
Slide 74
Slide 74 text
74 インストールが終わったら「(IPアドレス)」をブラウザで入力してください。 上記のような「画面」が表示されます。「(IPアドレス)/admin」でGhostの セットができます。
Slide 75
Slide 75 text
75 起動を確認したら、このコンテナを止めてみましょう。コンテナの止め方は 「docker stop (コンテナのID)」で止りますので「docker ps」でコンテナ IDを調べます。 docker ps
Slide 76
Slide 76 text
76 「docker ps」を入力して「CONTANER ID」を確認する。
Slide 77
Slide 77 text
77 「docker stop (コンテナのID)」を入力すると、ghostのコンテナが止りま す。(先ほどの例だと07a4e04f6418となります。) docker stop (CONTANER ID)
Slide 78
Slide 78 text
(C)Copyright 1996-2014 SAKURA Internet Inc.
Slide 79
Slide 79 text
79 WordPressとMy SQLのコンテナを つなぎ、WordPressを動かす
Slide 80
Slide 80 text
80 上記のコマンドを入力すると、色々とダウンロードがはじまる。 docker run wordpress
Slide 81
Slide 81 text
81 エラーが出てWordPressが起動できない、どうやらMySQLが必要な様子。 というわけで、MySQLのコンテナを持ってくる。
Slide 82
Slide 82 text
82 「docker pull [イメージ名]」でコンテナのダウンロードがはじまります。 ちなみに「docker run [イメージ名]」をした時にローカルにコンテナイメー ジがないと自動的にダウンロードされます docker pull mysql
Slide 83
Slide 83 text
83 わかりやすいように –eを利用することでMySQLのパスワードの設定が可能 となります。(パスワード)には、任意のパスワードを入れてください docker run --name mysql -e MYSQL_ROOT_PASSWORD=(パスワード) -d mysql
Slide 84
Slide 84 text
84 上記のコマンドを入力するとWordPressが立ち上がります。「-- link」は、- -link <連携したいコンテナ名>:<エイリアス名>オプションで新しいコンテ ナを起動すると,そのコンテナ内で連携したいコンテナのポート番号やIPを 環境変数として利用できるという機能です docker run --name wordpress --link mysql:mysql -p 80:80 wordpress
Slide 85
Slide 85 text
85 インストールに成功するとこんな画面が出てきます。
Slide 86
Slide 86 text
86
Slide 87
Slide 87 text
87 「-d」を指定していないので「ctrl + c」を入力すると、このコンテナ自体 も停止してしまいます。 それでは、次はバッグランドでWordPressを起動してみましょう。 ただし、同じ名前のコンテナ(-- nemae以下)は作れないので、名前を変え てみましょう。
Slide 88
Slide 88 text
88 上記のコマンドを入力するとWordPressが起動します。起動するのを確認し たら、docker killで落としてみましょう。 docker run --name wordpress2 -d --link mysql:mysql -p 80:80 wordpress
Slide 89
Slide 89 text
(C)Copyright 1996-2014 SAKURA Internet Inc.
Slide 90
Slide 90 text
・「Docker run」をコマンドを叩くとDocker イ メージからDocker コンテナが作られる ・Dockerイメージは読み込みのみ可能(read- only)。変更はできない。 ・Dockerコンテナは、読み書きができるファイル システム 90
Slide 91
Slide 91 text
91 本日はDocker fileからDockerイメージを作る「docker build」を試します ・docker commit → コンテナからDocker イメージを作る。 ・docker build → Docker fileからDockerイメージを作る。 ・docker import → Base imageからDockerイメージをつくる。
Slide 92
Slide 92 text
92 このコマンドを入力すると、過去に利用したDockerイメージが表示されます docker images
Slide 93
Slide 93 text
93 Dockerfileを利用して、 Dockerイメージを作る。
Slide 94
Slide 94 text
・DockerfileはDockerイメージを作るためのレシ ピのようなものです。 ・ Dockerfileは作成するDockerイメージの内容を テキスト形式で記述します。 ・作成したテキストファイルはdocker buildコマ ンドで読み込んでDockerイメージの作成を実行し ます。 94
Slide 95
Slide 95 text
95 Dockerfileをvimで書いてみます「myimages」というフォルダを作ってvim でDockerfileという名前のファイルを作製します。 mkdir myimage cd myimage (1) (2) vim Dockerfile (2)
Slide 96
Slide 96 text
96 「a」を押して入力モード上記の三行を入力する。入力が終わったら、Escで コマンドモードに戻った後「:wq」で保存する。 FROM ubuntu RUN apt-get update RUN apt-get install -y wget
Slide 97
Slide 97 text
■docker build コマンド → DockerfileからDockerイメージを作る ■構文 docker build –t :<タグ名> 97
Slide 98
Slide 98 text
98 dockerビルドコマンドを入力して、Dockerイメージを作成してください。 docker build -t myimage .
Slide 99
Slide 99 text
99 Successfully built <イメージID>が出れば、イメージの作成成功
Slide 100
Slide 100 text
100 作成したイメージは上記のコマンドから実行できます。 docker run -it myimage bash
Slide 101
Slide 101 text
101 Docker Compose
Slide 102
Slide 102 text
102 Docker Composeは、複数のコンテナか ら構成するサービスを従来よりも簡単に 構築できるツールです。 従来はコンテナを作成するには、いちい ち「docker run」しなければならなかっ たのが、コマンド1発で複数のコンテナ を利用したサービスを構築できます。
Slide 103
Slide 103 text
103 Docker Composeを利用して Zabbix 3.0の環境を構築する
Slide 104
Slide 104 text
104 上記のコマンドを入力して、Docker Composeのバイナリをセットする curl -L https://github.com/docker/compose/releases/down load/1.6.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
Slide 105
Slide 105 text
105 「docker-compose version」を入力すると、Docker composeのバージョ ンが表示される、正しくインストールされれば、このコマンドでバージョン 情報が表示される。 docker-compose version
Slide 106
Slide 106 text
106 本来であれば、作業用のディレクトリの中に「docker-compose.yaml」を 用意する必要があるのですが、今回は事前に私の方で作成したので、そちら をクローンしてください。クローンが終わったら「zabbix3」に移動します。 git clone https://github.com/wslash/zabbix3.git cd zabbix3
Slide 107
Slide 107 text
107 先ほど作成したディレクトリ「zabbix3」の中で「docker-compose pull」 を入力。Zabbixに必要なイメージをダウンロードします。 docker-compose pull
Slide 108
Slide 108 text
108 エラーが出ていなければ「docker images」を入力して「zabbix-3.0」と 「zabbix-db-mariadb」のイメージが取得できているか確認をする。 docker images
Slide 109
Slide 109 text
109 エラーが出ていなければ「docker images」を入力して「zabbix-3.0」と 「zabbix-db-mariadb」のイメージが取得できているか確認をする。
Slide 110
Slide 110 text
110 イメージを取得できていれば「docker-compose up -d」を入力してZabbix 起動に必要な複数のコンテナを立ち上げます。 docker-compose up -d
Slide 111
Slide 111 text
111 「docker-compose up -d」でコンテナを立ち上げた後「docker ps」で、 正常に動作しているか確認する。 docker ps
Slide 112
Slide 112 text
112 正常に動作していれば、ブラウザにサーバのIPアドレスを入力すれば、Zabbix のロ グイン画面が表示されます。ID: Admin 、 Password: zabbix でログインした後、パス ワードを変更してください。
Slide 113
Slide 113 text
DockerとDocker Composeを利用すると、 すぐに検証環境が利用できて便利 113
Slide 114
Slide 114 text
114 前佛さんがQiitaに書かれている「Zabbix 3.0をDocker Composeで一度に実行する方 法」が詳しいので、そちらもご確認ください。 http://qiita.com/zembutsu/items/686b99be90d72688aee8
Slide 115
Slide 115 text
ご静聴ありがとうございました。 「さくらのクラウド 2万円クーポン」を配布いたします。 今日の復習にご利用ください 115