いまからでも遅くない docker事始め&愉快な仲間達

70
Docker と愉快な仲間たち SoftLayer と Bluemix 利用者のための Docker 入門 SoftLayer Bluemix Summit 2015 #slbm15 2015年9月2日(水) @zembutsu 背景画像CREDIT:スフィア / PIXTA(ピクスタ) https://pixta.jp/@sphere

Upload: softlayerjp

Post on 08-Jan-2017

4.334 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: いまからでも遅くない Docker事始め&愉快な仲間達

Dockerと愉快な仲間たちS o ft L aye r と B l u e m i x 利 用 者 の た め の D o c ke r 入 門

SoftLayer Bluemix Summit 2015 #slbm15

2015年9月2日(水)

@zembutsu

背景画像CREDIT:スフィア / PIXTA(ピクスタ)https://pixta.jp/@sphere

Page 2: いまからでも遅くない Docker事始め&愉快な仲間達

2

今日の内容DockerとSoftLayerとBluemixと

‣ Dockerの考え方と概要なぜ「Docker」や「コンテナ」なのか? これまでと何が違うのか?

‣ Docker on BlueMixBluemix を使って、どのようなことが出来るのか。単純な Docker とは何が違うのか?

‣ Docker on SoftLayerBluemix との違い。SoftLayer を活用した Docker の使い方。

Page 3: いまからでも遅くない Docker事始め&愉快な仲間達

3

今日のまとめ1今日から始めるDocker

‣ Dockerの考え方と概要

速さと利便性

Docker はコンテナではなくプラットフォーム

既存システムと対立するものではなく、価値を生み出すもの

‣ 既存システムとの共存

Bluemix は Docker 互換の IBM Containers

SoftLayer は Docker 環境を便利に活用できる

Page 4: いまからでも遅くない Docker事始め&愉快な仲間達

4

今日のまとめ2今日から始めるDocker

‣ Dockerありきで考えると全てが破綻する

何のために導入するのか?

既存システムとは対立するものではない

‣ 現実的な課題

多くの場合、業務フローの変更を伴うことが予想される

Docker イメージ管理 ( DockerHub, DTR, Private Registry )

運用(監視、性能評価、セキュリティ、ネットワーク)

Page 5: いまからでも遅くない Docker事始め&愉快な仲間達

5

自己紹介

‣ @zembutsu a.k.a. 前佛雅人- Technology Evangelist; Creationline, Inc. – 1.5 yrs

- Data Center Operations Engineer – 15+ yrs

興味関心:運用監視自動化、趣味でOSSやクラウド系の検証・情報発信- SlideShare http://slideshare.net/zembutsu

- Blog http://pocketstudio.jp/log3

書籍・記事- Serf/Consulで管理を自動化! (Gihyo.jp)

http://gihyo.jp/admin/feature/01/serf-consul

- HashiCorpのツール群からみる

インフラ構築運用の未来 (Think IT)

http://thinkit.co.jp/book/2015/03/05/5700

Why am I here?

+MasahitoZembutsu

ISBN-10: 4774174416 ISBN-10: 4844338145 ISBN-10: 4798139785

Page 6: いまからでも遅くない Docker事始め&愉快な仲間達
Page 7: いまからでも遅くない Docker事始め&愉快な仲間達
Page 8: いまからでも遅くない Docker事始め&愉快な仲間達
Page 9: いまからでも遅くない Docker事始め&愉快な仲間達
Page 10: いまからでも遅くない Docker事始め&愉快な仲間達

┌──────────────────────┐│ドッカースウォームが あらわれた! │ │ドッカーコンポーズが あらわれた! ││コマンド? ││ ∨ │└━━━━━━━━━━━━━━━━━━━━━━┘

┌────┐│ていじで ││かえろう │└━━━━┘

┌──────コマンド─────┐│ たたかう じゅもん ││ にげる げんじつとうひ │└━━━━━━━━━━━━━━━┘

Page 11: いまからでも遅くない Docker事始め&愉快な仲間達

素材画像CREDIT:hanako / PIXTA(ピクスタ)https://pixta.jp/illustration/14575501

Page 12: いまからでも遅くない Docker事始め&愉快な仲間達

