「さくらのクラウド」を使って10分でできるDocker...
-
date post
15-Apr-2017 -
Category
Services
-
view
1.146 -
download
0
Transcript of 「さくらのクラウド」を使って10分でできるDocker...
(C)Copyright 1996-2014 SAKURA Internet Inc.
さくらインターネット横田真俊(@wslash)
2016/05/14
2
氏名横田真俊(@Wslash)
「さくらのクラウド」の企画担当 兼エバンジェリストをやっております
年に50回程度の講演・ハンズオンを行っております
左のアイコンで、ツイッターをやっていますのでお気軽にお声がけください
3
Amazon EC2/S3 入門
今は、さくらのクラウド企画担当をやっていますが、昔はこんな本を書いていました
4
ツイッターやFacebookなどソーシャルメディアの本を5冊ほど書いてます
Dockerを利用すると
コマンド一発で色々なソフトの
検証ができるよ!
5
(C)Copyright 1996-2014 SAKURA Internet Inc.
7
ホストOSの上で「仮想化ソフト」を動かすタイプホストOSとアプリを共存できるのでPCからの個人利用の形で多いが、ホストの負荷が大きい
ホスト形仮想化ソフト(VirtualBOXなど)
OS (1) OS(2) OS(3)
アプリ アプリ アプリ
ホストOS(Windows/Linuxなど)
アプリ
8
ホストOSの代わりに「ハイパーバイザー」が仮想サーバを制御する。ホストサーバ全体を仮想化で利用するため、ホストOSを経由しないためホストOS型よりレスポンスが良い
ハイパーバイザー(VMWareなど)
OS (1) OS(2) OS(3)
アプリ アプリ アプリ
9
OSの代わりに各コンテナがアプリを稼動させます。今までより一番ホストマシンの処理負荷が低い
コンテナ管理ソフトウェア(Dockerなど)
コンテナ(1) コンテナ(2) コンテナ(3)
アプリ アプリ アプリ
ホストOS(Linux)
アプリ
• 処理速度が速い→ OSやハードウェアを仮想化していないためオーバーヘッド
が少なく処理能力が早い
• メモリやディスクの消費量をおさえられる
→ それぞれにカーネルを持たないためメモリ/ディスクの
消費量をおさえられる。
• ポータビリティ
→ 環境を意識せず使える
10
11
何がうれしいのか?
■検証・使い捨て環境がすぐに使える→ 「低コスト」かつ「コマンド1発」で利用できる。
■環境の統一化→ 開発・運用・ステージングと色々な「環境」を用意せずに
コンテナに統一できる。
■クラウド時代のバズワードが手軽に実現
→ イミュータブル、オートスケーリング etc…
12
(C)Copyright 1996-2014 SAKURA Internet Inc.
14
今回はCentOS 7系でインストールします
今日の資料は別途、公開いたします
2万円クーポンを配るのでそれで復習できます
15
「curl -sSL https://get.docker.com/ | sh」とコマンドを入れるとDockerのインストールがはじまります。
curl -sSL https://get.docker.com/ | sh
16
「systemctl start docker」とコマンドを入れるとDockerが動きます
systemctl start docker
17
「docker version」と入力してDockerのバージョンが表示されれば、Dockerが正常にインストールされています。
docker version
18
コンテナを起動する「docker run」
■docker run コマンド→ 指定したイメージのコンテナを起動する
■構文→ docker run イメージ [オプション][コマンド][引数]
■オプション
→ -d バックグランドで実行
→ -i コンテナの標準入力を開く
→ -t ttyを確保する
→ -p ポートフォワード
19
20
ちゃんとDockerが動くか「hello world」を動かしてみたいと思います。上記のコマンドを入力してください。
docker run hello-world
21
「hello world」の入力が終わると、上記のような画面が表示されます。
22
これだけではつまらないのでアプリを入れてみましょう
23
「Ghost」は最近、人気が出ているNode.js製の軽量ブログエンジンです。今回はDockerを利用して、コマンド1発でインストールします。
• Node.jsとnpm
• ApacheとかのWebサーバ
• その他、色々
24
「Ghost」をインストールして利用するには上記のような物を色々とインストールする必要があり面倒です。
25
Ghostを80番ポートで利用できるようにします。元々Ghostは2368番ポートで動いているので80番ポートとマッピングさせます。
docker run -p 80:2368 -d ghost
26
インストールが終わったら「(IPアドレス)」をブラウザで入力してください。上記のような「画面」が表示されます。「(IPアドレス)/admin」でGhostのセットができます。
27
起動を確認したら、このコンテナを止めてみましょう。コンテナの止め方は「docker stop (コンテナのID)」で止りますので「docker ps」でコンテナIDを調べます。
docker ps
28
「docker ps」を入力して「CONTANER ID」を確認する。
29
「docker stop (コンテナのID)」を入力すると、ghostのコンテナが止ります。(先ほどの例だと07a4e04f6418となります。)
docker stop (CONTANER ID)
30
Docker Compose
31
Docker Composeは、複数のコンテナから構成するサービスを従来よりも簡単に構築できるツールです。
従来はコンテナを作成するには、いちいち「docker run」しなければならなかったのが、コマンド1発で複数のコンテナを利用したサービスを構築できます。
32
Docker Composeを利用してZabbix 3.0の環境を構築する
33
上記のコマンドを入力して、Docker Composeのバイナリをセットする
curl -L https://github.com/docker/compose/releases/download/1.6.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
34
「docker-compose version」を入力すると、Docker composeのバージョンが表示される、正しくインストールされれば、このコマンドでバージョン情報が表示される。
docker-compose version
35
本来であれば、作業用のディレクトリの中に「docker-compose.yaml」を用意する必要があるのですが、今回は事前に私の方で作成したので、そちらをクローンしてください。クローンが終わったら「zabbix3」に移動します。
git clone https://github.com/wslash/zabbix3.git
cd zabbix3
36
先ほど作成したディレクトリ「zabbix3」の中で「docker-compose pull」を入力。Zabbixに必要なイメージをダウンロードします。
docker-compose pull
37
エラーが出ていなければ「docker images」を入力して「zabbix-3.0」と「zabbix-db-mariadb」のイメージが取得できているか確認をする。
docker images
38
エラーが出ていなければ「docker images」を入力して「zabbix-3.0」と「zabbix-db-mariadb」のイメージが取得できているか確認をする。
39
イメージを取得できていれば「docker-compose up -d」を入力してZabbix起動に必要な複数のコンテナを立ち上げます。
docker-compose up -d
40
「docker-compose up -d」でコンテナを立ち上げた後「docker ps」で、正常に動作しているか確認する。
docker ps
41
正常に動作していれば、ブラウザにサーバのIPアドレスを入力すれば、Zabbixのログイン画面が表示されます。ID: Admin 、 Password: zabbixでログインした後、パスワードを変更してください。
DockerとDocker Composeを利用すると、
すぐに検証環境が利用できて便利
42
43
前佛さんがQiitaに書かれている「Zabbix 3.0をDocker Composeで一度に実行する方法」が詳しいので、そちらもご確認ください。http://qiita.com/zembutsu/items/686b99be90d72688aee8
ご静聴ありがとうございました。
資料は公開しているので、わからない所があれば
資料でご確認ください。
44