SlideShare a Scribd company logo
1
Docker Volume 基礎
Project Longhorn 紹介
Engineer / Technology Evangelist, SAKURA Internet, Inc.
@zembutsu 前佛 雅人 ZEMBUTSU Masahito
2017年6月28日(水) Rancher Meetup Tokyo #8
2
もしも Rancher-NFS が
なかったら?
3
分散環境でボリューム管理
ボリューム?
4
Docker Volume
5
データの扱い
コンテナA専用
ファイル階層
File System
…
/
/bin
/etc
/var
コンテナB専用
ファイル階層
File System
…
/
/bin
/etc
/var
6
データの扱い
コンテナA専用
ファイル階層
File System
…
/
/bin
/etc
/var
コンテナB専用
ファイル階層
File System
…
/
/bin
/etc
/var
hello.txt
×
7
データの扱い
コンテナA専用
ファイル階層
File System
…
/
/bin
/etc
/var
コンテナB専用
ファイル階層
File System
…
/
/bin
/etc
/var
hello.txt
×
HOST Root
File System
/var/lib/docker/overlay/
hello.txt
ディレクトリはストレージドライバによって異なる
A
BUFS( Union File System )
8
Docker Volume
9
データ・ボリューム
コンテナA専用
ファイル階層
File System
…
/
/bin
/etc
/var
コンテナからはUFSを通してデータ領域が見える
ストレージ・ドライバのオーバヘッドを受けない
複数のコンテナでボリュームを共有できる
volume
/data
/
ボリューム
Volume
/var/lib/docker/volumes/HOST Root
File System
10
コンテナ
ファイル階層
File System
/
UFS ( Union File System)…
/
/bin
/var
Docker
イメージ
Docker Image
/var/lib/docker/image/
volume
/
ボリューム
Volume
/data
コンテナ用
イメージ層
Container’s
Image Layer
/
/var/lib/docker/volumes//var/lib/docker/containers/
ReadOnly
11
ボリュームは3分類
ホストをマウント 名前付き
ホスト上のディレクトリ
/docker/data
/data
名前無し
volume
ボリュームの実体は、ホスト上のディレクトリ
/var/lib/docker/volumes
ボリュームはコンテナ間でデータを共有できる
volume
/data /data /etc
しかし分散環境では?
13
volume volume volume
分散環境においてボリュームを共有する手段を
Docker Engine は提供しない(swarm modeでさえ)
14
swarm mode ≠ Docker Swarm
192.168.10.1 192.168.10.11 192.168.10.12
public IP address public IP address public IP addresseth0
eth1
docker swarm init ¥
--advertise-addr=eth0 ¥
--data-path-addr=192.168.10.1
docker swarm join ¥
--token <TOKEN> ¥
<public_IP>:2377
Manager Workerfirewall-cmd --add-port=2377/tcp --permanent
firewall-cmd --add-port=7946/tcp --permanent
firewall-cmd --add-port=7946/udp --permanent
firewall-cmd --add-port=4789/udp --permanent
firewall-cmd --reload
15
docker service create -p 80:80 ¥
--replicas 2 ¥
--name=web ¥
--constraint 'node.role != manager' ¥
zembutsu/docker-sample-nginx
16
NFS
Server nfs
client
nfs
client
CentOS 7.3 (NFSv4 TCP)
192.168.10.1 192.168.10.11 192.168.10.12eth1
yum install rpcbind nfs-utils # for NFS Server
systemctl enable nfs-server
systemctl start nfs
mkdir /volumes; chown nfsnobody.nfsnobody /volumes
echo ‘/volumes 192.168.10.0/24(rw,async) 127.0.0.1(rw)’ >> /etc/exports
exportfs -a
yum install nfs-utils # for NFS clients
mkdir /sharevolume
echo ‘192.168.10.1:/volumes /sharevolume nfs defaults 0 0’ >> /etc/fstab
mount /sharevolume
17
volume volume
NFS
Server nfs
client
nfs
client
docker service create -p 80:80 ¥
--replicas 2 ¥
--name=web ¥
--constraint 'node.role != manager' ¥
--mount type=bind,source=/volumes/docroot/,destination=/usr/share/nginx/html/,bind-propagation=shared ¥
zembutsu/docker-sample-nginx
Docker volume基礎/Project Longhorn紹介
19
• スケールする環境では、コンテナだけでなく、分散ブロッ
ク・ストレージ・システムも管理が複雑化  簡単にしたい
• ストレージ・コントローラとデータ(ボリューム)を分離
• 2017年4月発表・目下開発中・オープンソース
https://github.com/rancher/longhorn
20
• ローカルディスク、ネットワークストレージ機能
• コンテナと仮想マシン用のブロック・ストレージ・ボリュームを
作成
• ボリュームごとに専用のストレージ・コントローラを作成
• ストレージ・コントローラのレプリカを作成
• ボリューム毎に複数のフロントエンドを割り当て(iSCSI ター
ゲット)
• スナップショットの作成と定期的なバックアップ処理
21Introducing Project Longhorn - April 2016 Rancher Online Meetup
https://www.slideshare.net/ShannonWilliams14/introducing-project-longhorn-april-2016-rancher-online-meetup
22
23
• 現時点では Ubuntu Server 16.04 をサポート
$ sudo apt-get update
$ sudo apt-get install open-iscsi
$ git clone https://github.com/rancher/longhorn
$ cd longhorn/deploy
$ sudo ./longhorn-setup-single-node-env.sh
(ry
1ec968b7fb266c10ee4692ec0ae1321de73c7b87f5c4822c3874148c13925265
longhorn-ui is ready
Longhorn is up at port 8080
demo
25
まとめ
27
ボリュームを通してコンテナはデータを共有する
ホストをマウント 名前付き
ホスト上のディレクトリ
/docker/data
/data
名前無し
volume
ボリュームの実体は、ホスト上のディレクトリ
/var/lib/docker/volumes
ボリュームはコンテナ間でデータを共有できる
volume
/data /data /etc
何か気になる所がありますか?
ご参考:Docker 日本語ドキュメント
http://docs.docker.jp/
http://slideshare.net/zembutsu
twitter: @zembutsu

More Related Content

PDF
Dockerを支える技術
PDF
Dockerfileを改善するためのBest Practice 2019年版
PDF
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PDF
Docker道場オンライン#1 Docker基礎概念と用語の理解
PDF
「仮想マシンからの移⾏先としてPaaSとKaaS、どちらを選ぶか? #ヤフー名古屋」
PPTX
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
PDF
最近のOpenStackを振り返ってみよう
Dockerを支える技術
Dockerfileを改善するためのBest Practice 2019年版
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
Docker道場オンライン#1 Docker基礎概念と用語の理解
「仮想マシンからの移⾏先としてPaaSとKaaS、どちらを選ぶか? #ヤフー名古屋」
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
最近のOpenStackを振り返ってみよう

What's hot (20)

PDF
AWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
PDF
Dockerイメージの理解とコンテナのライフサイクル
PDF
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
PDF
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
PDF
コンテナの作り方「Dockerは裏方で何をしているのか?」
PDF
Docker 基本のおさらい
PDF
今話題のいろいろなコンテナランタイムを比較してみた
PDF
Docker入門: コンテナ型仮想化技術の仕組みと使い方
PDF
Kuberneteの運用を支えるGitOps
PDF
Dockerからcontainerdへの移行
PDF
Docker Compose 徹底解説
PDF
20230105_TITECH_lecture_ishizaki_public.pdf
PDF
Dockerfile を書くためのベストプラクティス解説編
PDF
Linux女子部 iptables復習編
PDF
20221226_TITECH_lecture_ishizaki_public.pdf
PDF
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
PPTX
急速に進化を続けるCNIプラグイン Antrea
PDF
Machine learning CI/CD with OSS
PDF
HashiCorpのNomadを使ったコンテナのスケジューリング手法
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
AWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
Dockerイメージの理解とコンテナのライフサイクル
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナの作り方「Dockerは裏方で何をしているのか?」
Docker 基本のおさらい
今話題のいろいろなコンテナランタイムを比較してみた
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Kuberneteの運用を支えるGitOps
Dockerからcontainerdへの移行
Docker Compose 徹底解説
20230105_TITECH_lecture_ishizaki_public.pdf
Dockerfile を書くためのベストプラクティス解説編
Linux女子部 iptables復習編
20221226_TITECH_lecture_ishizaki_public.pdf
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
急速に進化を続けるCNIプラグイン Antrea
Machine learning CI/CD with OSS
HashiCorpのNomadを使ったコンテナのスケジューリング手法
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Ad

Viewers also liked (10)

PDF
Zabbix最新情報 @OSC 2017 Tokyo/Fall
PDF
コンテナで作れるFaaS
PDF
プログラミング教育の基礎知識
PDF
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
PDF
Docker最新動向2017秋+セキュリティの落とし穴
PDF
DockerとKubernetesが作る未来
PDF
Docker 17.06 Updates 最近何が変わったの?
PDF
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
PDF
TectonicはKubernetesの構築・管理基盤である -概要の章-/-構築の章-
PDF
Docker ComposeでMastodonが必要なものを梱包する話
Zabbix最新情報 @OSC 2017 Tokyo/Fall
コンテナで作れるFaaS
プログラミング教育の基礎知識
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Docker最新動向2017秋+セキュリティの落とし穴
DockerとKubernetesが作る未来
Docker 17.06 Updates 最近何が変わったの?
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
TectonicはKubernetesの構築・管理基盤である -概要の章-/-構築の章-
Docker ComposeでMastodonが必要なものを梱包する話
Ad

Similar to Docker volume基礎/Project Longhorn紹介 (20)

PDF
LibreOfficeをビルドしてみよう(Windows)
PDF
LTO/オートローダー/仮想テープライブラリの基礎知識
PDF
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
PDF
Using Kubernetes on Google Container Engine
PPTX
LinAction Theme Docker
PDF
Webサーバ構築で心がけるべき二つのこと
PDF
Linuxのユーザーランドをinitから全てまるごとgolangで書く
PDF
Osc201703 tokyo-clonezilla-v1.2 j
PDF
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
PDF
PO ファイルで翻訳管理
PDF
Dockerの仕組みとIIJ社内での利用例
PPT
Solaris Container
PDF
Tokyo.R#16 wdkz
PDF
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
PDF
Kernel ext4
PDF
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
PDF
20170124 linux basic_1
PPT
Alfrescoのバックアップとレストア
PPTX
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
LibreOfficeをビルドしてみよう(Windows)
LTO/オートローダー/仮想テープライブラリの基礎知識
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
Using Kubernetes on Google Container Engine
LinAction Theme Docker
Webサーバ構築で心がけるべき二つのこと
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Osc201703 tokyo-clonezilla-v1.2 j
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
PO ファイルで翻訳管理
Dockerの仕組みとIIJ社内での利用例
Solaris Container
Tokyo.R#16 wdkz
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
Kernel ext4
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
20170124 linux basic_1
Alfrescoのバックアップとレストア
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)