TMTOWTDIThere’s More Than One Way To Do It

Page 13: いまからでも遅くない Docker事始め&愉快な仲間達

はじめに:Dockerの考え方と概要

1■□□ Introduction – why docker?

S o f t L a y e r と B l u e m i x 利 用 者 の た め の D o c k e r 入 門

Page 14: いまからでも遅くない Docker事始め&愉快な仲間達

VS仮想化システム

構成管理ツール

クラウド環境

Page 15: いまからでも遅くない Docker事始め&愉快な仲間達

システム基盤の変遷と課題

Page 16: いまからでも遅くない Docker事始め&愉快な仲間達

物理時代

仮想化・クラウド時代

コンテナ時代

機材発注

機材納品

設置

機器設定

事前設計

クリック

見積もり

OS設定

環境構築

試験

利用開始

試験

開発

試験

運用

利用開始

事前設計

クリック

試験

利用開始

事前設計

クリック

試験

利用開始

開 発 段 階 検 証 段 階 本 番 段 階

すべてを迅速に、一貫した環境で行いやすい← New

Page 17: いまからでも遅くない Docker事始め&愉快な仲間達

社外開発環境 本番環境ステージング環境

社内共有開発環境

個人開発環境

社内テスト環境

社外開発環境 本番環境ステージング環境

CI/CD Docker レジストリ

Docker動作環境(docker machine)

Page 18: いまからでも遅くない Docker事始め&愉快な仲間達

18SoftLayer と Bluemix 利用者のための Docker 入門

発生する課題

‣ 環境の差異による動く・動かない、及び検証コスト開発・テスト環境・本番環境におけるライブラリやコマンドの有無、バージョンの差違、環境依存問題

‣ 構築済みの環境を、拡大・縮小しづらいアプリケーションの動作環境と、システム基盤の管理を別々のチームや部署が行っている場合

‣ 複雑化する管理各チームや部署が統一性の無い"セルフ標準"を持っているため、作業標準化の壁

Page 19: いまからでも遅くない Docker事始め&愉快な仲間達

19SoftLayer と Bluemix 利用者のための Docker 入門

‣ 「コンテナ化」と総称される技術LXC, FreeBSD jail, Solaris Containers, OpenVZ, Linux VServer

• LXC は Linux kernel 2.6.29 ~ 取り込まれる ( cgroups 関連 )

• 2014年2月20日 LXC 1.0 のリリース

‣ 標準化するという新しい選択肢

• Linux では前から利用可能であったが、設定が煩雑・面倒

Docker は Linux の kernel 機能を使って

アプリケーションを Docker 化 ( Docker イメージ化して対応 )

対策はあるのだろうか?

Page 20: いまからでも遅くない Docker事始め&愉快な仲間達

引用Docker 0.9: introducing execution drivers and libcontainer | Docker Bloghttps://blog.docker.com/2014/03/docker-0-9-introducing-execution-drivers-and-libcontainer/

Page 21: いまからでも遅くない Docker事始め&愉快な仲間達

引用:What is Docker?https://www.docker.com/whatisdocker

Page 22: いまからでも遅くない Docker事始め&愉快な仲間達

22SoftLayer と Bluemix 利用者のための Docker 入門

‣ コンテナとは、ホストOS上のKernel機能を使い

複数のルート・ファイルシステムを実行できる。各々の root ファイルシステムの事を「コンテナ」( container ) と呼称する。

これ何て chroot?と言われる所以。

‣ 各々のコンテナは各々のリソースを持つプロセス(計算資源)

メモリ

デバイス

ネットワーク

Dockerとコンテナ

Page 23: いまからでも遅くない Docker事始め&愉快な仲間達

23SoftLayer と Bluemix 利用者のための Docker 入門

‣ 操作の分かりやすさ、使いやすさLXC を直接管理するよりも、Dockerクライアントからの操作性が、コンテナ管理の煩雑さを隠蔽

‣ 速さ環境構築・再現・操作性

‣ 環境の再現性Docker イメージまたは Dockerfile を使うことで、同じ環境を再現できる

