SlideShare a Scribd company logo
1 of 70
Dockerコンテナとオーケストレーションの理解
今なぜDockerなのか?何ができるのか?
前佛雅人 @zembutsu Version1.1
• Docker とは何で、どこで使うのか?
• Docker を動かす技術
• Docker コンテナとイメージ
• オーケストレーション
• 課題
• 導入事例
「今さら他人に訊けないDocker」
的な内容を目指しています。技術
要素というよりは、利用シーンや
使いどころの紹介が中心です。
本資料は公開時点(2016年6月)
のものです。常に最新のドキュメン
トをご確認願います。
https://en.wikipedia.org/wiki/Moby-Dick
白鯨 – Moby-Dick
今回の私の立場は「Dockerはい
いぞ」や「バスに乗り遅れるな!」
ではありません。
あるいは、Dockreとは鯨のマス
コットですが、メルヴィルの「白鯨」
に出てきたような得体の知れない
白い悪魔ではありません。あるい
は、エイハブ船長のように鯨に対し
て何かしら執念めいたものは私に
はありません。
Docker
Dockerが業務に使えそうならば
支援いたします。もし、あわなけれ
ば無視いただいて結構です。あく
までも選択肢の1つとして活用で
きたらいいですね、という立ち位置
での説明です。
海に棲むのは鯨だけではないので
すから。
https://www.docker.com
Dockerとは?
Dockerとは?
• アプリを構築・移動・実行するためのプラットフォーム
• 設計思想は、開発者がアプリを簡単に動かす環境の構築
• オープンソース・プロジェクトを Docker, Inc. が支援
• Linux カーネル技術を使い、コンテナ化を実現
“Docker allows you to package an application with
all of its dependencies into a standardized unit for
software development.”
Dockerはアプリケーションと全ての依存関係をパッケージ化します。その
ソフトウェア開発の全依存関係は、標準化したユニットに入っています。
www.docker.com
アプリ
ケーション
依存関係
システム基盤(インフラ)
アプリケーションを実行するには、まず土
台としてのシステム基盤(インフラ)が
必要です。
その上に、ミドルウェアなどアプリケーショ
ンを実行するための依存関係を準備し、
ようやくアプリケーションが動作します。
つまり、常にインフラを起点として考える
必要がありました。
• オペレーティング・システム [Linux|Unix|Windows]
• ハードウェア、ネットワーク、ストレージ [物理|仮想化|クラウド]
• ミドルウェア
• 各種プログラミング言語環境や、システム・ライブラリなど
• バイナリやソースコード
• 設定用パラメータ
application
dependencies
Infrastructure
アプリ
ケーション
依存関係
システム基盤(インフラ)
一方Dockerが目指す方向は逆です。
まず実行したいアプリケーションがあり、
それを簡単に実現する手段として、ア
プリケーションとその依存関係を
「Dockerコンテナ」という単位で扱えるよ
うにします。Dockerエンジンが動く環境
であれば、どのようなDockerコンテナも
実行可能なのです。
次ページ以降で、Dockerを詳しくみて
いきましょう。
• オペレーティング・システム [Linux|Unix|Windows]
• ハードウェア、ネットワーク、ストレージ [物理|仮想化|クラウド]
• ミドルウェア
• 各種プログラミング言語環境や、システム・ライブラリなど
• バイナリやソースコード
• 設定用パラメータ
application
dependencies
Infrastructure
Docker
コンテナ
Docker Engine
(dockerd)
Docker
アプリケーションを開発・移動・実行するプラットフォーム
「開発者が簡単にアプリケーションを動かす環境を作る」設計思想が始まり
2013年3月に発表
Linuxカーネル技術でコンテナ化
名前空間(namespace)はプロセスやリソースを分離(独立)する
コントロール・グループ(cgroup)はリソースの管理・制限する
開発状況
オープンソース (Apache License 2.0)
コミュニティ(GitHub)を支援する Docker, Inc.
コンテナ標準規格化団体 OCI と協調
2つのDocker
Docker プロジェクト
• 開発者やシステム管理者が、
アプリを開発・移動・実行する
プラットフォーム
• オープンソース
• Docker, inc. はスポンサーと
商用サポートを提供
primary contributor, maintainer
• イメージとコンテナを管理
• ホスト上で動くプロセス
• Linux カーネルの技術を使う
namespaces, cgroups, netfilter 等
Docker デーモンとツール群
プロジェクトとツール、どちらもDocker
(ドッカー)と呼びます。技術サポート
や支援をしているのがDocker社です。
Docker, Inc.
商用Dockerソリューションの提供
開発・移動・実行を統合するソリューションと製品群
商用技術サポート
前身はPaaS 事業者
アプリケーション・プラットフォーム dotCloud、事業売却済
Dockerプロジェクトのスポンサー
オープンソース版 Docker のプライマリ・コントリビュータ&メンテナ
10億以上の Docker イメージのダウンロード
1,500 人以上の貢献者
20万以上の Docker 対応アプリケーション
(p.11) 開発86%, テスト64%, … プロダクション40%
http://offers.ruxit.com/rs/987-BEQ-874/images/State_of_Containers_Ruxit_compressed_V2.pdf
(コンテナ技術利用者の割合)
Dockerのミッション
build ship run
分散システムやデータ解析など様々な
システムやアプリケーションが提供されて
います。しかし環境ごとに検証が必要
であり、どこでも必ず動く保証はありま
せん。いかに速く動かすかが重要です。
変わる環境
暗黒^H^H物理時代
仮想化・クラウド時代
コンテナ時代
機
材
発
注
機
材
納
品
設
置
機
器
設
定
事
前
設
計
ク
リ
ッ
ク
見
積
も
り
O
S
設
定
環
境
構
築
試
験
利
用
開
始
試
験
開
発
試
験
運
用
利
用
開
始
…
…
事
前
設
計
ク
リ
ッ
ク
試
験
利
用
開
始
…
事
前
設
計
ク
リ
ッ
ク
試
験
利
用
開
始
…
開 発 段 階 検 証 段 階 本 番 段 階
すべてを迅速に、一貫した環境で
仮装化技術により、物理に比べれば
迅速にアプリを動かせるようになりまし
た。しかし、環境が増えた分だけ検証
も必要ですし、実行にも時間が必要。
なぜ Docker は誕生したのか?
物理から仮想化の流れ
デプロイ時間が遅い、コストが大きい、無駄なリソースやスケールしづらさ
ハイパーバイザ型仮想化基盤の登場で、1台のサーバ上で複数の仮想マシンを動かせる
仮想化からクラウドへ
仮想化はリソースの共有が優れており、スケールも簡単
必要な場面ですぐに仮想マシンを用意でき、使った分だけ支払うモデル
新たな課題
多くの仮想マシンを動かすには、より多くのリソースを必要
アプリケーションのポータビリティは保証しない
インフラの視点であればリソースの集約
の延長線上に見えるかもしれません。
しかし、そうではなく、あくまでアプリを速
く簡単に「構築・移動・実行」に焦点を
あてているのがDockerです。
デプロイの悪夢
ウェブ・スタック
ウェブ・フロントエンド
バックグラウンド
ワーカー
ユーザ DB
解析 DB
キュー
開発用
VM
QA
サーバ
本番用
サーバ
クラスタ
パブリック
クラウド
ノートPC
お客さま
サーバ
仮想化・クラウド技術の活用により、
様々な環境でシステムを動かすことは
可能です。ですが、それぞれの環境で、
デプロイの検証・時間・手間が必要。
それだけではなく、アプリケーションは
作って終わりではありません。今日のア
プリケーションやサービスは、作った後も、
継続した開発や拡張が行われることが
増えつつあります。
現実世界の移動
これに似た課題が、現実世界における
モノの輸送でしょう。運ぶモノや手段の
組み合わせは様々です。
様々な
種類の
「モノ」
輸送の
手段は
色々
「モノ」にお互いの
影響を与えず
運ぶには?
(例:コーヒーと
香辛料を運ぶ)
迅速かつスムーズ
に転送可能か?
(例:船から貨
物列車への積み
替え時)
コンテナ規格で問題解決
モノをコンテナという共通規格の中に入
れることで、移動手段が変わってもス
ムーズに、かつモノに影響を与えません。
様々な
種類の
「モノ」
輸送の
手段は
色々
「モノ」にお互いの
影響を与えず
運ぶには?
(例:コーヒーと
香辛料を運ぶ)
迅速かつスムーズ
に転送可能か?
(例:船から貨
物列車への積み
替え時)
コンテナ規格により、事実上、あ
らゆるモノを運ぶことができ、かつ
送り先には封印したままで届ける
長距離輸送中の積み込み、荷下ろし、
積み重ね、移動が効率的であり、
様々な輸送手段に切り替え可能
Dockerコンテナ
エンジンは様々なものを軽量・
移動可能・自給自足的なコン
テナにカプセル化できる
標準的なOS操作により、あらゆる
ハードウェア・プラットフォームで仮想
的に一貫して実行可能
複数の
開発
スタック
複数の
ハードウェア
環境
サービスとアプリ
ケーションは適切
に通信可能か?
迅速かつス
ムーズに移動
可能か?
静的ウェブサイト ユーザDB ウェブ・フロントエンド キュー 解析DB
開発用
仮想マシン
QAサーバ お客さま
データセンタ
パブリックク
ラウド
プロダクション
クラスタ
コントリビュータ
ノートPC
アプリが必要なものをDockerコンテナと
して扱えば、アプリの環境が変わっても、
スムーズな移動や実行ができます。
ウェブ・スタック
ウェブ・フロントエンド
バックグラウンド
ワーカー
ユーザ DB
解析 DB
キュー
開発用
VM
QA
サーバ
本番用
サーバ
クラスタ
パブリック
クラウド
ノートPC
お客さま
サーバ
つまり、様々な環境の差異があったと
しても、Dockerコンテナであれば、実行
に至るまでの検証の手間やデプロイ時
間を確実かつ短くできる得るのです。
Docker が実現したこと
ソフトウェアが必要な全てをファイルシステムに包む
コード、ランタイム、システム・ツール、シスラム・ライブラリなど
サーバにインストールする全てをイメージ化
どのような環境でも実行を保証
Docker イメージは、Docker エンジンの動く環境上であればどこでも実行可能
ソフトウェアを動かすのに環境構築やセットアップ作業は不要
軽量・オープン・安全
ホスト OS を必要としないためメモリはより少なく、イメージにはファイルだけなのでサイズが小さい
様々なインフラで動く Linux ディストリビューションや Microsoft Windowsをベースにする
インフラとアプリケーションを分離
このDockerコンテナは、開発者だけでな
なく、運用担当者でさえも、開発・移
動・実行の各場面で利用できます。
開発
バージョン
管理
1. 開発 2. テスト 3. ステージング / 本番
QA / QE
運用担当
他にも、商用製品のトラステッド・レジス
トリやユニバーサル・コントロール・プレーン
を使えば、インフラごとにアプリケーション
の連携・切り替えも可能になるでしょう。
対応前 Docker対応後
アプリケーション・チーム
ユニバーサル・コントロール・プレーントラステッド
レジストリ
Docker Datacenter
必要があれば、DTR(DockerTrusted
Registry)、UCP(UniversalContorl
Plane)を組みあわせることも。
クラウドの
ポータビリティ
アプリの
ポータビリティ
アプリで必要なプライベートなデータセンタ
あらゆるアプリが対応するクラウド
リソースのプロビジョン(自動設定)
ロールベースアクセス制御(RBAC)
トラステッド・レジストリ上に
アプリケーションのテンプレート
中央ポータル
仮想マシン vs Docker、ではない
コンテナはプラットフォームに依存しない
コンテナであれば、ある環境で構築したら、別の環境に迅速に移動可
Dockerイメージはソフトウェアのスケール(増減)を迅速かつ簡単に
コンテナは OSとアプリを明確に役割分担
開発者はアプリケーション開発に集中、運用担当はデプロイ作業や運用に集中
仮想化は手軽に厳密なリソース管理が可能
仮想化システムの利用には業務手順の(大きな)変更を伴わない
リソースの集約と管理がやりやすい
単純な比較は無意味
システム基盤としてのコンテナ導入や、コスト削減・省力化の視点でのコンテナ化は意味が無い
さて、ここで皆さんの中で1つの疑問が
浮かぶかもしれません。これまでのコンテ
ナの使いどころとは、仮想化と同じなの
では?と。
機能的には似通っている部分もありま
すが、それを実現する手法や利用シー
ンは異なります。どちらが優れているか
否かではなく、用途に応じた使い分け
や、双方の組み合わせが効果的です。
仮想化 Docker コンテナ
独立した環境
仮想ハードウェア
Dockerイメージ
リソース集約
様々なOSが動作
Linux kernel
技術を活用
※ Dockerコンテナは、アプリケーションが複数サーバにスケール
する前提なら、環境の繰り返し作成・廃棄を高速に行える
※ スケールが必要なければ、必要なハードウェアや OS に
あわせた環境を自由に構築できる
• プロセスは namespace を通して PID 、
ファイルシステムなど、様々な名前空間を分離
プロセスを起動後、瞬時に分離かつリソースを制限可能
な点が仮想化と似て見えますが、実装や仕組みや操作
性は全く異なる。
• Control groups の機能を使い、1つ1つの
コンテナ(Linuxのプロセス) に対して CPU、メモリ、
I/O の制限をかけられます
使い捨て型
(再利用性)
共通要素
• ハイパーバイザ型もしくはホスト型の仮想化
技術により仮想マシンを実行
• ハイパーバイザ技術により仮想マシンを実行
インフラのコード化
• Dockerfile や docker-compose.yml で
確実にアプリが動作する環境再現性を管理
• 階層化したイメージ・レイヤにファイルシステムや
メタデータを格納
• 親子関係により、ディスク容量節約や移動高速化
• 厳密なリソース定義や確実な環境分離を
提供
環境の移行がスムーズ
• サーバ管理する業務フローが確定しているの
であれば、変更しなくてもシステムの移行や
集約をしやすいので、導入しやすい
• Windows / Linux など選べる
• 32bit / 64bit などアーキテクチャを選択できる
自由度の高いハードウェア・エミュレーションや
管理性を提供する。
プラットフォームとしての Docker
システム要件としては、Dockreを動かす
ためにDockerエンジン(dockerd)が必
要であり、現状ではLinuxカーネル機
能を必要とします。
Dockerが適している環境
開発速度を加速
Docker コンテナ化は直ちに起動するので、セットアップや環境構築に時間を浪費しない
本来のアプリケーション開発、バグ修正、新機能追加に集中
開発者の想像力を強化
適切な言語環境の選定と構築が可能
ホスト環境上の OS やライブラリの整合性を考慮しなくてよい
環境の矛盾や依存の問題を撲滅
アプリケーションの依存関係や設定を、コンテナ(イメージ)に包み込める
「私の環境では動くけど、別の環境では動かない」問題は、もう起こらない
Dockerを動かす技術
Dockerを動かす技術
• Docker Engine (dockerd) がリクエストを受信後、各種処理
• 名前空間(namespace)はプロセスごとに独立した環境を作る
• コントロール・グループ(cgroups)はリソースを制限・管理
• Linux カーネル技術や業界共通の規格を採用
Docker と Linux カーネル
Docker Engineはコンテナを移動・実行するプログラム
Engine (dockerd) はデーモン(サーバ)であり、Linux カーネルとクライアントとの処理を仲介
Dockerコンテナ
ホスト OS のカーネル機能を使い、複数のルート・ファイルシステムを実行
コンテナは個々のリソース(CPU、メモリ、デバイス、ネットワーク)を持つ
Dockerコンテナの実行にはDockerイメージが必要
コンテナの起動は、Linuxカーネルの技術を使う
名前空間(namespace)は、プロセス間を分離、独立(isolation)
コントロール・グループ(cgroup)は、CPU、メモリ、I/Oなどのリソース管理と制限
技術について軽く触れます。Dockerコ
ンテナを実行するにはDockerエンジン
が必要です。現状はLinux上で動作。
Docker に影響を与えた技術
chrootシステム・コール
1979年 Version 7 Unix で実装が計画
特定のプロセスとその子プロセスに対して、見かけ上のルート・ディレクトリを指定
jail
2000年 FreeBSD 4.0 のリリース
Linux Containers (LXC)
2008年 Linux kernel 2.6.24 で実装
Docker内部で使う技術は、突然新し
く湧き出てきた技術ではありません。古
くからのリソース独立(isolation)を実現
する各種技術の延長上にあります。
Docker Engine
Linux Kernel
・namespaces
・cgroups
・capabilities … etc
LXC
libcontainer
runC
containerdv0.9~
v1.11~
Version 7 Unix
chroot
jail
dockerd
v1.12~
DockerEngineはLinuxカーネルにアク
セスするため、従来はLXCを使っていま
した。開発速度の都合上、一時的に
独自実装をしていました。
現在は業界標準化団体の仕様に則
る、互換ランタイムで実行可能です。
デーモン
ライブラリ
ランタイム
コンテナ標準規格
OCI : オープン・コンテナ・イニシアティブ
共通のコンテナ規格を策定する業界標準化団体が 2015 年夏に発足
Docker, Inc. が libcontainer のライブラリを供与
Amazon、Microsoft、IBM 等のクラウド・ベンダをはじめ、Red Hat や Docker も参画
https://www.opencontainers.org/
Dockerの独自仕様ではない
Docker コンテナも OCI に準拠した規格に対応 (v1.11~ runC を採用)
OCI 準拠のランタイムであれば、コンテナごとに任意に切り替え可能 (v1.12~)
コンテナ利用はベンダ・ロックインにつながらない
Docker を中心としたエコシステムも拡がりつつある
コンテナの仕様は、もはやDocker社の
ものではありません。Docker社は共通
規格化への取り組みを進めています。
規格に則る他のランタイムもDocker
上でも実行可能になりつつあります。
Dockerコンテナとイメージ
Dockerコンテナとイメージ
• コンテナはLinux ホスト上で独立しているプロセス空間、等
• Dockerイメージを使って、コンテナを起動する
• Dockerイメージは親子関係のあるレイヤ(層)の積み重ね
isolation
もう少しだけ技術的な話題が続きます。
どうしてコンテナを起動するのが速くて、
他の場所へ移動するのも速いのか?と
いう問いに対する答えがこちらです。
Docker の操作
OS ( Linux )
物理/仮想サーバ
Docker エンジン
( dockerd デーモン )
Linux kernel
コンテナ コンテナ コンテナ
リモート
APIdocker
クライアント
・docker コマンド
Linux, Mac OS X, Windows
・Kitematic (GUI)
Mac OS X, Windows
・Docker Compose
・Docker Swarm
TCP あるいは
Unix ソケットドメイン
Dockerはクライアント・サーバ型アプリ
ケーションです。Dockerコンテナを起動
するには、Dockerエンジンが必要です。
httpd
PID 1
コンテナA コンテナB
ruby
PID 1
chris.rb
PID 2
コンテナのプロセス
それでは、コンテナを起動した時のプロ
セスの状態を見てみます。ここでは2つ
のコンテナを起動しました。
それぞれのプロセスのPIDが「1」になって
います。各プロセスは名前空間が独立
しているため、お互いのことを知ることが
できません。つまり、2つの独立したコン
テナが起動している状態です。
コンテナのプロセス
httpd
PID 1
コンテナA コンテナB
ruby
PID 1
chris.rb
PID 2
/sbin/init
PID 1
dockerd
PID 4
httpd
PID 5
ruby
PID 6
chris.rb
PID 7
alice
PID 2
bob
PID 3
PPID 1 PPID 1 PPID 1
PPID 4 PPID 4
PPID 6
しかし、あくまで独立して見えるのはお
互いのコンテナ(で独立したプロセスの
名前空間)内だけです。実際のLinux
ホスト上からは、通常通りプロセスが起
動している状態にすぎません。また、ホ
スト上からは通常のPIDを持っているよ
うにも見えます。
Dockerは、このコンテナ状態のプロセス
に対し、リソース制限やファイルシステム
の割り当て、ネットワーク指定が可能。
コンテナのファイルシステム
コンテナAのファイルシステム
… …
コンテナBのファイルシステム
/etc
(/data/ubuntu/etc)
/bin
(/data/ubuntu/bin)
/etc
(/data/centos/etc)
/bin
(/data/centos/bin)
/ /
ファイルシステムの場合も、やはりコンテ
ナごとにLinuxの「/」以下のファイルシ
ステム(/bin,/etc,/var…)を持っている
ように見えます。そして、お互いのコンテ
ナは独立していますので、通常は互い
にアクセスできません。
コンテナのファイルシステム
コンテナAのファイルシステム
… …
コンテナBのファイルシステム
/etc
(/data/ubuntu/etc)
/bin
(/data/ubuntu/bin)
/etc
(/data/centos/etc)
/bin
(/data/centos/bin)
/ /
/
/etc /data
/data/ubuntu /data/centos
/bin
そして、コンテナのプロセスがホスト側か
らは普通に見えたのと同様、コンテナの
ファイルシステムも、実体としてはホスト
側に特定のディレクトリ(正確にはユニ
オン・マウント・ポイントと呼ばれる複数
のディレクトリを1つのディレクトリに見
せる技術)があります。
そこをコンテナ状態のプロセスに対し、
ファイルシステムをchrootしているような
状態です。
Docker イメージ
コンテナ実行時に必要なファイルシステム
イメージ・レイヤ(層)の集合体。実体は tar アーカイブ
読み込み専用で変更できない
イメージはレイヤを共有できる
レイヤには親子関係があり、イメージ構築時は差分を記録
無駄なディスク両々の増加を防ぎ、移動しやすく
コンテナ起動時、イメージを使う
コンテナ内のファイルを隔離した状態で実行する
読み書き可能なレイヤをイメージの上に追加する
それではDockerイメージとは何でしょう
か。ポイントはDVDやBlu-rayのように
読み込み専用な点と、レイヤごとに共
有できる点。特に後者は、合計ディス
ク容量を減らします。ネットワークを経
由しても、コスト面・速度面で移動しや
すくなる利点。仮想化はこれが大変。
$ docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
203137e8afd5: Pull complet
2ff1bbbe9310: Pull complete
933ae2486129: Pull complete
a3ed95caeb02: Pull complete
Digest: sha256:1bea66e185d3464fec1abda32ffaf2a11de69833cfcf81bd2b9a5be147776814
Status: Downloaded newer image for ubuntu:latest/
Ubuntuのイメージは4つのレイヤが重
なっています。新しくコンテナを起動する
と、この上に読み書き可能なレイヤが
自動的に追加されます。
そのため、コンテナを沢山同時に起動し
ても、多くのディスク容量を必要としま
せんし、起動に必要な時間は瞬間的
です(ほぼ、読み書き可能なレイヤを
追加するだけ)。
$ docker pull wordpress
Using default tag: latest
latest: Pulling from library/wordpress
fdd5d7827f33: Already exists
a3ed95caeb02: Download complete
8c80f2e38113: Download complete
2da85bfb1ac0: Download complete
1da50ec818af: Download complete
b2799c7ad5c9: Downloading 1.113 MB/2.844 MB
4893554c0107: Download complete
b1d739e1b940: Waiting
bd103e3f6195: Waiting
aa560ff33ce6: Waiting
1deabfa10759: Waiting
91e6991f7a34: Waiting
7234c82b998e: Waiting
6bf8bdf2e550: Waiting
a5c7e6ead07c: Waiting
fe011342f195: Waiting
c6dd706ba27e: Waiting
35d564cafd69: Waiting
730edfa5d07f: Waiting
Digest: sha256:bfd7e102741d73cce4ec58b2d937586c670f31df1c80aeaf4d5c525eb3c6ac06
Status: Downloaded newer image for wordpress:latest
イメージによっては、このように多くのレイ
ヤが重なっているものもあります。イメー
ジ・レイヤは並列に送受できるだけでな
く送信も可能です(デフォルトは3)。
Demo
https://youtu.be/bHEgg9Hg8LM
Docker コンテナの起動デモです。
Docker Machine で Docker の動く環境を構築し、
hello-world コンテナ、nginx コンテナを起動します。
オーケストレーション
オーケストレーション
• Docker コンテナのライフサイクルは1コンテナ前提
• 複数の Docker コンテナや Docker の動作環境を一斉管理
するための純正ツール群
• いずれもオープンソース・プロジェクトとして公開
もう少しだけ技術的な話題が続きます。
どうしてコンテナを起動するのが速くて、
他の場所へ移動するのも速いのか?と
いう問いに対する答えがこちらです。
Dockerコンテナのライフサイクル
Dockerイメージとコンテナを管理するコ
マンドは、こちらの画面にある通りです。
Engine
$ docker run …
$ docker run …
$ docker run …
$ docker run …
一般的なアプリケーションでは、ウェブ用
インターフェースとデータベースなど、複数
のコンテナを起動する必要があるでしょ
う。そのような時、毎回dockerコマンド
を実行するのは大変です。
Engine
$ docker-compose up
これをDockerComposeというクライア
ントを使えば、複数コンテナの同時起
動・停止が可能になります。scaleコマ
ンドを使えば、コンテナを一斉に増やし
たり減らしたりも可能です。
$ docker run …
$ docker run …
$ docker run …
そして、もう1つ。複数のサーバ上で
Dockerを分散して実行したい場合が
考えられます。例えばウェブとデータベー
スを分けたい場合です。その時に都度
SSHログインしたり、環境を切り替えた
りするのではなく
$ docker run …
$ docker run …
$ docker-compose up …
リクエスト先をDockerSwarmマネー
ジャに向けることで、複数のDocker環
境を1つのリソース・プールとみなせます。
Dockerクライアントの接続先を変更し
なくても、ルールに従ってコンテナの起動
や管理を可能とします。また、Swarm
とComposeは組み合わせ可能です。
version: '2'
services:
zabbix-db:
image: zabbix/zabbix-db-mariadb
volumes:
- zabbix-db-storage:/var/lib/mysql
- backups:/backups
- /etc/localtime:/etc/localtime:ro
environment:
- MARIADB_USER=zabbix
- MARIADB_PASS=my_password
zabbix-server:
image: zabbix/zabbix-3.0:latest
depends_on:
- zabbix-db
ports:
- "80:80"
- "10051:10051"
volumes:
- /etc/localtime:/etc/localtime:ro
links:
- zabbix-db:zabbix.db
environment:
- ZS_DBHost=zabbix.db
- ZS_DBUser=zabbix
- ZS_DBPassword=my_password
volumes:
zabbix-db-storage:
driver: local
backups:
driver: local
Composeの具体例をみていきましょう。
こちらはZabbixという監視ツールの実
行に、2つのコンテナ、2つのボリューム
と呼ばれるデータ領域を作ります。
Demo
https://youtu.be/uhwrRj-vNzc
Zabbix 3 コンテナの起動デモです。
Zabbix 3 は RHEL7 以上の OS に慣れる必要があります。
Docker があれば、環境の差違を気にしなくても構いません。
Zabbix 3 の操作にのみ集中できます。
課題
Docker と課題
セキュリティ対策は従来と同じ
べースの OS は通常の Linux ないし Windows なので、セキュリティ対応は欠かせない
従来の手法に比べ、更新しやすい(イメージの自動構築機能)
Content Trust や Notary といった技術を利用しセキュリティを高める
運用や監視も特に変わらない
Docker Engine の管理が必要になるが、その他は通常のサーバ管理と同じ
Docker 導入が目的化すると方向を見失いがち
リソース削減や集約が、そのまま開発・運用コストの削減にはつながらない
とはいえ、Dockerは、物理→仮想化・
クラウドの延長線上には無いため、多く
の場合で業務フローの変更を伴います。
逆に変更を伴わず、加速する可能性
があればDockerは適していると言える
でしょう。
Dockerに不向きと思われる場面
リソース集約やコスト削減の目的
確かにリソースは集約できるかもしれないが、仮想化技術とは手法が違う
結果として業務フローの変更や Docker コンテナ変換作業が発生して、コストは増える
既存のシステムをそのまま移行
Docker は開発・テスト・運用のサイクルを加速する場合には有用
単純に Docker に対応しても速さや利便性を求めないのなら、結果として仮想化やクラウドと同じ
そもそものシステム要件にあわない環境
厳密なセキュリティの確保や長期の安定性を求めるのであれば、別の適切なシステム検討を
全ての要件を満たす完璧なシステムは存在しない。トレードオフを考慮
※ Dockerはインフラ(システム基盤)ではなく、あくまでアプリケーションのプラットフォーム
時に挑戦が必要なシーンもありますが、
必要な理由がないのに導入してしまう
と、大変になりがちと思います。
• Dockerはプラットフォームであり、全てを解決しない
• Dockerコンテナのライフサイクルに対する理解が必要
• 検討要素
• 最終的な利用者は誰なのか
• 業務範囲や用途は何なのか
•詳細は別資料をご覧ください
コンテナ技術と普及がシステム・インテグレータに与える影響
http://www.slideshare.net/zembutsu/docker-impact-to-system-integrations
事例
Dockerの導入目的
引用:The State of Containers and the Docker Ecosystem 2015 (Anna Gerber)
http://offers.ruxit.com/rs/987-BEQ-874/images/State_of_Containers_Ruxit_compressed_V2.pdf
システム基盤として単に導入しましたで
はなく、何らかの課題があり、それを解
決する手段としてのDockerです。以
降で具体的な事例をみていきます。
なぜコンテナ技術を選択したか?
現時点でどの環境でコンテナを使用中か?
速い/簡単なデプロイ
デプロイの柔軟性
優れたアイソレーション
アーキテクチャ的な理由(マイクロサービス)
コスト節約
その他
開発
テスト
インテグレーション (CIビルド・ターゲット)
ステージング/準プロダクション
プロダクション
ING社 (オランダの銀行)
課題
プロダクションへのデプロイに9か月以上
評価の低いアプリケーション
冗長な手続きやアプリケーション
解決策
Dockerで継続的インテグレーションと、DevOpsを導入
結果
デプロイまで15分、週に1,500デプロイ
180の DevOps チーム、継続的デリバリに4か月で移行
GILT - 100デプロイ/日
課題
開発からデプロイまで1週間
7つのモノリシックなアプリケーション
IaaSやPaaS上でモノリシックな実装に時間がかかる
解決策
Dockerで継続的インテグレーション
結果
開発からデプロイまで数分
400以上のマイクロサービス、毎日100以上の改善
ショッピングのピーク時は、クラウド上で簡単に拡張
BBC – CIの時間を60%カット
課題
CIの処理に最低でも30分
ジョブ処理に失敗すると、待たなくてはいけない
回避策がない
解決策
Docker、Jenkins、AWS で継続的インテグレーション
結果
スケジュールの待ち時間を解消、ジョブの時間を10分に短縮
ジョブ処理を並列化、標準化と柔軟さ
Capital One – 迅速なサービス・デリバリ
課題
特定ベンダー・ロックイン
様々なツール間の軋轢
ローカル・テストの欠乏やツールのガバナンス
解決策
Docker サブスクリプション
結果
素早いプロトタイピングと、迅速なサービス・デリバリ
安定性の向上と、リソースの分離
新しいツールの評価と導入までの時間短縮
より小さく機能的なチームを構成
NECソリューション・イノベータ株式会社
http://microsoftdevops.github.io/devops/2016/05/27/NEC.html
まとめ
まとめ
アプリケーションを開発・移動・実行するプラットフォーム
始まりは「開発者が簡単にアプリケーションを動かす環境を作る」設計思想
ソフトウェア実行に必要なすべてを1つのパッケージにまとめ、どこでも開発、移動、実行できる
現時点ではLinuxカーネル技術を使用
名前空間とコントロール・グループを使うので、独自仕様・規格ではない
Docker イメージを使い、プロセスを隔離し、リソースを限定して Docker コンテナを起動する
実運用を支えるオーケストレーション・ツール群がある
Docker導入が目的化しては意味がない
これまでのサーバ管理や運用における課題を、改めて注目する必要がある
Dockerは従来のインフラ面の課題を全て解決するものではない(いわゆる、銀の弾丸ではない)
質疑応答
• 何か気になる所はありますか?
• Docker日本語ドキュメント http://docs.docker.jp
• @zembutsu or m.zembutsu@gmail.com
私としては、まずDockerのドキュメント
をお読みいただければと思っています。
これは私の個人プロジェクトで、できるだ
け最新バージョンの日本語版ドキュメン
トを共有したいです。GitHubでリポジト
リを公開していますので、お気づきの点
等ありましたら、ご指摘いただけますと
幸いです。

