Docker Machineを使ってみよう

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

Transcript of Docker Machineを使ってみよう

Page 1: Docker Machineを使ってみよう

(C)Copyright 1996-2014 SAKURA Internet Inc.

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

2016/01/22

Page 2: Docker Machineを使ってみよう

2

氏名 横田真俊(@Wslash)

「さくらのクラウド」の企画担当を やっております 年に50回程度の講演・ハンズオンを 行っております 左のアイコンで、ツイッターを やっていますのでお気軽に お声がけください

Page 3: Docker Machineを使ってみよう

3

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

Page 4: Docker Machineを使ってみよう

4

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

Page 5: Docker Machineを使ってみよう

「DockerとDocker Machineをインストールして利用ができるようになる」

のが目標

5

Page 6: Docker Machineを使ってみよう

6

Dockerの特徴を再復習すると同時に、とりあえず動かしてみます。

Docker Machineのインストールと、動かし方をデモで紹介します

2万円分の無償クーポンを配布します。無料で本日の復習が可能です

Page 7: Docker Machineを使ってみよう

(C)Copyright 1996-2014 SAKURA Internet Inc.

Page 8: Docker Machineを使ってみよう

8

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

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

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

アプリ アプリ アプリ

ホストOS(Windows/Linuxなど)

アプリ

Page 9: Docker Machineを使ってみよう

9

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

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

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

アプリ アプリ アプリ

Page 10: Docker Machineを使ってみよう

10

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

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

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

アプリ アプリ アプリ

ホストOS(Linux)

アプリ

Page 11: Docker Machineを使ってみよう

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

が少なく処理能力が早い

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

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

消費量をおさえられる。

• ポータビリティ

→ 環境を意識せず使える

11

Page 12: Docker Machineを使ってみよう

12

何がうれしいのか?

Page 13: Docker Machineを使ってみよう

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

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

コンテナに統一できる。

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

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

13

Page 14: Docker Machineを使ってみよう

(C)Copyright 1996-2014 SAKURA Internet Inc.

Page 15: Docker Machineを使ってみよう

15

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

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

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

Page 16: Docker Machineを使ってみよう

16

「yum install docker-io」とコマンドを入れるとDockerのインストールがはじまります。色々と聞かれますが、とりあえず「y」を入力してください。

yum install docker-io

Page 17: Docker Machineを使ってみよう

17

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

service docker start

Page 18: Docker Machineを使ってみよう

18

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

docker version

Page 19: Docker Machineを使ってみよう

19

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

Page 20: Docker Machineを使ってみよう

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

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

■オプション

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

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

→ -t ttyを確保する

→ -p ポートフォワード

20

Page 21: Docker Machineを使ってみよう

21

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

docker run hello-world

Page 22: Docker Machineを使ってみよう

22

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

Page 23: Docker Machineを使ってみよう

23

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

Page 24: Docker Machineを使ってみよう

24

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

Page 25: Docker Machineを使ってみよう

• Node.jsとnpm

• ApacheとかのWebサーバ

• SQLite、MySQLなどのデータベース

25

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

Page 26: Docker Machineを使ってみよう

26

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

docker run -p 80:2368 -d ghost

Page 27: Docker Machineを使ってみよう

27

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

Page 28: Docker Machineを使ってみよう

28

Docker Machine

Page 29: Docker Machineを使ってみよう

VirtualBox

29

Docker社が出しているプロビジョニングツール。これを利用すると自分のPC環境からDockerをインストールしたサーバが作れます。

自分のPC クラウド事業者 A

クラウド事業者 B

Docker Machine

Page 30: Docker Machineを使ってみよう

30

Docker環境が入ったサーバを簡単に構築できる

Virtualboxや複数のクラウド事業者でも利用できる

複数の環境を一括で管理できる

Page 31: Docker Machineを使ってみよう

31

Amazon Web Services

Microsoft Azure

Digital Ocean

Exoscale

Google Compute Engine

Generic

Microsoft Hyper-V

