SlideShare a Scribd company logo
1 of 47
Download to read offline
D o c k e r の 新 し い 技 術 と s w a r m m o d e の 紹 介
@zembutsu
Docker 1.12 & Swarm Mode
Introduction
Docker のおさらい
Docker 1.12 の技術概要
新しいswarmモードの紹介と基本コマンド(デモ)
Docker?
開発環境でDockerを使用
アプリ環境の管理のため
Dockerを使用
開発の機敏性を高めるため
Dockerを使用
アプリのポータビリティを
達成するためにDockerを使用
プロダクション用の
アプリでDocker使用
伝統的データベース
分散データベース
ビッグデータ
アプリ・サーバ
ウェブ・アプリ
ウェブ API
Dockerの役割
開発環境周辺で
Dockerの利用を計画
DevOps周辺で
Dockerの利用を計画
“Docker provides the software supply chain with agility, control and portability for app development.”
Dockerは開発のための機敏なソフトウェアのサプライチェーン、管理、ポータビリティを提供 [1]
The Evolution of the Modern Software Supply Chain - The Docker Survey, 2016
https://www.docker.com/survey-2016
Dockerイメージ
コンテナ実行時に必要なファイルシステム
tar アーカイブの中に Linux 用のファイル群が存在
イメージ・レイヤ(層)は読み込み専用
イメージはレイヤを共有
レイヤは親子関係を持つ
ディスク容量消費を回避し、移動しやすく
コンテナ起動時にイメージを使用
読み書き可能なレイヤを追加する
イメージ内のファイルを(isolate状態で)実行する
$ 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/
Dockerコンテナの操作
OS ( Linux )
物理/仮想サーバ
Docker エンジン
( dockerd デーモン )
Linux kernel
コンテナ コンテナ コンテナ
リモート
API
docker
クライアント TCP あるいは
Unix ソケットドメイン
containerd
Runtime: runC (OCI規格準拠)
・docker コマンド
Linux, Mac OS X, Windows
・Kitematic (GUI)
Mac OS X, Windows
・Docker Compose
・Docker Swarm
コンテナのプロセス
httpd
PID 1
コンテナA コンテナB
ruby
PID 1
chris.rb
PID 2
/sbin/init
PID 1
httpd
PID 6
ruby
PID 7
chris.rb
PID 8
alice
PID 2
bob
PID 3
PPID 1 PPID 1
PPID 4
PPID 5 PPID 5
PPID 7
PPID 1
containerd
PID 5
dockerd
PID 4
コンテナのファイルシステム
コンテナAのファイルシステム
… …
コンテナBのファイルシステム
/etc
(/data/ubuntu/etc)
/bin
(/data/ubuntu/bin)
/etc
(/data/centos/etc)
/bin
(/data/centos/bin)
/ /
/
/etc
/data/ubuntu /data/centos
/bin /data
コンテナの実行
コンテナAのファイルシステム
… …
コンテナBのファイルシステム
/etc
(/data/ubuntu/etc)
/bin
(/data/ubuntu/bin)
/etc
(/data/centos/etc)
/bin
(/data/centos/bin)
/ /
httpd
PID 1
プロセスA プロセスB
ruby
PID 1
chris.rb
PID 2
コンテナA コンテナB
名前空間の isolate
・プロセス
・ファイルシステム
・ネットワーク
・ホスト名
・UID・GID
リソース制限
・CPU
・メモリ
・I/O
・ディスク・クォータ
Docker Engine
Linux Kernel
・namespaces
・cgroups
・capabilities … etc
LXC
libcontaine
r
runC
containerdv0.9~
v1.11~
Version 7 Unix
chroot
jail
dockerd
v1.12~
デーモン
ライブラリ
ランタイム
Dockerコンテナの操作
OS ( Linux )
物理/仮想サーバ
Docker エンジン
( dockerd デーモン )
Linux kernel
コンテナ コンテナ コンテナ
リモート
API
docker
クライアント TCP あるいは
Unix ソケットドメイン
containerd
Runtime: runC (OCI規格準拠)
・docker コマンド
Linux, Mac OS X, Windows
・Kitematic (GUI)
Mac OS X, Windows
・Docker Compose
・Docker Swarm
Docker 1.12
現時点はリリース候補(RC)版
開発バージョンのバイナリ入手
https://github.com/docker/docker/releases
# curl -fsSL https://test.docker.com/ | sh
注意点
仕様変更
バグ
Docker 1.12 概要 [2]
Swarm 機能統合:Built-in Orchestration
Docker Engine に Docker Swarm のクラスタ管理機能を統合
オプションとしての Swarm Mode なので、必須ではない
標準のセキュリティ機能
新しいサービスとイメージ管理
分散アプリケーション・バンドル(.dab) は JOSN 形式のフォーマットでサービス定義
docker deploy、docker stack コマンド (EXPERIMENTAL)
Docker Store 発表 (private bate)
新機能
Dockerfileでヘルスチェックの定義
docker plugin コマンドのサポート
ディスク・クォータ
$ docker run …
$ docker run …
$ docker run …
• 増減する環境
• 日々の運用
• 障害対応
内部分散ステート・ストア
Internal Distrubuted State Store
マネージャ
Manager
マネージャ
Manager
マネージャ
Manager
ワーカ
Worker
ワーカ
Worker
ワーカ
Worker
ワーカ
Worker
ワーカ
Worker
ワーカ
Worker
Built-in Orchestration
シンプルでありながら強力
設計思想は、難しいことなく、とにかく動く(it just work)
クラスタ管理のために、複雑なセットアップが不要
docker service や docker node コマンドを標準サポート
柔軟性 (Resilient)
アプリケーションの実行単位がサービス (service)であり、期待状態を定義
安全 (Secure)
PKI 基盤が組み込まれており、クラスタ間通信は常に TLS 認証が有効
オプション機能と後方互換性
swarmモードを有効化しても CPU やメモリのリソースを消費しない
Swarm マネージャ
Docker 1.12 RC の Docker Engine と Swarm
v1.11まで
swarm manage
Swarm ノード1 Swarm ノード2
swarm join swarm join
Docker Engine
(docker daemon)
ディスカバリ・バックエンド
Consul
Etcd
zookeeper
monitoring
Remote management
v1.12 RC1~
マネージャ・ノード1 ワーカ・ノード1 ワーカ・ノード2
Docker Engine
(dockerd)
Manager node Worker node Worker node
• Docker Swarmのクラスタを管理するには、
Docker Engineとは別に Swam マネージャと
Swarm ノード、さらにディスカバリ・バックエンド
が必要
• Docker Engine に Swarm 機能を統合
• dockerd は Docker Engine のデーモンの役割と、
Swarm のノード(マネージャまたはワーカ)も担う
• 従来必要だった Swarm コンテナやバイナリだけ
でなく、外部のツールを必要としない
• --replicas オプションは docker-compose scale 風
docker swarm join docker swarm join
サービス
タスク(コンテナの
挙動)と期待状態
(desired state)を
定義
タスク
(task)
タスク
(task)
allocate
Overlay network
docker swam init
(クラスタ初期化)
docker swam
service create
内部DNSはサービス名で
Load balancing
サービスの公開ポートはIngress Load Balancingとして公開
(どのノードのポートにアクセスしても、対象のサービス用ポートに到達。つまり、
コンテナが起動しなくても、ノード内のどこかの IP アドレスさえ分かればよい)Docker Engine クラスタを
“Swarm”(群れ)と呼ぶ
key.pem
key.pem
key.pem
Docker
CLI
....
......
Docker クライアント
"client"
....
......
Swarm クラスタ
認証局(CA)サーバ
"ca"
"node1"
....
......
Swarmマネージャ
"swarm"
ca.cert
key.pem
cert.pem
"node2"
....
...... ca.cert
cert.pem
....
...... ca.cert
cert.pem
....
...... ca.cert
cert.pem
swarm-priv-key.pem
swarm-cert.pem
client-priv-key.pem
client-cert.pem
node1-priv-key.pem
node1-cert.pem
node2-priv-key.pem
node2-cert.pem
ca.pem
Before 1.11
key.pem
key.pem
key.pem
Docker
CLI
....
......
Docker クライアント
"client"
....
......
Swarm モード
認証局(CA)サーバ
"ca"
"node1"
....
......
Swarmマネージャ
"swarm"
ca.cert
key.pem
cert.pem
"node2"
....
...... ca.cert
cert.pem
....
...... ca.cert
cert.pem
....
...... ca.cert
cert.pem
swarm-priv-key.pem
swarm-cert.pem
client-priv-key.pem
client-cert.pem
node1-priv-key.pem
node1-cert.pem
node2-priv-key.pem
node2-cert.pem
ca.pem
After 1.12
Swarm mode
swarmモード
Docker標準搭載のクラスタとサービス管理機構
Docker Engine v1.12RC1 から Docker Swarm と機能統合 (SwarmKit) [3]
クラスタを “Swarm” とよび、マネージャがノード上のサービスを簡単に一括管理
管理はサービスとタスクの単位
アプリケーションの実行単位がサービス (service)であり、期待状態を定義
複製サービスとグローバル・サービスの2種類
タスクがコンテナのスケジューリング単位
マルチホスト対応のルーティング・メッシュ
期待状態を維持するために、タスクの自動増減の対応やヘルスチェック機能
外部サービスはIngressロード・バランシングで負荷分散し、内部も DNS を持つ [4]
nginx
サービス
nginx.1
nginx.2
nginx.3
タスク コンテナ
nginx:latest
nginx:latest
nginx:latest
スタック
stack
.dab
Distributed Application Bundle
(JSON) docker deploy
docker stack
What’s new in Docker 1.12 より [5]
internet
仮想マシン 仮想マシン 仮想マシン
network
Port 80 Port 80 Port 80
internet
仮想マシン 仮想マシン 仮想マシン
network
Port 80 Port 80 Port 80ingress
Overlay network
・ルーティング
・負荷分散
タスク タスク タスク
Swarmモードはクラスタの初期化
$ docker swarm init
$ docker swarm join <host>:2377
internet
仮想マシン 仮想マシン 仮想マシン
ingress
Virtual Router
(IPVS)
タスク タスク タスク
Routing mesh
network
サービス作成
$ docker service create
「--constraint」でノードの指定
「--mode=global」で全ノードに展開
manager-01 worker-01 worker-02
network
ingress
Overlay
network
nginx nginx nginx
worker-03
nginx
Port 8080 Port 8080 Port 8080 Port 8080
サービス期待値 (desired state)は
実際の状態とは異なる
$ docker service crate --replicas 4 –p 80:8080 --name=web nginx
$ docker service update --replicas 4 web
internet
manager-01 worker-01 worker-02
ingress
Overlay
network
nginx nginx nginx
worker-03
nginx
Port 8080 Port 8080 Port 8080 Port 8080
network
サービス期待値 (desired state)は
実際の状態とは異なる
$ docker service crate --replicas 4 –p 80:8080 --name=web nginx
$ docker service update --replicas 4 web
Swarm モード を つかう には
swarm mode 基本コマンド
$ docker swarm init --listen-addr <host>:2377
$ docker swarm join <host>:<port>
$ docker service create ¥
--replicas N –p <公開port>:<内部> --name <名前> <イメージ>
$ docker service ls
$ docker service tasks <サービス名>
$ docker service update --replicas N <サービス名>
$ docker service update --image <イメージ> <サービス名>
$ docker service rm
クラスタ初期化
クラスタ参加
サービス作成
サービス一覧
タスク一覧
サービス更新
ローリング・アップデート
サービス削除
① Docker Engine “swarm モード” の初期化
マネージャ・ノード1 ワーカ・ノード1 ワーカ・ノード2
Docker Engine
(dockerd)
Manager node Worker node Worker node
Docker Engine のクラスタを「swarm」(”群れ”の意味)と呼ぶ
「docker swarm」コマンドはクラスタ上のサービスやタスクを管理する
はじめに「docker swarm init」コマンドでクラスタを初期する
192.168.39.1
(node-01)
192.168.39.2
(node-02)
192.168.39.3
(node-03)
docker swarm init –listen-addr 192.168.39.1:2377
クラスタの初期化
docker@node-01:~$ docker node ls
ID NAME MEMBERSHIP STATUS AVAILABILITY MANAGER STATUS
dhrbvl6o9xqvprsq2uzq8o9ev * node-01 Accepted Ready Active Leader
各ホスト上では Docker Engine (dockerd)が
稼働している。通常の docker コマンド利用と
swarm モードは併用可能
Docker Engine
(dockerd)
Docker Engine
(dockerd)
ノードは swarm クラスタ内の Docker エンジンのこと
「docker node」はクラスタのノード管理するコマンド群で、マネージャ・ノードのみ実行可能
「docker node ls」は、マネージャ用のノード一覧を表示
swarm クラスタ
② swarm node join でクラスタに追加
マネージャ・ノード1 ワーカ・ノード1 ワーカ・ノード2
Manager node Worker node Worker node
swarm クラスタ
192.168.39.1
(node-01)
192.168.39.2
(node-02)
192.168.39.3
(node-03)
docker swarm join 192.168.39.1:2377
クラスタに worker (ワーカ)として参加
docker@node-01:~$ docker node ls
ID NAME MEMBERSHIP STATUS AVAILABILITY MANAGER STATUS
6puvbl7tgxislfha5iaha40jm node-03 Accepted Ready Active
9zj16or3durdh5i7c6khlench node-02 Accepted Ready Active
dhrbvl6o9xqvprsq2uzq8o9ev * node-01 Accepted Ready Active Leader
「MANAGER STATUS」が無ければ、ワーカ・ノードとして動作
ただし、この例のマネージャはワーカも兼ねている
TCP Port 2377 は、クラスタ管理の通信用
TCP/UDP Port 7946 はノード間通信用
TCP/UDP Port 4789 はオーバレイ・ネットワーク用
ワーカはマネージャから
タスクを受け取る
マネージャでサービスを定義
タスクをワーカに割り振る
③ swarm service create でサービス作成
マネージャ・ノード1 ワーカ・ノード1 ワーカ・ノード2
Manager node Worker node Worker node
swarm クラスタ
192.168.39.1
(node-01)
192.168.39.2
(node-02)
192.168.39.3
(node-03)
$ docker service create --replicas 1 –name web -p 80:80 nginx
f218o6xshkyt7zzxujhnz1a2h
nginx イメージを使う web という名前のサービスを作成
docker@node-01:~$ docker service ls
ID NAME REPLICAS IMAGE COMMAND
13765buws9fr web 0/1 nginx
サービスはレプリカの期待数を定義
「0/1」は期待数は 1 だが現状は 0
レプリカ数:1
swarmのポート80をコンテナ内の80に割り当て
マネージャでサービスを定義
タスクをワーカに割り振る
ID NAME REPLICAS IMAGE COMMAND
13765buws9fr web 1/1 nginx
マネージャはノードにタスクを割り当て(スケジュールし)、
タスク(としてのコンテナ)が起動すると「1/1」になる
サービス タスク
(コンテナ)
nginxweb
スケジュール
コンテナ起動
④ ポートの公開と Ingress オーバレイ・ネットワーク
マネージャ・ノード1 ワーカ・ノード1 ワーカ・ノード2
Manager node Worker node Worker node
swarm クラスタ
192.168.39.1
(node-01)
192.168.39.2
(node-02)
192.168.39.3
(node-03)
サービス タスク
(コンテナ)
nginxweb
Port 80(tcp)
オーバレイ・ネットワーク
Port 80(tcp)
Ingress
Port 80(tcp)Port 80(tcp)
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
bbb5e37b01e8 bridge bridge local
6550c72b075f docker_gwbridge bridge local
84baeb90cbb2 host host local
9i5hmgqr20jh ingress overlay swarm
7ab4c321bbe5 none null local
⑤ Ingress Load Balancing
マネージャ・ノード1 ワーカ・ノード1 ワーカ・ノード2
Manager node Worker node Worker node
swarm クラスタ
192.168.39.1
(node-01)
192.168.39.2
(node-02)
192.168.39.3
(node-03)
タスク
(コンテナ)
nginx
Port 80(tcp)
オーバレイ・ネットワーク
Port 80(tcp)
Ingress
タスク
(コンテナ)
nginx
Port 80(tcp)
タスク
(コンテナ)
nginx
Port 80(tcp)
ライブ デモ
Docker image: zembutsu/docker-sample-nginx
FROM nginx:latest
COPY default.conf /etc/nginx/conf.d/
COPY index.html /usr/share/nginx/html/
<html>
<body>
<h1>Host: <!--#echo var="HOSTNAME" --></h1>
</body>
</html>
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
ssi on;
}
Dockerfile
index.html default.conf
Docker 1.12.0-rc2
CentOS Linux release 7.2.1511 (Core)
Linux manager-01 3.10.0-327.18.2.el7.x86_64 #1 SMP Thu May 12 11:03:55 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
まとめ
Docker 1.12 概要 [2]
Swarm 機能統合:Built-in Orchestration
Docker Engine に Docker Swarm のクラスタ管理機能を統合
オプションとしての Swarm Mode なので、必須ではない
標準のセキュリティ機能
新しいサービスとイメージ管理
分散アプリケーション・バンドル(.dab) は JOSN 形式のフォーマットでサービス定義
docker deploy、docker stack コマンド (EXPERIMENTAL)
Docker Store 発表 (private bate)
新機能
Dockerfileでヘルスチェックの定義
docker plugin コマンドのサポート
ディスク・クォータ
どっかで
使おうかな?
最新の Docker に対応した日本語ドキュメント
http://docs.docker.jp
私からのお願い
まず読んで頂ければ…
なにか きになる ところ ありますか?
ありがとうございました
参考
[1] The Evolution of the Modern Software Supply Chain - The Docker Survey, 2016
https://www.docker.com/survey-2016/
[2] Docker 1.12: Now with Built-in Orchestration! | Docker Blog
https://blog.docker.com/2016/06/docker-1-12-built-in-orchestration/
[3] Swarm mode key concepts
https://docs.docker.com/engine/swarm/key-concepts/
[4] Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooting http://www.slideshare.net/Docker/docker-for-ops-
docker-networking-deep-dive-considerations-and-troubleshooting-by-madhu-venugopal-and-jana-radhakrishnan
[5] What's New in Docker 1.12 by Mike Goelzer and Andrea Luzzardi
http://www.slideshare.net/Docker/whats-new-in-docker-112-by-mike-goelzer-and-andrea-luzzardi
補足資料:
Swarm mode overview
https://docs.docker.com/engine/swarm/
Docker 1.12: swarm モードと Ingress Load Balancing 概要 · Pocketstudio Technology Log
https://pocketstudio.net/2016/06/23/docker-1-12-swarm-mode-and-ingress-load-balancing/