More Related Content

What's hot

データベース屋がHyperledger Fabricを検証してみた
データベース屋がHyperledger Fabricを検証してみたデータベース屋がHyperledger Fabricを検証してみた
データベース屋がHyperledger Fabricを検証してみたHyperleger Tokyo Meetup
 
IETF111 RATS: Remote Attestation ProcedureS 報告
IETF111 RATS: Remote Attestation ProcedureS 報告IETF111 RATS: Remote Attestation ProcedureS 報告
IETF111 RATS: Remote Attestation ProcedureS 報告Kuniyasu Suzaki
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線Motonori Shindo
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較Akihiro Suda
 
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理フロー技術によるネットワーク管理
フロー技術によるネットワーク管理Motonori Shindo
 
オラクルのHPC/GPUソリューションご紹介(2021/08版)
オラクルのHPC/GPUソリューションご紹介(2021/08版)オラクルのHPC/GPUソリューションご紹介(2021/08版)
オラクルのHPC/GPUソリューションご紹介(2021/08版)オラクルエンジニア通信
 
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座Masahito Zembutsu
 
実用段階に入ったOpenStack ~ もうすぐ絶滅するというPrivate Cloudの多様性について ~
実用段階に入ったOpenStack ~ もうすぐ絶滅するというPrivate Cloudの多様性について ~実用段階に入ったOpenStack ~ もうすぐ絶滅するというPrivate Cloudの多様性について ~
実用段階に入ったOpenStack ~ もうすぐ絶滅するというPrivate Cloudの多様性について ~Rakuten Group, Inc.
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)NTT DATA Technology & Innovation
 