‣ 可搬性 ( portability )Docker イメージは再利用可能・移動可能、共通カーネルであれば動作上の障壁が少ない

Dockerは何を実現してくれるのか?

Page 24: いまからでも遅くない Docker事始め&愉快な仲間達

24SoftLayer と Bluemix 利用者のための Docker 入門

‣ 開発者はコードを書くだけでは無いDocker イメージの管理や、コンテナ間の連携についても配慮が必要になる

‣ 既存の運用フローを変更する可能性そもそも、そのフローは適切だったのか?

‣ 管理をどうするのか、どうすべきか仮想サーバやクラウド環境以上に、コンテナを扱うことで指数関数的に管理対象が増加するので、

運用上の正常性評価や、セキュリティ上の課題(そもそも何がセキュリティなのか)の再検討が必要な場合がある

一方で新しい課題が出るのも事実

Page 25: いまからでも遅くない Docker事始め&愉快な仲間達

Dokcerの概念と基本用語

Page 26: いまからでも遅くない Docker事始め&愉快な仲間達

26SoftLayer と Bluemix 利用者のための Docker 入門

‣ Docker とは

コンテナ技術を使い、アプリケーション開発・運搬・実行を行う

ための、プラットフォームである。

‣ プラットフォームの構成要素• Docker Engine

• Docker Hub

• Docker Trusted Registry

• Kitematic

基本用語

• Docker Machine

• Docker Swarm

• Docker Compose

• Docker Toolbox

• Docker Content Trust

Page 27: いまからでも遅くない Docker事始め&愉快な仲間達

27

‣ Docker Engine

• Dockerの中核となるプログラム

• コンテナの制御

‣ クライアント・サーバ型

• “docker” デーモン

• “docker” コマンドライン・ツール

Page 28: いまからでも遅くない Docker事始め&愉快な仲間達

28

dockerクライアントの基本コマンド

docker run

コンテナ実行

docker stop

コンテナ停止

docker commit

コンテナイメージ化

docker pull

イメージの取得

docker build

イメージの自動構築

docker attach

コンテナにアタッチ

docker logs

標準出力の表示

docker inspect

詳細情報の表示

docker rm

イメージ削除

docker images

イメージ一覧表示

diff | history

差分・履歴表示

Page 29: いまからでも遅くない Docker事始め&愉快な仲間達

DockerHub (公開レジストリ)https://hub.docker.com/

レポジトリの「イメージ」を共有するシステム様々なアプリケーションやミドルウェアのレポジトリ

Page 30: いまからでも遅くない Docker事始め&愉快な仲間達

docker daemon( server )

docker( client)

docker run <image>

Docker HubDocker Trusted Registry

Docker Registry

docker pull

Page 31: いまからでも遅くない Docker事始め&愉快な仲間達

レジストリ 説明イメージ管理

GUI 認証リソース表示

ログ TLS サポート 対象OS 料金

Docker Hubインターネットから誰もが利用可能

○ ○ ○ × × ○ △5 private repo$7/月~

Docker Registry自分で専用のレジストリを準備

○ × × × × △ × -

Docker Trusted Registry

自分で専用のレジストリを準備。

○ ○ユーザ認証LDAP認証

○ ○ ○ ○RHEL 7.0, 7.1Ubuntu 14.04 LTS

1 Registry, 10 Engine$150/月~

Page 32: いまからでも遅くない Docker事始め&愉快な仲間達

kernel

ベース・イメージ(CentOS)

ベース・イメージ(Ubuntu)

変更内容 A

変更内容 B

変更内容 C

書き込み可能領域

書き込み可能領域

Page 33: いまからでも遅くない Docker事始め&愉快な仲間達

33SoftLayer と Bluemix 利用者のための Docker 入門

‣ 利点

開発者にとっての効率の良さすぐに利用できる点と、バージョン・コントロール、CI/CDの自動化。

アプリケーションのポータビリティ開発をはじめ、テストやリリースに至るまで、コンテナを通して一環したインフラ環境を利用できる。

‣ ポイント

Dockerそのものが何かするのではない(仮想化・クラウドと同じ)

– Dockerは、あくまでも、利用者の利便性を向上する道具

(プラットフォームの役割)