More Related Content

What's hot

JAWS-UG コンテナ支部 Docker入門 ハンズオン
JAWS-UG コンテナ支部 Docker入門 ハンズオンJAWS-UG コンテナ支部 Docker入門 ハンズオン
JAWS-UG コンテナ支部 Docker入門 ハンズオンRyo Nakamaru
 
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Yuichi Ito
 
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーションDocker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーションMasahito Zembutsu
 
Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴Masahito Zembutsu
 
捕鯨!詳解docker
捕鯨!詳解docker捕鯨!詳解docker
捕鯨!詳解docker雄哉 吉田
 
Docker技術情報アップデート 2015年7月号
Docker技術情報アップデート 2015年7月号Docker技術情報アップデート 2015年7月号
Docker技術情報アップデート 2015年7月号Masahito Zembutsu
 
DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念Masahito Zembutsu
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルMasahito Zembutsu
 
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座Masahito Zembutsu
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでRyo Nakamaru
 
小さく始める Docker container の deploy
小さく始める Docker container の deploy小さく始める Docker container の deploy
小さく始める Docker container の deployYoshinori Teraoka
 
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Dockerライフサイクルの基礎 地雷を踏み抜けろ!Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Dockerライフサイクルの基礎 地雷を踏み抜けろ!Masahito Zembutsu
 