Sonar qubeでちょっと楽しい静的解析
Sonar qubeでちょっと楽しい静的解析Sonar qubeでちょっと楽しい静的解析
Sonar qubeでちょっと楽しい静的解析政雄 金森
 
Consulを頑張って理解する
Consulを頑張って理解するConsulを頑張って理解する
Consulを頑張って理解するMasakazu Watanabe
 
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)NTT DATA Technology & Innovation
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介AdvancedTechNight
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれKumazaki Hiroki
 
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法Kazuto Kusama
 
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密ShuheiUda
 
これからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみようこれからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみようNobuyuki Sasaki
 

What's hot (20)

データベース屋がHyperledger Fabricを検証してみた
データベース屋がHyperledger Fabricを検証してみたデータベース屋がHyperledger Fabricを検証してみた
データベース屋がHyperledger Fabricを検証してみた
 
IETF111 RATS: Remote Attestation ProcedureS 報告
IETF111 RATS: Remote Attestation ProcedureS 報告IETF111 RATS: Remote Attestation ProcedureS 報告
IETF111 RATS: Remote Attestation ProcedureS 報告
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
 
オラクルのHPC/GPUソリューションご紹介(2021/08版)
オラクルのHPC/GPUソリューションご紹介(2021/08版)オラクルのHPC/GPUソリューションご紹介(2021/08版)
オラクルのHPC/GPUソリューションご紹介(2021/08版)
 
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
 