Docker Engine はインフラを抽象化--developer’s efficiency and application portability

Page 34: いまからでも遅くない Docker事始め&愉快な仲間達

34SoftLayer と Bluemix 利用者のための Docker 入門

‣ Docker 動作環境の自動作成仮想サーバの起動と Docker のプロビジョニングを自動的に行う

‣ コマンドラインで使うツールdocker-machine –d <ドライバ> [option] マシン名 …のように、コマンドで操作

‣ Linux, Windows, Mac OS X に対応

‣ VirtualBox だけでなく、多くのクラウドに対応Amazon Web Services, DigitalOcean, exoscale, Google Compute Engine, SoftLayer, Azure, Hyper-V,

OpenStack, RackSpace, VMwareFusion, VMwarea vCloud Air, VMware vSphere, SSH 可能なリモートホスト

Docker Machine

Page 35: いまからでも遅くない Docker事始め&愉快な仲間達
Page 36: いまからでも遅くない Docker事始め&愉快な仲間達
Page 37: いまからでも遅くない Docker事始め&愉快な仲間達

$ docker-machine create ¥--driver softlayer ¥--softlayer-user ######## ¥--softlayer-api-key ####### ¥--softlayer-domain docker.jp ¥--softlayer-region tok02 ¥sl1

$ docker-machine ssh sl1

Page 38: いまからでも遅くない Docker事始め&愉快な仲間達

38SoftLayer と Bluemix 利用者のための Docker 入門

Docker Swarm

‣ Docker クラスタ管理ツールDocker ホストの集まりを作成したり、アクセスできるようにするツールで、API を持つ

‣ コマンドラインで操作docker-machine で環境を作り、docker run swarm create

‣ クラスタ形成

ディスカバリ(マネージャへの登録に、consul や etcd にも対応)

フィルタ(コンテナを配置する条件の設定は、Docker を抽象化)

ストラテジ(どこのノードにコンテナを自動配置するか方針設定)

Page 39: いまからでも遅くない Docker事始め&愉快な仲間達

VM

Docker

SwarmManager

Dokku, Docker Compose, Krane, Jenkins, Apache Mesos …

VM

Docker

VM

Docker

VM

Docker

コンテナ コンテナ コンテナ コンテナ

Page 40: いまからでも遅くない Docker事始め&愉快な仲間達

40SoftLayer と Bluemix 利用者のための Docker 入門

Docker Compose

‣ 複数コンテナのアプリケーション自動設定Dockerfile を複数のコンテナに拡張したようなイメージ

‣ コマンドラインで操作docker-compose docker-compose.yml

‣ Linux, Windows, Mac OS X に対応

‣ 構成情報を YAML 形式のファイルで定義

Page 41: いまからでも遅くない Docker事始め&愉快な仲間達

docker-compose.yml

web:build: .command: php -S 0.0.0.0:8000 -t /wordpressports:

- "8000:8000"links:

- dbvolumes:

- .:/wordpressdb:

image: orchardup/mysqlenvironment:

MYSQL_DATABASE: wordpress

Dockerfile

FROM orchardup/php5ADD . /wordpress

Page 42: いまからでも遅くない Docker事始め&愉快な仲間達

TMTOWTDIThere’s More Than One Way To Do It

Page 43: いまからでも遅くない Docker事始め&愉快な仲間達

VS

仮想化システム

構成管理ツール

クラウド環境

Page 44: いまからでも遅くない Docker事始め&愉快な仲間達

背景画像CREDIT:rvika/ PIXTA(ピクスタ)https://pixta.jp/@prof261092

Page 45: いまからでも遅くない Docker事始め&愉快な仲間達

背景画像CREDIT:rvika/ PIXTA(ピクスタ)https://pixta.jp/@prof261092

1. 今すぐ始めなくてはいけない

2. すべての環境をコンテナにしなくてはいけない

3. 仮想化システムは不要になる

4. 構成管理ツール(Chef,Puppet,Ansible等)は不要になる

5. クラウド環境は不要になる

6. Dockerやコンテナが全てを解決してくれる

7. Dockerは難しい

8. 本番環境では使えない

9. セキュリティや信頼性に問題がある

