More Related Content Similar to はじめてのDockerパーフェクトガイド(2017年版) (20) はじめてのDockerパーフェクトガイド(2017年版)13. 仮想化の実現方式の違い
ハイパーバイザー型 vs. コンテナ型
• ハイパーバイザー型 • コンテナ型
H/W
ホストOS
Docker
Bins/Libs
App A
Bins/Libs
App C
Bins/Libs
App B
ホストOS
ハイパーバイザー
Bins/Libs
App A
Bins/Libs
App C
Bins/Libs
App B
ゲストOS ゲストOSゲストOS
H/W
VM コンテナ
14. 仮想化の実現方式の違い
ハイパーバイザー型 vs. コンテナ型
• ハイパーバイザー型
• ハイパーバイザーがHWをエ
ミュレート
• VMはOSの完全なコピーを保持
• コンテナ型
• ホストのHW、カーネルをコン
テナが利用
• コンテナはカーネルより上位層
のみ保持
H/W
ホストOS
Docker
Bins/Libs
App A
Bins/Libs
App C
Bins/Libs
App B
ホストOS
ハイパーバイザー
Bins/Libs
App A
Bins/Libs
App C
Bins/Libs
App B
ゲストOS ゲストOSゲストOS
H/W
15. 仮想化の実現方式の違い
ハイパーバイザー型 vs. コンテナ型
• ハイパーバイザー型
• 起動にかかる時間が長い
• OSの起動を伴う上、HWエミュ
レートのオーバーヘッドがある
• VMの容量が大きい
• 数十GB~
• パフォーマンスが落ちがち
• HWエミュレートのオーバーヘッ
ドのため
• コンテナ型
• 起動にかかる時間が短い
• ほとんどアプリケーションのプロ
セスの起動のみ
• コンテナの容量が小さい
• 数十MB~
• パフォーマンスが落ちにくい
• HWエミュレートのオーバーヘッ
ドがない
17. Dockerイメージの実態
id: ow3hfw83
id: ow3hfw83
id: ow3hfw83
id: ow3hfw83
Dockerイメージ = カーネルを除いた、そのOSの一連のファイル群
に、レイヤー構造が加わったもの
/bin /boot /dev /etc…
下レイヤーとの差分
下レイヤーとの差分
下レイヤーとの差分
最下層に全ての差分が適用された結果として、ファイルシステムが見える → Union File
System
18. Dockerイメージの実態
id: ow3hfw83
id: ow3hfw83
id: ow3hfw83
id: ow3hfw83
Ubuntu OSのインストール・イメージ
Python 3.xをインストール
必要なPIPパッケージをインストール
アプリケーションをインストール
最下層に全ての差分が適用された結果として、ファイルシステムが見える → Union File
System
Dockerイメージ = カーネルを除いた、そのOSの一連のファイル群
に、レイヤー構造が加わったもの
25. Dockerイメージの作り方 (2/2)
• Dockerfile
• Dockerイメージの内容をテキストファイルで定義するもの
• ベースのイメージを元に、その差分を一連のShellコマンドで記述
• Dockerfileを入力として、[docker build]コマンドを実行すると、
Dockerfileの内容を元にイメージが作られる
> docker build
id:
ow3hf
w83
id:
ow3hf
w83
id:
ow3hf
w83
Dockerfile
26. FROM python:3.6
ARG user
ARG password
WORKDIR /root
# Install PIP Package
RUN curl -X GET
-u ${user}:${password}
-H X-ID-TENANT-
NAME:sample_domain
-o psmcli.zip
RUN pip3 install -U psmcli.zip
# Setup Installed Pacakge
RUN psm setup
Python 3.6のインストールイメージを取得
(後続のコマンドのための環境設定)
PIPパッケージのダウンロード
PIPパッケージのインストール
(コンテナのデフォルト起動プロセスを指定)
Dockerfileの例
45. Cloud Native Computing Foundation
• Linux Foundationの中のプロジェクト
• コンテナとその周辺技術に関するOSSのプロジェクトを、多数ホストして
いる
• Kubernetes
• fluentd
• Prometheus
• …
• 多数のメジャーSWベンダーがプラチナメンバーとして参画
• CNCFのバックアップ=これらの企業の人的/金銭的な投資が入る
Platinum Members