実用段階に入ったOpenStack ~ もうすぐ絶滅するというPrivate Cloudの多様性について ~
実用段階に入ったOpenStack ~ もうすぐ絶滅するというPrivate Cloudの多様性について ~実用段階に入ったOpenStack ~ もうすぐ絶滅するというPrivate Cloudの多様性について ~
実用段階に入ったOpenStack ~ もうすぐ絶滅するというPrivate Cloudの多様性について ~
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
 
Sonar qubeでちょっと楽しい静的解析
Sonar qubeでちょっと楽しい静的解析Sonar qubeでちょっと楽しい静的解析
Sonar qubeでちょっと楽しい静的解析
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
Consulを頑張って理解する
Consulを頑張って理解するConsulを頑張って理解する
Consulを頑張って理解する
 
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
 
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
 
これからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみようこれからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみよう
 
Paxos
PaxosPaxos
Paxos
 

Viewers also liked

Dockerを活用したリクルートグループ開発基盤の構築
Dockerを活用したリクルートグループ開発基盤の構築Dockerを活用したリクルートグループ開発基盤の構築
Dockerを活用したリクルートグループ開発基盤の構築Recruit Technologies
 
Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介ThinkIT_impress
 
DockerCon SF 2015: Beyond CI to Production Scale PaaS with Docker
DockerCon SF 2015: Beyond CI to Production Scale PaaS with DockerDockerCon SF 2015: Beyond CI to Production Scale PaaS with Docker
DockerCon SF 2015: Beyond CI to Production Scale PaaS with DockerDocker, Inc.
 