10. Dockerは冗長化できない

Page 46: いまからでも遅くない Docker事始め&愉快な仲間達

背景画像CREDIT:rvika/ PIXTA(ピクスタ)https://pixta.jp/@prof261092

11. ネットワークが貧弱だ

12. よく落ちる

13. 商用サポートを受けられない

14. Docker ではなく CoreOS を使うべきだ

15. データの可用性が貧弱

16. Docker があればコスト削減できる

17. Docker は kubernetes がないと意味が無い

18. Docker やコンテナを使うとベンダーロックインされる

19. Docker であれば業務効率化できる

20. そもそも、Docker を使う意味が無い

Page 47: いまからでも遅くない Docker事始め&愉快な仲間達

47

dockerクライアントの基本コマンド

docker run

コンテナ実行

docker stop

コンテナ停止

docker commit

コンテナイメージ化

docker pull

イメージの取得

docker build

イメージの自動構築

docker attach

コンテナにアタッチ

docker logs

標準出力の表示

docker inspect

詳細情報の表示

docker rm

イメージ削除

docker images

イメージ一覧表示

diff | history

差分・履歴表示

Page 48: いまからでも遅くない Docker事始め&愉快な仲間達

Application Development for IBM Connections with IBM Bluemixhttp://www.slideshare.net/niklasheidloff/application-development-for-ibm-connections-with-ibm-bluemix-41052648/9

Page 49: いまからでも遅くない Docker事始め&愉快な仲間達

Docker on Bluemix

2■■□

Page 50: いまからでも遅くない Docker事始め&愉快な仲間達

50SoftLayer と Bluemix 利用者のための Docker 入門

IBM Containers

‣ Dockerコンテナを元に独自拡張

• 2014年12月4日 beta発表→2015年6月正式版として提供

‣ 機能と特徴

• コンテナを直接使うことができる(インフラの管理が不要)

• コンテナはパブリックとプライベートなネットワークを利用できる

• プライベートな Docker レジストリ

• そのほかの Bluemix のサービスとの統合

• Docker を元にした API やコマンド・ラインツール、互換性

Page 51: いまからでも遅くない Docker事始め&愉快な仲間達
Page 52: いまからでも遅くない Docker事始め&愉快な仲間達
Page 53: いまからでも遅くない Docker事始め&愉快な仲間達

docker daemon( server )

docker( client)

docker run <image>

Docker HubDocker Trusted Registry

Docker Registry

docker pull

Page 54: いまからでも遅くない Docker事始め&愉快な仲間達

IBM containers( Bluemix endpoint )

"docker" or "cf ic"( client)

docker run <image>

Private Registryregistry.ng.bluemix.net

docker pull

Bluemix GUI

docker push

cf logincf ic login

Bluemix

監視

Bluemix認証

Page 55: いまからでも遅くない Docker事始め&愉快な仲間達

55SoftLayer と Bluemix 利用者のための Docker 入門

ローカル環境との違い

‣ Bluemixの認証が必要

• cf login

• cf ic login

‣ プライベート・レポジトリが利用可能

• docker build で構築したイメージは、そのままリモートに保存

• docker push も利用可能

• 例:registry.ng.bluemix.net/zembutsu

Page 56: いまからでも遅くない Docker事始め&愉快な仲間達

export DOCKER_HOST=tcp://containers-api.ng.bluemix.net:8443export DOCKER_CERT_PATH=/zembutsu/.ice/certsexport DOCKER_TLS_VERIFY=1

# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESfd3574fd-204 registry.ng.bluemix.net/zembutsu/bluemixapp1:0.1 "bash " 22 seconds ago Running 14 seconds ago sharp_engelbart14ef7bc3-478 registry.ng.bluemix.net/zembutsu/bluemixapp1:0.1 "bash " About a minute ago Running 57 seconds ago modest_brown

$ cf ic run registry.ng.bluemix.net/zembutsu/bluemixapp1:0.1fd3574fd-2049-49d2-9b10-c6d585bcf098

Page 57: いまからでも遅くない Docker事始め&愉快な仲間達

57SoftLayer と Bluemix 利用者のための Docker 入門

現時点の課題