Dockerでデプロイ
DockerでデプロイDockerでデプロイ
Dockerでデプロイoshiro_seiya
 
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
そろそろ知っておきたい!!コンテナ技術とDockerのキホンそろそろ知っておきたい!!コンテナ技術とDockerのキホン
そろそろ知っておきたい!!コンテナ技術と DockerのキホンNaoki Nagazumi
 
Docker hands on nifty sakura jul19
Docker hands on nifty sakura jul19Docker hands on nifty sakura jul19
Docker hands on nifty sakura jul19Masahito Zembutsu
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Masahito Zembutsu
 
インフラエンジニアのためのRancherを使ったDocker運用入門
インフラエンジニアのためのRancherを使ったDocker運用入門インフラエンジニアのためのRancherを使ったDocker運用入門
インフラエンジニアのためのRancherを使ったDocker運用入門Masahito Zembutsu
 
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~Masahito Zembutsu
 
コンテナ技術と普及がシステム・インテグレータに与える影響
コンテナ技術と普及がシステム・インテグレータに与える影響コンテナ技術と普及がシステム・インテグレータに与える影響
コンテナ技術と普及がシステム・インテグレータに与える影響Masahito Zembutsu
 

What's hot (20)

JAWS-UG コンテナ支部 Docker入門 ハンズオン
JAWS-UG コンテナ支部 Docker入門 ハンズオンJAWS-UG コンテナ支部 Docker入門 ハンズオン
JAWS-UG コンテナ支部 Docker入門 ハンズオン
 
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
 