【HinemosWorld2015】A1-3_コンテナ技術Dockerの導入事例と完全運用自動化
【HinemosWorld2015】A1-3_コンテナ技術Dockerの導入事例と完全運用自動化【HinemosWorld2015】A1-3_コンテナ技術Dockerの導入事例と完全運用自動化
【HinemosWorld2015】A1-3_コンテナ技術Dockerの導入事例と完全運用自動化Hinemos
 
Dockerの事例紹介
Dockerの事例紹介Dockerの事例紹介
Dockerの事例紹介Hiroki Endo
 
Infrastructure as CodeでReNom環境構築入門
Infrastructure as CodeでReNom環境構築入門Infrastructure as CodeでReNom環境構築入門
Infrastructure as CodeでReNom環境構築入門ReNom User Group
 
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月VirtualTech Japan Inc.
 
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...さくらインターネット株式会社
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入Yu Nobuoka
 
Dockerの基本的な話
Dockerの基本的な話Dockerの基本的な話
Dockerの基本的な話gree_tech
 
Dockerの基本と応用~快適コンテナライフを実現するArukas~
Dockerの基本と応用~快適コンテナライフを実現するArukas~Dockerの基本と応用~快適コンテナライフを実現するArukas~
Dockerの基本と応用~快適コンテナライフを実現するArukas~Masahito Zembutsu
 