OpenStack

Rackspace

IBM Softlayer

Oracle VirtualBox

VMware vCloud Air

VMware Fusion

VMware vSphere

Page 32: Docker Machineを使ってみよう

あれ?

32

Page 33: Docker Machineを使ってみよう

「さくらのクラウド」が無い!

33

Page 34: Docker Machineを使ってみよう

34

有志の方(@yamamoto_febc)さんが作成された「さくらのクラウド」用 Docker Machineプラグイン。

Page 35: Docker Machineを使ってみよう

35

利用方法の詳細は、こちらのQiita記事が詳しいです http://qiita.com/yamamoto-febc/items/4aff7472fc1ea025db0a

Page 36: Docker Machineを使ってみよう

36

Docker Machine SAKURA CLOUD Driverのインストール方法

Page 37: Docker Machineを使ってみよう

37

Docker Toolboxをインストールします。 https://www.docker.com/docker-toolbox

Page 38: Docker Machineを使ってみよう

Docker Client

Docker Machine

Docker Compose

Docker Kitematic

VirtualBox

38

Docker Toolboxを利用すると上記のソフトがインストールされます。 ただし、Windowsの場合32ビットだと動きません

Page 39: Docker Machineを使ってみよう

39

Windowsの場合、ドライバのインストーラーがあるので「v0.0.7」をインストールする。 https://github.com/yamamoto-febc/docker-machine-sakuracloud/releases/download/v0.0.7/DockerMachineSakuracloudSetup.exe

Page 40: Docker Machineを使ってみよう

40

コマンドプロンプトから「docker-machine -v」を叩くとDocker-machineのバージョンが表示される。バージョンが表示されれば「 Docker-machine 」はインストールされている。

docker-machine -v

Page 41: Docker Machineを使ってみよう

41

「docker-machine create -d sakuracloud -h」を入力して、さくらのクラウド用のコマンドが出てきたら無事にインストールされている。

docker-machine create -d sakuracloud -h

Page 42: Docker Machineを使ってみよう

42

「さくらのクラウド」の APIキーを取得する

Page 43: Docker Machineを使ってみよう

43

「さくらのクラウド」の画面からAPIキーを追加し、「ACCESS TOKEN」と「ACCESS TOKEN SECRET」の内容を控えておく。

Page 44: Docker Machineを使ってみよう

■ docker-machine createコマンド → docker-machine経由でDockerが入ったDockerホストを作成する。

→ docker-machine create –d[ドライバ名] で作成先を指定する

■ 「さくらのクラウド」で作成する場合 docker-machine create -d sakuracloud ¥

--sakuracloud-access-token=[ACCESS TOKEN] ¥

--sakuracloud-access-token-secret=[ACCESS TOKEN SECRET] ¥

[ホスト名]

→ これでローカルから「さくらのクラウド」にDockerホストが作成できる

44

Page 45: Docker Machineを使ってみよう

45

docker-machine ssh [マシン名]

docker-machineで作成されたホストはSSHで接続できません、 「docker-machine ssh [ホスト名]」で接続できます。

Page 46: Docker Machineを使ってみよう

46

docker-machine ls

「docker-machine ls」を入力すると、Docker-machineで作られたサーバ一覧が表示されます。

Page 47: Docker Machineを使ってみよう

47

docker-machine stop [マシン名]

docker-machineコマンドで開始・停止・再起動ができます。

docker-machine start [マシン名]

docker-machine restart [マシン名]

Page 48: Docker Machineを使ってみよう

48

eval “$(docker-machine env [マシン名])"

eval “$(docker-machine env [マシン名])”で、[マシン名]をactiveにする

Page 49: Docker Machineを使ってみよう

49

docker-machine rm [マシン名]

「docker-machine rm」で作成したDockerホストを削除できます。

Page 50: Docker Machineを使ってみよう

• Docker-machineを利用すると、ローカル複数のクラウド環境にDockerが利用できて便利!

50

Page 51: Docker Machineを使ってみよう

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

51