Docker 1.12 の衝撃
Docker 1.12 の衝撃Docker 1.12 の衝撃
Docker 1.12 の衝撃
 
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーションDocker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
 
Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴
 
捕鯨!詳解docker
捕鯨!詳解docker捕鯨!詳解docker
捕鯨!詳解docker
 
Docker技術情報アップデート 2015年7月号
Docker技術情報アップデート 2015年7月号Docker技術情報アップデート 2015年7月号
Docker技術情報アップデート 2015年7月号
 
DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
 
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
 
小さく始める Docker container の deploy
小さく始める Docker container の deploy小さく始める Docker container の deploy
小さく始める Docker container の deploy
 
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Dockerライフサイクルの基礎 地雷を踏み抜けろ!Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
 
Dockerでデプロイ
DockerでデプロイDockerでデプロイ
Dockerでデプロイ
 
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
そろそろ知っておきたい!!コンテナ技術とDockerのキホンそろそろ知っておきたい!!コンテナ技術とDockerのキホン
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
 
Docker hands on nifty sakura jul19
Docker hands on nifty sakura jul19Docker hands on nifty sakura jul19
Docker hands on nifty sakura jul19
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
 
インフラエンジニアのためのRancherを使ったDocker運用入門
インフラエンジニアのためのRancherを使ったDocker運用入門インフラエンジニアのためのRancherを使ったDocker運用入門
インフラエンジニアのためのRancherを使ったDocker運用入門
 
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
 
コンテナ技術と普及がシステム・インテグレータに与える影響
コンテナ技術と普及がシステム・インテグレータに与える影響コンテナ技術と普及がシステム・インテグレータに与える影響
コンテナ技術と普及がシステム・インテグレータに与える影響
 

Viewers also liked

はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入Yu Nobuoka
 
OSC 2014 Tokyo/Spring さくらの社長が語る!「さくらのクラウド」でのウェブサービスかんたん運用術~Dockerをつかってみた~
OSC 2014 Tokyo/Spring さくらの社長が語る!「さくらのクラウド」でのウェブサービスかんたん運用術~Dockerをつかってみた~OSC 2014 Tokyo/Spring さくらの社長が語る!「さくらのクラウド」でのウェブサービスかんたん運用術~Dockerをつかってみた~
OSC 2014 Tokyo/Spring さくらの社長が語る!「さくらのクラウド」でのウェブサービスかんたん運用術~Dockerをつかってみた~Kunihiro TANAKA
 
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪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
 
8a1#19[はじめてのdocker] 公開版
8a1#19[はじめてのdocker] 公開版8a1#19[はじめてのdocker] 公開版
8a1#19[はじめてのdocker] 公開版Kamon Nobuchika
 
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜Shuji Yamada
 
【第11回 クラウドごった煮(コンテナ勉強会)】Docker networking tools
【第11回 クラウドごった煮(コンテナ勉強会)】Docker networking tools【第11回 クラウドごった煮(コンテナ勉強会)】Docker networking tools
【第11回 クラウドごった煮(コンテナ勉強会)】Docker networking toolsNobuyuki Matsui
 
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月VirtualTech Japan Inc.
 
Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月Emma Haruka Iwao
 
paizaのオンラインジャッジを支えるDockerとその周辺
paizaのオンラインジャッジを支えるDockerとその周辺paizaのオンラインジャッジを支えるDockerとその周辺
paizaのオンラインジャッジを支えるDockerとその周辺paiza
 