OSC 2014 Tokyo/Spring さくらの社長が語る!「さくらのクラウド」でのウェブサービスかんたん運用術~Dockerをつかってみた~
OSC 2014 Tokyo/Spring さくらの社長が語る!「さくらのクラウド」でのウェブサービスかんたん運用術~Dockerをつかってみた~OSC 2014 Tokyo/Spring さくらの社長が語る!「さくらのクラウド」でのウェブサービスかんたん運用術~Dockerをつかってみた~
OSC 2014 Tokyo/Spring さくらの社長が語る!「さくらのクラウド」でのウェブサービスかんたん運用術~Dockerをつかってみた~Kunihiro TANAKA
 
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4Emma Haruka Iwao
 
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編Masahito Zembutsu
 
捕鯨!詳解docker
捕鯨!詳解docker捕鯨!詳解docker
捕鯨!詳解docker雄哉 吉田
 
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪Kunihiro TANAKA
 
8a1#19[はじめてのdocker] 公開版
8a1#19[はじめてのdocker] 公開版8a1#19[はじめてのdocker] 公開版
8a1#19[はじめてのdocker] 公開版Kamon Nobuchika
 
Docker hands on nifty sakura jul19
Docker hands on nifty sakura jul19Docker hands on nifty sakura jul19
Docker hands on nifty sakura jul19Masahito Zembutsu
 