‣ リージョンが2箇所

• 米国:ダラス(テキサス州)

• 英国:ロンドン

‣ まだ機能統合の途中

• Docker 1.6 相当、docker クライアントと cf クライアントの互換性

‣ ドキュメントが一部英語

Page 58: いまからでも遅くない Docker事始め&愉快な仲間達

Docker on SoftLayer

3■■□

Page 59: いまからでも遅くない Docker事始め&愉快な仲間達

59SoftLayer と Bluemix 利用者のための Docker 入門

SoftLayer で Docker

‣ SoftLayer の環境を有効活用できる

• プライベート・ネットワーク

• 世界中とつながるバックボーン

• ベアメタル環境

‣ Docker 実行環境は自分で用意する必要

そのかわり、自由な構成ができる

• 例:パブリック側からアクセスができない Docker デーモン

• 例:パブリック側からアクセスできないレジストリ

Page 60: いまからでも遅くない Docker事始め&愉快な仲間達

60SoftLayer と Bluemix 利用者のための Docker 入門

‣ 基本的に自由

Ubuntu 14.04 LTS が扱いやすい

‣ パッケージ版はバージョンが違うので注意

Ubuntu, Debian, CentOS, RHEL, Fedora

どの環境を使うべき?

apt-get install curlcurl -sSL https://get.docker.com/ | sh

Page 61: いまからでも遅くない Docker事始め&愉快な仲間達

61SoftLayer と Bluemix 利用者のための Docker 入門

‣ Docker 実行環境をコマンドラインで構築

• 新しいホスト環境を作成し、docker も自動インストール

• IP アドレスやログイン情報を把握しなくても、リモート SSH 可能

• 作業が終わったら、コマンドで削除可能

‣ プライベート・レジストリの活用

• Docker イメージの保管場所をローカルにも持てる

• Object Storage 上へデータを保管する指定も可能

Docker Machine

Page 62: いまからでも遅くない Docker事始め&愉快な仲間達

$ docker-machine create ¥--driver softlayer ¥--softlayer-user ######## ¥--softlayer-api-key ####### ¥--softlayer-domain docker.jp ¥--softlayer-region tok02 ¥sl1

$ docker-machine ssh sl1

Page 63: いまからでも遅くない Docker事始め&愉快な仲間達

63SoftLayer と Bluemix 利用者のための Docker 入門

‣ Docker Swarm

• コンテナのクラスタ管理

‣ Docker Compose

• 複数のコンテナ間連携を docker-compose.yml で定義

Dockerの他のツールとの連携

Page 64: いまからでも遅くない Docker事始め&愉快な仲間達

今日のまとめWrap up

Page 65: いまからでも遅くない Docker事始め&愉快な仲間達

65

今日のまとめ1今日から始めるDocker

‣ Dockerの考え方と概要

速さと利便性

Docker はコンテナではなくプラットフォーム

既存システムと対立するものではなく、価値を生み出すもの

‣ 既存システムとの共存

Bluemix は Docker 互換の IBM Containers

SoftLayer は Docker 環境を便利に活用できる

Page 66: いまからでも遅くない Docker事始め&愉快な仲間達

66

今日のまとめ2今日から始めるDocker

‣ Dockerありきで考えると全てが破綻する

何のために導入するのか?

既存システムとは対立するものではない

‣ 現実的な課題はあるが "皆さん" と乗り越えたい

多くの場合、業務フローの変更を伴うことが予想される

Docker イメージ管理 ( DockerHub, DTR, Private Registry )

運用(監視、性能評価、セキュリティ、ネットワーク)

Page 67: いまからでも遅くない Docker事始め&愉快な仲間達

TMTOWTDIThere’s More Than One Way To Do It

Page 68: いまからでも遅くない Docker事始め&愉快な仲間達

68

何か気になることはありますか?

Page 69: いまからでも遅くない Docker事始め&愉快な仲間達

69

‣ Docker ドキュメント

http://docs.docker.com/

‣ Docker ドキュメントの日本語訳(仮)

http://qiita.com/zembutsu/items/444396b76e0db2c04c2b

(まとめて、どっかに整理するつもりです。)

参考情報