44
(C)Copyright 1996-2014 SAKURA Internet Inc. さくらインターネット 横田真俊(@wslash) 2016/05/14

「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

  • View
    1.146

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

(C)Copyright 1996-2014 SAKURA Internet Inc.

さくらインターネット横田真俊(@wslash)

2016/05/14

Page 2: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

2

氏名横田真俊(@Wslash)

「さくらのクラウド」の企画担当 兼エバンジェリストをやっております

年に50回程度の講演・ハンズオンを行っております

左のアイコンで、ツイッターをやっていますのでお気軽にお声がけください

Page 3: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

3

Amazon EC2/S3 入門

今は、さくらのクラウド企画担当をやっていますが、昔はこんな本を書いていました

Page 4: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

4

ツイッターやFacebookなどソーシャルメディアの本を5冊ほど書いてます

Page 5: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

Dockerを利用すると

コマンド一発で色々なソフトの

検証ができるよ!

5

Page 6: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

(C)Copyright 1996-2014 SAKURA Internet Inc.

Page 7: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

7

ホストOSの上で「仮想化ソフト」を動かすタイプホストOSとアプリを共存できるのでPCからの個人利用の形で多いが、ホストの負荷が大きい

ホスト形仮想化ソフト(VirtualBOXなど)

OS (1) OS(2) OS(3)

アプリ アプリ アプリ

ホストOS(Windows/Linuxなど)

アプリ

Page 8: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

8

ホストOSの代わりに「ハイパーバイザー」が仮想サーバを制御する。ホストサーバ全体を仮想化で利用するため、ホストOSを経由しないためホストOS型よりレスポンスが良い

ハイパーバイザー(VMWareなど)

OS (1) OS(2) OS(3)

アプリ アプリ アプリ

Page 9: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

9

OSの代わりに各コンテナがアプリを稼動させます。今までより一番ホストマシンの処理負荷が低い

コンテナ管理ソフトウェア(Dockerなど)

コンテナ(1) コンテナ(2) コンテナ(3)

アプリ アプリ アプリ

ホストOS(Linux)

アプリ

Page 10: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

• 処理速度が速い→ OSやハードウェアを仮想化していないためオーバーヘッド

が少なく処理能力が早い

• メモリやディスクの消費量をおさえられる

→ それぞれにカーネルを持たないためメモリ/ディスクの

消費量をおさえられる。

• ポータビリティ

→ 環境を意識せず使える

10

Page 11: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

11

何がうれしいのか?

Page 12: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

■検証・使い捨て環境がすぐに使える→ 「低コスト」かつ「コマンド1発」で利用できる。

■環境の統一化→ 開発・運用・ステージングと色々な「環境」を用意せずに

コンテナに統一できる。

■クラウド時代のバズワードが手軽に実現

→ イミュータブル、オートスケーリング etc…

12

Page 13: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

(C)Copyright 1996-2014 SAKURA Internet Inc.

Page 14: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

14

今回はCentOS 7系でインストールします

今日の資料は別途、公開いたします

2万円クーポンを配るのでそれで復習できます

Page 15: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

15

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

curl -sSL https://get.docker.com/ | sh

Page 16: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

16

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

systemctl start docker

Page 17: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

17

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

docker version

Page 18: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

18

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

Page 19: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

■docker run コマンド→ 指定したイメージのコンテナを起動する

■構文→ docker run イメージ [オプション][コマンド][引数]

■オプション

→ -d バックグランドで実行

→ -i コンテナの標準入力を開く

→ -t ttyを確保する

→ -p ポートフォワード

19

Page 20: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

20

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

docker run hello-world

Page 21: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

21

「hello world」の入力が終わると、上記のような画面が表示されます。

Page 22: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

22

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

Page 23: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

23

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

Page 24: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

• Node.jsとnpm

• ApacheとかのWebサーバ

• その他、色々

24

「Ghost」をインストールして利用するには上記のような物を色々とインストールする必要があり面倒です。

Page 25: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

25

Ghostを80番ポートで利用できるようにします。元々Ghostは2368番ポートで動いているので80番ポートとマッピングさせます。

docker run -p 80:2368 -d ghost

Page 26: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

26

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

Page 27: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

27

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

docker ps

Page 28: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

28

「docker ps」を入力して「CONTANER ID」を確認する。

Page 29: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

29

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

docker stop (CONTANER ID)

Page 30: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

30

Docker Compose

Page 31: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

31

Docker Composeは、複数のコンテナから構成するサービスを従来よりも簡単に構築できるツールです。

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

Page 32: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

32

Docker Composeを利用してZabbix 3.0の環境を構築する

Page 33: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

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

Page 34: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

34

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

docker-compose version

Page 35: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

35

本来であれば、作業用のディレクトリの中に「docker-compose.yaml」を用意する必要があるのですが、今回は事前に私の方で作成したので、そちらをクローンしてください。クローンが終わったら「zabbix3」に移動します。

git clone https://github.com/wslash/zabbix3.git

cd zabbix3

Page 36: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

36

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

docker-compose pull

Page 37: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

37

エラーが出ていなければ「docker images」を入力して「zabbix-3.0」と「zabbix-db-mariadb」のイメージが取得できているか確認をする。

docker images

Page 38: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

38

エラーが出ていなければ「docker images」を入力して「zabbix-3.0」と「zabbix-db-mariadb」のイメージが取得できているか確認をする。

Page 39: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

39

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

docker-compose up -d

Page 40: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

40

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

docker ps

Page 41: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

41

正常に動作していれば、ブラウザにサーバのIPアドレスを入力すれば、Zabbixのログイン画面が表示されます。ID: Admin 、 Password: zabbixでログインした後、パスワードを変更してください。

Page 42: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

DockerとDocker Composeを利用すると、

すぐに検証環境が利用できて便利

42

Page 43: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

43

前佛さんがQiitaに書かれている「Zabbix 3.0をDocker Composeで一度に実行する方法」が詳しいので、そちらもご確認ください。http://qiita.com/zembutsu/items/686b99be90d72688aee8

Page 44: 「さくらのクラウド」を使って10分でできるDocker (オープンソースカンファレンス2016 Gunma)

ご静聴ありがとうございました。

資料は公開しているので、わからない所があれば

資料でご確認ください。

44