More from Masahito Zembutsu (20)

PDF
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
PDF
自由検証環境提供宣言+Docker Compose V2 GA
PDF
CentOS Linux 8 の EOL と対応策の検討
PDF
さくらインターネットのコミュニティ with COVID-19
PDF
Docker Chronicle 2021.09
PDF
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
PDF
インターネットでウェブサイトを表示している裏側の話
PDF
3分で分かる「プログラミング教育・情報教育」
PDF
ようこそオンラインの展示会場へ
PDF
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
PDF
オンライン発表で気を付けているポイント~姿勢編
PDF
Jitsi Meetとは?
PDF
Docker 9 tips~意外と知られていない日常で役立つ便利技
PDF
クリスマスに工場(Factorio)を作るゲームをしよう
PDF
2020年から始まる小学校プログラミング教育の話 #osc19os
PDF
CNCF Updates 2019 Winter version and Knative
PDF
[1C5] Docker Comose & Swarm mode Orchestration (Japan Container Days - Day1)
PDF
CNCFアップデート情報~2018年のCNCFを振り返る
PDF
コンテナ導入概要資料2018
PDF
DockerConの歩き方~海外カンファレンスに参加するには~
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
自由検証環境提供宣言+Docker Compose V2 GA
CentOS Linux 8 の EOL と対応策の検討
さくらインターネットのコミュニティ with COVID-19
Docker Chronicle 2021.09
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
インターネットでウェブサイトを表示している裏側の話
3分で分かる「プログラミング教育・情報教育」
ようこそオンラインの展示会場へ
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
オンライン発表で気を付けているポイント~姿勢編
Jitsi Meetとは?
Docker 9 tips~意外と知られていない日常で役立つ便利技
クリスマスに工場(Factorio)を作るゲームをしよう
2020年から始まる小学校プログラミング教育の話 #osc19os
CNCF Updates 2019 Winter version and Knative
[1C5] Docker Comose & Swarm mode Orchestration (Japan Container Days - Day1)
CNCFアップデート情報~2018年のCNCFを振り返る
コンテナ導入概要資料2018
DockerConの歩き方~海外カンファレンスに参加するには~

Docker volume基礎/Project Longhorn紹介