Docker Community Edition & Enterprise Edition
Docker Community Edition & Enterprise EditionDocker Community Edition & Enterprise Edition
Docker Community Edition & Enterprise EditionCreationline,inc.
 
Dockerのネットワークについて
DockerのネットワークについてDockerのネットワークについて
DockerのネットワークについてNobuyuki Matsui
 
Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会Etsuji Nakai
 
さくらの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インフラ時代...さくらインターネット株式会社
 
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.
 
Dockerの基本的な話
Dockerの基本的な話Dockerの基本的な話
Dockerの基本的な話gree_tech
 
Dockerの基本と応用~快適コンテナライフを実現するArukas~
Dockerの基本と応用~快適コンテナライフを実現するArukas~Dockerの基本と応用~快適コンテナライフを実現するArukas~
Dockerの基本と応用~快適コンテナライフを実現するArukas~Masahito Zembutsu
 
コンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのかコンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのかえむ ばーど
 
Docker webinar 20170616 - Modernize Traditional Apps with Docker Enterprise E...
Docker webinar 20170616 - Modernize Traditional Apps with Docker Enterprise E...Docker webinar 20170616 - Modernize Traditional Apps with Docker Enterprise E...
Docker webinar 20170616 - Modernize Traditional Apps with Docker Enterprise E...Creationline,inc.
 
Docker webinar 20170426−01
Docker webinar 20170426−01Docker webinar 20170426−01
Docker webinar 20170426−01Creationline,inc.
 

Viewers also liked (20)

はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
OSC 2014 Tokyo/Spring さくらの社長が語る!「さくらのクラウド」でのウェブサービスかんたん運用術~Dockerをつかってみた~
OSC 2014 Tokyo/Spring さくらの社長が語る!「さくらのクラウド」でのウェブサービスかんたん運用術~Dockerをつかってみた~OSC 2014 Tokyo/Spring さくらの社長が語る!「さくらのクラウド」でのウェブサービスかんたん運用術~Dockerをつかってみた~
OSC 2014 Tokyo/Spring さくらの社長が語る!「さくらのクラウド」でのウェブサービスかんたん運用術~Dockerをつかってみた~
 
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
 
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
 
8a1#19[はじめてのdocker] 公開版
8a1#19[はじめてのdocker] 公開版8a1#19[はじめてのdocker] 公開版
8a1#19[はじめてのdocker] 公開版
 
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
 
【第11回 クラウドごった煮(コンテナ勉強会)】Docker networking tools
【第11回 クラウドごった煮(コンテナ勉強会)】Docker networking tools【第11回 クラウドごった煮(コンテナ勉強会)】Docker networking tools
【第11回 クラウドごった煮(コンテナ勉強会)】Docker networking tools
 
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
 
Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月
 
paizaのオンラインジャッジを支えるDockerとその周辺
paizaのオンラインジャッジを支えるDockerとその周辺paizaのオンラインジャッジを支えるDockerとその周辺
paizaのオンラインジャッジを支えるDockerとその周辺
 
Docker Community Edition & Enterprise Edition
Docker Community Edition & Enterprise EditionDocker Community Edition & Enterprise Edition
Docker Community Edition & Enterprise Edition
 
Dockerのネットワークについて
DockerのネットワークについてDockerのネットワークについて
Dockerのネットワークについて
 
Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会
 
さくらの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インフラ時代...
 
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)
 
Dockerの基本的な話
Dockerの基本的な話Dockerの基本的な話
Dockerの基本的な話
 
Dockerの基本と応用~快適コンテナライフを実現するArukas~
Dockerの基本と応用~快適コンテナライフを実現するArukas~Dockerの基本と応用~快適コンテナライフを実現するArukas~
Dockerの基本と応用~快適コンテナライフを実現するArukas~
 
コンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのかコンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのか
 
Docker webinar 20170616 - Modernize Traditional Apps with Docker Enterprise E...
Docker webinar 20170616 - Modernize Traditional Apps with Docker Enterprise E...Docker webinar 20170616 - Modernize Traditional Apps with Docker Enterprise E...
Docker webinar 20170616 - Modernize Traditional Apps with Docker Enterprise E...
 
Docker webinar 20170426−01
Docker webinar 20170426−01Docker webinar 20170426−01
Docker webinar 20170426−01
 

Similar to Docker 1.12 & Swarm Mode Introduction ~ Docker の新しい技術と swarm モードの紹介

Docker Hello World
Docker Hello WorldDocker Hello World
Docker Hello WorldTakao Fukui
 
2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコムTomoyaTakegoshi
 
Docker for Windows & Web Apps for Containers 実践活用技法
Docker for Windows & Web Apps for Containers 実践活用技法Docker for Windows & Web Apps for Containers 実践活用技法
Docker for Windows & Web Apps for Containers 実践活用技法Microsoft Corporation
 
Docker講習会資料
Docker講習会資料Docker講習会資料
Docker講習会資料teruyaono1
 
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Naoki Nagazumi
 
Docker実践入門
Docker実践入門Docker実践入門
Docker実践入門hiro nemu
 
Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術Etsuji Nakai
 
いまからでも遅くない Docker事始め&愉快な仲間達
いまからでも遅くない Docker事始め&愉快な仲間達いまからでも遅くない Docker事始め&愉快な仲間達
いまからでも遅くない Docker事始め&愉快な仲間達softlayerjp
 
オトナのDocker入門
オトナのDocker入門オトナのDocker入門
オトナのDocker入門Tsukasa Kato
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Masahiro Nagano
 
ゆるふわなDockerの使い方
ゆるふわなDockerの使い方ゆるふわなDockerの使い方
ゆるふわなDockerの使い方Kento Aoyama
 
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpマイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpMasahito Zembutsu
 
Dockerでらくらく開発・運用を体感しよう
Dockerでらくらく開発・運用を体感しようDockerでらくらく開発・運用を体感しよう
Dockerでらくらく開発・運用を体感しようTakashi Makino
 
Web系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ー
Web系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ーWeb系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ー
Web系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ーYosuke INOUE
 
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~Masahito Zembutsu
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Masahito Zembutsu
 

Similar to Docker 1.12 & Swarm Mode Introduction ~ Docker の新しい技術と swarm モードの紹介 (20)

Docker Swarm入門
Docker Swarm入門Docker Swarm入門
Docker Swarm入門
 
Docker Hello World
Docker Hello WorldDocker Hello World
Docker Hello World
 