What's New in Docker Enterprise Edition (in Japanese)
What's New in Docker Enterprise Edition (in Japanese)What's New in Docker Enterprise Edition (in Japanese)
What's New in Docker Enterprise Edition (in Japanese)Creationline,inc.
 

Viewers also liked (20)

Dockerを活用したリクルートグループ開発基盤の構築
Dockerを活用したリクルートグループ開発基盤の構築Dockerを活用したリクルートグループ開発基盤の構築
Dockerを活用したリクルートグループ開発基盤の構築
 
Pokémon GOとGCP
Pokémon GOとGCPPokémon GOとGCP
Pokémon GOとGCP
 
Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介
 
DockerCon SF 2015: Beyond CI to Production Scale PaaS with Docker
DockerCon SF 2015: Beyond CI to Production Scale PaaS with DockerDockerCon SF 2015: Beyond CI to Production Scale PaaS with Docker
DockerCon SF 2015: Beyond CI to Production Scale PaaS with Docker
 
【HinemosWorld2015】A1-3_コンテナ技術Dockerの導入事例と完全運用自動化
【HinemosWorld2015】A1-3_コンテナ技術Dockerの導入事例と完全運用自動化【HinemosWorld2015】A1-3_コンテナ技術Dockerの導入事例と完全運用自動化
【HinemosWorld2015】A1-3_コンテナ技術Dockerの導入事例と完全運用自動化
 
Dockerの事例紹介
Dockerの事例紹介Dockerの事例紹介
Dockerの事例紹介
 
Infrastructure as CodeでReNom環境構築入門
Infrastructure as CodeでReNom環境構築入門Infrastructure as CodeでReNom環境構築入門
Infrastructure as CodeでReNom環境構築入門
 
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
 
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
Dockerの基本的な話
Dockerの基本的な話Dockerの基本的な話
Dockerの基本的な話
 
Dockerの基本と応用~快適コンテナライフを実現するArukas~
Dockerの基本と応用~快適コンテナライフを実現するArukas~Dockerの基本と応用~快適コンテナライフを実現するArukas~
Dockerの基本と応用~快適コンテナライフを実現するArukas~
 
OSC 2014 Tokyo/Spring さくらの社長が語る!「さくらのクラウド」でのウェブサービスかんたん運用術~Dockerをつかってみた~
OSC 2014 Tokyo/Spring さくらの社長が語る!「さくらのクラウド」でのウェブサービスかんたん運用術~Dockerをつかってみた~OSC 2014 Tokyo/Spring さくらの社長が語る!「さくらのクラウド」でのウェブサービスかんたん運用術~Dockerをつかってみた~
OSC 2014 Tokyo/Spring さくらの社長が語る!「さくらのクラウド」でのウェブサービスかんたん運用術~Dockerをつかってみた~
 
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
 
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
 
捕鯨!詳解docker
捕鯨!詳解docker捕鯨!詳解docker
捕鯨!詳解docker
 
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
 
8a1#19[はじめてのdocker] 公開版
8a1#19[はじめてのdocker] 公開版8a1#19[はじめてのdocker] 公開版
8a1#19[はじめてのdocker] 公開版
 
Docker hands on nifty sakura jul19
Docker hands on nifty sakura jul19Docker hands on nifty sakura jul19
Docker hands on nifty sakura jul19
 
What's New in Docker Enterprise Edition (in Japanese)
What's New in Docker Enterprise Edition (in Japanese)What's New in Docker Enterprise Edition (in Japanese)
What's New in Docker Enterprise Edition (in Japanese)
 

Similar to 鯨物語~Dockerコンテナとオーケストレーションの理解

どっかのしたのほう
どっかのしたのほうどっかのしたのほう
どっかのしたのほう_norin_
 
はじめてのDockerパーフェクトガイド(2017年版)
はじめてのDockerパーフェクトガイド(2017年版)はじめてのDockerパーフェクトガイド(2017年版)
はじめてのDockerパーフェクトガイド(2017年版)Hiroshi Hayakawa
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Masahiro Nagano
 
いまからでも遅くない Docker事始め&愉快な仲間達
いまからでも遅くない Docker事始め&愉快な仲間達いまからでも遅くない Docker事始め&愉快な仲間達
いまからでも遅くない Docker事始め&愉快な仲間達softlayerjp
 
Dockerクイックツアー
DockerクイックツアーDockerクイックツアー
DockerクイックツアーEtsuji Nakai
 
CAMPHOR- day 2020 - Docker 超入門
CAMPHOR- day 2020 - Docker 超入門CAMPHOR- day 2020 - Docker 超入門
CAMPHOR- day 2020 - Docker 超入門KokiMakita1
 
DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念Masahito Zembutsu
 
Dockerでらくらく開発・運用を体感しよう
Dockerでらくらく開発・運用を体感しようDockerでらくらく開発・運用を体感しよう
Dockerでらくらく開発・運用を体感しようTakashi Makino
 
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例maebashi
 
コンテナ on Windows
コンテナ on Windowsコンテナ on Windows
コンテナ on WindowsTsubasa Nomura
 
Docker 入門
Docker 入門Docker 入門
Docker 入門itatyo
 
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~Masahito Zembutsu
 
ザックリとDocker
ザックリとDockerザックリとDocker
ザックリとDockerionis111
 
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~decode2016
 
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
そろそろ知っておきたい!!コンテナ技術とDockerのキホンそろそろ知っておきたい!!コンテナ技術とDockerのキホン
そろそろ知っておきたい!!コンテナ技術と DockerのキホンNaoki Nagazumi
 
Cloud Foundry as Containerized Services - Cloud Foundry Days Tokyo 2016
Cloud Foundry as Containerized Services - Cloud Foundry Days Tokyo 2016Cloud Foundry as Containerized Services - Cloud Foundry Days Tokyo 2016
Cloud Foundry as Containerized Services - Cloud Foundry Days Tokyo 2016JUNICHI YOSHISE
 
