Docker Machineを使ってみよう

Post on 17-Jan-2017

1.366 views 0 download

Transcript of Docker Machineを使ってみよう

(C)Copyright 1996-2014 SAKURA Internet Inc.

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

2016/01/22

2

氏名 横田真俊(@Wslash)

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

3

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

4

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

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

のが目標

5

6

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

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

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

(C)Copyright 1996-2014 SAKURA Internet Inc.

8

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

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

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

アプリ アプリ アプリ

ホストOS(Windows/Linuxなど)

アプリ

9

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

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

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

アプリ アプリ アプリ

10

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

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

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

アプリ アプリ アプリ

ホストOS(Linux)

アプリ

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

が少なく処理能力が早い

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

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

消費量をおさえられる。

• ポータビリティ

→ 環境を意識せず使える

11

12

何がうれしいのか?

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

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

コンテナに統一できる。

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

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

13

(C)Copyright 1996-2014 SAKURA Internet Inc.

15

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

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

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

16

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

yum install docker-io

17

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

service docker start

18

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

docker version

19

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

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

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

■オプション

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

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

→ -t ttyを確保する

→ -p ポートフォワード

20

21

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

docker run hello-world

22

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

23

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

24

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

• Node.jsとnpm

• ApacheとかのWebサーバ

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

25

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

26

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

docker run -p 80:2368 -d ghost

27

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

28

Docker Machine

VirtualBox

29

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

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

クラウド事業者 B

Docker Machine

30

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

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

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

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

あれ?

32

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

33

34

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

35

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

36

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

37

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

Docker Client

Docker Machine

Docker Compose

Docker Kitematic

VirtualBox

38

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

39

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

40

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

docker-machine -v

41

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

docker-machine create -d sakuracloud -h

42

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

43

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

■ 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

45

docker-machine ssh [マシン名]

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

46

docker-machine ls

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

47

docker-machine stop [マシン名]

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

docker-machine start [マシン名]

docker-machine restart [マシン名]

48

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

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

49

docker-machine rm [マシン名]

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

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

50

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

51