Docker Tokyo
Docker TokyoDocker Tokyo
Docker Tokyo
 
2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム
 
Docker for Windows & Web Apps for Containers 実践活用技法
Docker for Windows & Web Apps for Containers 実践活用技法Docker for Windows & Web Apps for Containers 実践活用技法
Docker for Windows & Web Apps for Containers 実践活用技法
 
Docker講習会資料
Docker講習会資料Docker講習会資料
Docker講習会資料
 
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
 
Docker実践入門
Docker実践入門Docker実践入門
Docker実践入門
 
Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術
 
いまからでも遅くない Docker事始め&愉快な仲間達
いまからでも遅くない Docker事始め&愉快な仲間達いまからでも遅くない Docker事始め&愉快な仲間達
いまからでも遅くない Docker事始め&愉快な仲間達
 
オトナのDocker入門
オトナのDocker入門オトナのDocker入門
オトナのDocker入門
 
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の使い方
 
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpマイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
 
Dockerでらくらく開発・運用を体感しよう
Dockerでらくらく開発・運用を体感しようDockerでらくらく開発・運用を体感しよう
Dockerでらくらく開発・運用を体感しよう
 
Docker超入門
Docker超入門Docker超入門
Docker超入門
 
Web系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ー
Web系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ーWeb系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ー
Web系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ー
 
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 

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 1.12 & Swarm Mode Introduction ~ Docker の新しい技術と swarm モードの紹介

  • 1. D o c k e r の 新 し い 技 術 と s w a r m m o d e の 紹 介 @zembutsu Docker 1.12 & Swarm Mode Introduction
  • 2. Docker のおさらい Docker 1.12 の技術概要 新しいswarmモードの紹介と基本コマンド(デモ)
  • 4. 開発環境でDockerを使用 アプリ環境の管理のため Dockerを使用 開発の機敏性を高めるため Dockerを使用 アプリのポータビリティを 達成するためにDockerを使用 プロダクション用の アプリでDocker使用 伝統的データベース 分散データベース ビッグデータ アプリ・サーバ ウェブ・アプリ ウェブ API Dockerの役割 開発環境周辺で Dockerの利用を計画 DevOps周辺で Dockerの利用を計画 “Docker provides the software supply chain with agility, control and portability for app development.” Dockerは開発のための機敏なソフトウェアのサプライチェーン、管理、ポータビリティを提供 [1] The Evolution of the Modern Software Supply Chain - The Docker Survey, 2016 https://www.docker.com/survey-2016
  • 5. Dockerイメージ コンテナ実行時に必要なファイルシステム tar アーカイブの中に Linux 用のファイル群が存在 イメージ・レイヤ(層)は読み込み専用 イメージはレイヤを共有 レイヤは親子関係を持つ ディスク容量消費を回避し、移動しやすく コンテナ起動時にイメージを使用 読み書き可能なレイヤを追加する イメージ内のファイルを(isolate状態で)実行する
  • 6. $ 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/
  • 7.
  • 8. Dockerコンテナの操作 OS ( Linux ) 物理/仮想サーバ Docker エンジン ( dockerd デーモン ) Linux kernel コンテナ コンテナ コンテナ リモート API docker クライアント TCP あるいは Unix ソケットドメイン containerd Runtime: runC (OCI規格準拠) ・docker コマンド Linux, Mac OS X, Windows ・Kitematic (GUI) Mac OS X, Windows ・Docker Compose ・Docker Swarm
  • 9. コンテナのプロセス httpd PID 1 コンテナA コンテナB ruby PID 1 chris.rb PID 2 /sbin/init PID 1 httpd PID 6 ruby PID 7 chris.rb PID 8 alice PID 2 bob PID 3 PPID 1 PPID 1 PPID 4 PPID 5 PPID 5 PPID 7 PPID 1 containerd PID 5 dockerd PID 4
  • 11. コンテナの実行 コンテナAのファイルシステム … … コンテナBのファイルシステム /etc (/data/ubuntu/etc) /bin (/data/ubuntu/bin) /etc (/data/centos/etc) /bin (/data/centos/bin) / / httpd PID 1 プロセスA プロセスB ruby PID 1 chris.rb PID 2 コンテナA コンテナB 名前空間の isolate ・プロセス ・ファイルシステム ・ネットワーク ・ホスト名 ・UID・GID リソース制限 ・CPU ・メモリ ・I/O ・ディスク・クォータ
  • 12. Docker Engine Linux Kernel ・namespaces ・cgroups ・capabilities … etc LXC libcontaine r runC containerdv0.9~ v1.11~ Version 7 Unix chroot jail dockerd v1.12~ デーモン ライブラリ ランタイム
  • 13. Dockerコンテナの操作 OS ( Linux ) 物理/仮想サーバ Docker エンジン ( dockerd デーモン ) Linux kernel コンテナ コンテナ コンテナ リモート API docker クライアント TCP あるいは Unix ソケットドメイン containerd Runtime: runC (OCI規格準拠) ・docker コマンド Linux, Mac OS X, Windows ・Kitematic (GUI) Mac OS X, Windows ・Docker Compose ・Docker Swarm
  • 16. Docker 1.12 概要 [2] Swarm 機能統合:Built-in Orchestration Docker Engine に Docker Swarm のクラスタ管理機能を統合 オプションとしての Swarm Mode なので、必須ではない 標準のセキュリティ機能 新しいサービスとイメージ管理 分散アプリケーション・バンドル(.dab) は JOSN 形式のフォーマットでサービス定義 docker deploy、docker stack コマンド (EXPERIMENTAL) Docker Store 発表 (private bate) 新機能 Dockerfileでヘルスチェックの定義 docker plugin コマンドのサポート ディスク・クォータ
  • 17. $ docker run … $ docker run … $ docker run … • 増減する環境 • 日々の運用 • 障害対応
  • 18. 内部分散ステート・ストア Internal Distrubuted State Store マネージャ Manager マネージャ Manager マネージャ Manager ワーカ Worker ワーカ Worker ワーカ Worker ワーカ Worker ワーカ Worker ワーカ Worker
  • 19. Built-in Orchestration シンプルでありながら強力 設計思想は、難しいことなく、とにかく動く(it just work) クラスタ管理のために、複雑なセットアップが不要 docker service や docker node コマンドを標準サポート 柔軟性 (Resilient) アプリケーションの実行単位がサービス (service)であり、期待状態を定義 安全 (Secure) PKI 基盤が組み込まれており、クラスタ間通信は常に TLS 認証が有効 オプション機能と後方互換性 swarmモードを有効化しても CPU やメモリのリソースを消費しない
  • 20. Swarm マネージャ Docker 1.12 RC の Docker Engine と Swarm v1.11まで swarm manage Swarm ノード1 Swarm ノード2 swarm join swarm join Docker Engine (docker daemon) ディスカバリ・バックエンド Consul Etcd zookeeper monitoring Remote management v1.12 RC1~ マネージャ・ノード1 ワーカ・ノード1 ワーカ・ノード2 Docker Engine (dockerd) Manager node Worker node Worker node • Docker Swarmのクラスタを管理するには、 Docker Engineとは別に Swam マネージャと Swarm ノード、さらにディスカバリ・バックエンド が必要 • Docker Engine に Swarm 機能を統合 • dockerd は Docker Engine のデーモンの役割と、 Swarm のノード(マネージャまたはワーカ)も担う • 従来必要だった Swarm コンテナやバイナリだけ でなく、外部のツールを必要としない • --replicas オプションは docker-compose scale 風 docker swarm join docker swarm join サービス タスク(コンテナの 挙動)と期待状態 (desired state)を 定義 タスク (task) タスク (task) allocate Overlay network docker swam init (クラスタ初期化) docker swam service create 内部DNSはサービス名で Load balancing サービスの公開ポートはIngress Load Balancingとして公開 (どのノードのポートにアクセスしても、対象のサービス用ポートに到達。つまり、 コンテナが起動しなくても、ノード内のどこかの IP アドレスさえ分かればよい)Docker Engine クラスタを “Swarm”(群れ)と呼ぶ
  • 21. key.pem key.pem key.pem Docker CLI .... ...... Docker クライアント "client" .... ...... Swarm クラスタ 認証局(CA)サーバ "ca" "node1" .... ...... Swarmマネージャ "swarm" ca.cert key.pem cert.pem "node2" .... ...... ca.cert cert.pem .... ...... ca.cert cert.pem .... ...... ca.cert cert.pem swarm-priv-key.pem swarm-cert.pem client-priv-key.pem client-cert.pem node1-priv-key.pem node1-cert.pem node2-priv-key.pem node2-cert.pem ca.pem Before 1.11
  • 22. key.pem key.pem key.pem Docker CLI .... ...... Docker クライアント "client" .... ...... Swarm モード 認証局(CA)サーバ "ca" "node1" .... ...... Swarmマネージャ "swarm" ca.cert key.pem cert.pem "node2" .... ...... ca.cert cert.pem .... ...... ca.cert cert.pem .... ...... ca.cert cert.pem swarm-priv-key.pem swarm-cert.pem client-priv-key.pem client-cert.pem node1-priv-key.pem node1-cert.pem node2-priv-key.pem node2-cert.pem ca.pem After 1.12
  • 24. swarmモード Docker標準搭載のクラスタとサービス管理機構 Docker Engine v1.12RC1 から Docker Swarm と機能統合 (SwarmKit) [3] クラスタを “Swarm” とよび、マネージャがノード上のサービスを簡単に一括管理 管理はサービスとタスクの単位 アプリケーションの実行単位がサービス (service)であり、期待状態を定義 複製サービスとグローバル・サービスの2種類 タスクがコンテナのスケジューリング単位 マルチホスト対応のルーティング・メッシュ 期待状態を維持するために、タスクの自動増減の対応やヘルスチェック機能 外部サービスはIngressロード・バランシングで負荷分散し、内部も DNS を持つ [4]
  • 25.
  • 27. スタック stack .dab Distributed Application Bundle (JSON) docker deploy docker stack What’s new in Docker 1.12 より [5]
  • 29. internet 仮想マシン 仮想マシン 仮想マシン network Port 80 Port 80 Port 80ingress Overlay network ・ルーティング ・負荷分散 タスク タスク タスク Swarmモードはクラスタの初期化 $ docker swarm init $ docker swarm join <host>:2377
  • 30. internet 仮想マシン 仮想マシン 仮想マシン ingress Virtual Router (IPVS) タスク タスク タスク Routing mesh network サービス作成 $ docker service create 「--constraint」でノードの指定 「--mode=global」で全ノードに展開
  • 31. manager-01 worker-01 worker-02 network ingress Overlay network nginx nginx nginx worker-03 nginx Port 8080 Port 8080 Port 8080 Port 8080 サービス期待値 (desired state)は 実際の状態とは異なる $ docker service crate --replicas 4 –p 80:8080 --name=web nginx $ docker service update --replicas 4 web
  • 32. internet manager-01 worker-01 worker-02 ingress Overlay network nginx nginx nginx worker-03 nginx Port 8080 Port 8080 Port 8080 Port 8080 network サービス期待値 (desired state)は 実際の状態とは異なる $ docker service crate --replicas 4 –p 80:8080 --name=web nginx $ docker service update --replicas 4 web
  • 33. Swarm モード を つかう には
  • 34. swarm mode 基本コマンド $ docker swarm init --listen-addr <host>:2377 $ docker swarm join <host>:<port> $ docker service create ¥ --replicas N –p <公開port>:<内部> --name <名前> <イメージ> $ docker service ls $ docker service tasks <サービス名> $ docker service update --replicas N <サービス名> $ docker service update --image <イメージ> <サービス名> $ docker service rm クラスタ初期化 クラスタ参加 サービス作成 サービス一覧 タスク一覧 サービス更新 ローリング・アップデート サービス削除
  • 35. ① Docker Engine “swarm モード” の初期化 マネージャ・ノード1 ワーカ・ノード1 ワーカ・ノード2 Docker Engine (dockerd) Manager node Worker node Worker node Docker Engine のクラスタを「swarm」(”群れ”の意味)と呼ぶ 「docker swarm」コマンドはクラスタ上のサービスやタスクを管理する はじめに「docker swarm init」コマンドでクラスタを初期する 192.168.39.1 (node-01) 192.168.39.2 (node-02) 192.168.39.3 (node-03) docker swarm init –listen-addr 192.168.39.1:2377 クラスタの初期化 docker@node-01:~$ docker node ls ID NAME MEMBERSHIP STATUS AVAILABILITY MANAGER STATUS dhrbvl6o9xqvprsq2uzq8o9ev * node-01 Accepted Ready Active Leader 各ホスト上では Docker Engine (dockerd)が 稼働している。通常の docker コマンド利用と swarm モードは併用可能 Docker Engine (dockerd) Docker Engine (dockerd) ノードは swarm クラスタ内の Docker エンジンのこと 「docker node」はクラスタのノード管理するコマンド群で、マネージャ・ノードのみ実行可能 「docker node ls」は、マネージャ用のノード一覧を表示 swarm クラスタ
  • 36. ② swarm node join でクラスタに追加 マネージャ・ノード1 ワーカ・ノード1 ワーカ・ノード2 Manager node Worker node Worker node swarm クラスタ 192.168.39.1 (node-01) 192.168.39.2 (node-02) 192.168.39.3 (node-03) docker swarm join 192.168.39.1:2377 クラスタに worker (ワーカ)として参加 docker@node-01:~$ docker node ls ID NAME MEMBERSHIP STATUS AVAILABILITY MANAGER STATUS 6puvbl7tgxislfha5iaha40jm node-03 Accepted Ready Active 9zj16or3durdh5i7c6khlench node-02 Accepted Ready Active dhrbvl6o9xqvprsq2uzq8o9ev * node-01 Accepted Ready Active Leader 「MANAGER STATUS」が無ければ、ワーカ・ノードとして動作 ただし、この例のマネージャはワーカも兼ねている TCP Port 2377 は、クラスタ管理の通信用 TCP/UDP Port 7946 はノード間通信用 TCP/UDP Port 4789 はオーバレイ・ネットワーク用 ワーカはマネージャから タスクを受け取る マネージャでサービスを定義 タスクをワーカに割り振る
  • 37. ③ swarm service create でサービス作成 マネージャ・ノード1 ワーカ・ノード1 ワーカ・ノード2 Manager node Worker node Worker node swarm クラスタ 192.168.39.1 (node-01) 192.168.39.2 (node-02) 192.168.39.3 (node-03) $ docker service create --replicas 1 –name web -p 80:80 nginx f218o6xshkyt7zzxujhnz1a2h nginx イメージを使う web という名前のサービスを作成 docker@node-01:~$ docker service ls ID NAME REPLICAS IMAGE COMMAND 13765buws9fr web 0/1 nginx サービスはレプリカの期待数を定義 「0/1」は期待数は 1 だが現状は 0 レプリカ数:1 swarmのポート80をコンテナ内の80に割り当て マネージャでサービスを定義 タスクをワーカに割り振る ID NAME REPLICAS IMAGE COMMAND 13765buws9fr web 1/1 nginx マネージャはノードにタスクを割り当て(スケジュールし)、 タスク(としてのコンテナ)が起動すると「1/1」になる サービス タスク (コンテナ) nginxweb スケジュール コンテナ起動
  • 38. ④ ポートの公開と Ingress オーバレイ・ネットワーク マネージャ・ノード1 ワーカ・ノード1 ワーカ・ノード2 Manager node Worker node Worker node swarm クラスタ 192.168.39.1 (node-01) 192.168.39.2 (node-02) 192.168.39.3 (node-03) サービス タスク (コンテナ) nginxweb Port 80(tcp) オーバレイ・ネットワーク Port 80(tcp) Ingress Port 80(tcp)Port 80(tcp) $ docker network ls NETWORK ID NAME DRIVER SCOPE bbb5e37b01e8 bridge bridge local 6550c72b075f docker_gwbridge bridge local 84baeb90cbb2 host host local 9i5hmgqr20jh ingress overlay swarm 7ab4c321bbe5 none null local
  • 39. ⑤ Ingress Load Balancing マネージャ・ノード1 ワーカ・ノード1 ワーカ・ノード2 Manager node Worker node Worker node swarm クラスタ 192.168.39.1 (node-01) 192.168.39.2 (node-02) 192.168.39.3 (node-03) タスク (コンテナ) nginx Port 80(tcp) オーバレイ・ネットワーク Port 80(tcp) Ingress タスク (コンテナ) nginx Port 80(tcp) タスク (コンテナ) nginx Port 80(tcp)
  • 41. Docker image: zembutsu/docker-sample-nginx FROM nginx:latest COPY default.conf /etc/nginx/conf.d/ COPY index.html /usr/share/nginx/html/ <html> <body> <h1>Host: <!--#echo var="HOSTNAME" --></h1> </body> </html> server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } ssi on; } Dockerfile index.html default.conf Docker 1.12.0-rc2 CentOS Linux release 7.2.1511 (Core) Linux manager-01 3.10.0-327.18.2.el7.x86_64 #1 SMP Thu May 12 11:03:55 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
  • 43. Docker 1.12 概要 [2] Swarm 機能統合:Built-in Orchestration Docker Engine に Docker Swarm のクラスタ管理機能を統合 オプションとしての Swarm Mode なので、必須ではない 標準のセキュリティ機能 新しいサービスとイメージ管理 分散アプリケーション・バンドル(.dab) は JOSN 形式のフォーマットでサービス定義 docker deploy、docker stack コマンド (EXPERIMENTAL) Docker Store 発表 (private bate) 新機能 Dockerfileでヘルスチェックの定義 docker plugin コマンドのサポート ディスク・クォータ どっかで 使おうかな?
  • 47. 参考 [1] The Evolution of the Modern Software Supply Chain - The Docker Survey, 2016 https://www.docker.com/survey-2016/ [2] Docker 1.12: Now with Built-in Orchestration! | Docker Blog https://blog.docker.com/2016/06/docker-1-12-built-in-orchestration/ [3] Swarm mode key concepts https://docs.docker.com/engine/swarm/key-concepts/ [4] Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooting http://www.slideshare.net/Docker/docker-for-ops- docker-networking-deep-dive-considerations-and-troubleshooting-by-madhu-venugopal-and-jana-radhakrishnan [5] What's New in Docker 1.12 by Mike Goelzer and Andrea Luzzardi http://www.slideshare.net/Docker/whats-new-in-docker-112-by-mike-goelzer-and-andrea-luzzardi 補足資料: Swarm mode overview https://docs.docker.com/engine/swarm/ Docker 1.12: swarm モードと Ingress Load Balancing 概要 · Pocketstudio Technology Log https://pocketstudio.net/2016/06/23/docker-1-12-swarm-mode-and-ingress-load-balancing/