[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能Akihiro Suda
 
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Yuichi Ito
 
Docker Hello World
Docker Hello WorldDocker Hello World
Docker Hello WorldTakao Fukui
 

Similar to 鯨物語~Dockerコンテナとオーケストレーションの理解 (20)

どっかのしたのほう
どっかのしたのほうどっかのしたのほう
どっかのしたのほう
 
はじめてのDockerパーフェクトガイド(2017年版)
はじめてのDockerパーフェクトガイド(2017年版)はじめてのDockerパーフェクトガイド(2017年版)
はじめてのDockerパーフェクトガイド(2017年版)
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
 
いまからでも遅くない Docker事始め&愉快な仲間達
いまからでも遅くない Docker事始め&愉快な仲間達いまからでも遅くない Docker事始め&愉快な仲間達
いまからでも遅くない Docker事始め&愉快な仲間達
 
Dockerクイックツアー
DockerクイックツアーDockerクイックツアー
Dockerクイックツアー
 
CAMPHOR- day 2020 - Docker 超入門
CAMPHOR- day 2020 - Docker 超入門CAMPHOR- day 2020 - Docker 超入門
CAMPHOR- day 2020 - Docker 超入門
 
DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念
 
Dockerでらくらく開発・運用を体感しよう
Dockerでらくらく開発・運用を体感しようDockerでらくらく開発・運用を体感しよう
Dockerでらくらく開発・運用を体感しよう
 
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
 
コンテナ on Windows
コンテナ on Windowsコンテナ on Windows
コンテナ on Windows
 
Docker 入門
Docker 入門Docker 入門
Docker 入門
 
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
 
ザックリとDocker
ザックリとDockerザックリとDocker
ザックリとDocker
 
Docker Swarm入門
Docker Swarm入門Docker Swarm入門
Docker Swarm入門
 
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
 
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
そろそろ知っておきたい!!コンテナ技術とDockerのキホンそろそろ知っておきたい!!コンテナ技術とDockerのキホン
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
 
Cloud Foundry as Containerized Services - Cloud Foundry Days Tokyo 2016
Cloud Foundry as Containerized Services - Cloud Foundry Days Tokyo 2016Cloud Foundry as Containerized Services - Cloud Foundry Days Tokyo 2016
Cloud Foundry as Containerized Services - Cloud Foundry Days Tokyo 2016
 
[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能
 
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
 
Docker Hello World
Docker Hello WorldDocker Hello World
Docker Hello World
 

More from Masahito Zembutsu

忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜Masahito Zembutsu
 
自由検証環境提供宣言+Docker Compose V2 GA
自由検証環境提供宣言+Docker Compose V2 GA自由検証環境提供宣言+Docker Compose V2 GA
自由検証環境提供宣言+Docker Compose V2 GAMasahito Zembutsu
 
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討Masahito Zembutsu
 
さくらインターネットのコミュニティ with COVID-19
さくらインターネットのコミュニティ with COVID-19さくらインターネットのコミュニティ with COVID-19
さくらインターネットのコミュニティ with COVID-19Masahito Zembutsu
 
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」Masahito Zembutsu
 
インターネットでウェブサイトを表示している裏側の話
インターネットでウェブサイトを表示している裏側の話インターネットでウェブサイトを表示している裏側の話
インターネットでウェブサイトを表示している裏側の話Masahito Zembutsu
 
3分で分かる「プログラミング教育・情報教育」
3分で分かる「プログラミング教育・情報教育」3分で分かる「プログラミング教育・情報教育」
3分で分かる「プログラミング教育・情報教育」Masahito Zembutsu
 
ようこそオンラインの展示会場へ
ようこそオンラインの展示会場へようこそオンラインの展示会場へ
ようこそオンラインの展示会場へMasahito Zembutsu
 
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020Masahito Zembutsu
 
オンライン発表で気を付けているポイント~姿勢編
オンライン発表で気を付けているポイント~姿勢編オンライン発表で気を付けているポイント~姿勢編
オンライン発表で気を付けているポイント~姿勢編Masahito Zembutsu
 
Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Masahito Zembutsu
 
Docker 9 tips~意外と知られていない日常で役立つ便利技
Docker 9 tips~意外と知られていない日常で役立つ便利技Docker 9 tips~意外と知られていない日常で役立つ便利技
Docker 9 tips~意外と知られていない日常で役立つ便利技Masahito Zembutsu
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」Masahito Zembutsu
 
クリスマスに工場(Factorio)を作るゲームをしよう
クリスマスに工場(Factorio)を作るゲームをしようクリスマスに工場(Factorio)を作るゲームをしよう
クリスマスに工場(Factorio)を作るゲームをしようMasahito Zembutsu
 
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Masahito Zembutsu
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Masahito Zembutsu
 
2020年から始まる小学校プログラミング教育の話 #osc19os
2020年から始まる小学校プログラミング教育の話 #osc19os2020年から始まる小学校プログラミング教育の話 #osc19os
2020年から始まる小学校プログラミング教育の話 #osc19osMasahito Zembutsu
 

More from Masahito Zembutsu (20)

忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
 
自由検証環境提供宣言+Docker Compose V2 GA
自由検証環境提供宣言+Docker Compose V2 GA自由検証環境提供宣言+Docker Compose V2 GA
自由検証環境提供宣言+Docker Compose V2 GA
 
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
 
さくらインターネットのコミュニティ with COVID-19
さくらインターネットのコミュニティ with COVID-19さくらインターネットのコミュニティ with COVID-19
さくらインターネットのコミュニティ with COVID-19
 
Docker Chronicle 2021.09
Docker Chronicle  2021.09Docker Chronicle  2021.09
Docker Chronicle 2021.09
 
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
 
インターネットでウェブサイトを表示している裏側の話
インターネットでウェブサイトを表示している裏側の話インターネットでウェブサイトを表示している裏側の話
インターネットでウェブサイトを表示している裏側の話
 
3分で分かる「プログラミング教育・情報教育」
3分で分かる「プログラミング教育・情報教育」3分で分かる「プログラミング教育・情報教育」
3分で分かる「プログラミング教育・情報教育」
 
ようこそオンラインの展示会場へ
ようこそオンラインの展示会場へようこそオンラインの展示会場へ
ようこそオンラインの展示会場へ
 
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
 
オンライン発表で気を付けているポイント~姿勢編
オンライン発表で気を付けているポイント~姿勢編オンライン発表で気を付けているポイント~姿勢編
オンライン発表で気を付けているポイント~姿勢編
 
Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解
 
Jitsi Meetとは?
Jitsi Meetとは?Jitsi Meetとは?
Jitsi Meetとは?
 
Docker 9 tips~意外と知られていない日常で役立つ便利技
Docker 9 tips~意外と知られていない日常で役立つ便利技Docker 9 tips~意外と知られていない日常で役立つ便利技
Docker 9 tips~意外と知られていない日常で役立つ便利技
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
クリスマスに工場(Factorio)を作るゲームをしよう
クリスマスに工場(Factorio)を作るゲームをしようクリスマスに工場(Factorio)を作るゲームをしよう
クリスマスに工場(Factorio)を作るゲームをしよう
 
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
2020年から始まる小学校プログラミング教育の話 #osc19os
2020年から始まる小学校プログラミング教育の話 #osc19os2020年から始まる小学校プログラミング教育の話 #osc19os
2020年から始まる小学校プログラミング教育の話 #osc19os
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 

鯨物語~Dockerコンテナとオーケストレーションの理解