SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
runC概要と使い方	
NTT	SIC	大嶋 悠司
誰	
大嶋 悠司	
所属:NTT	SIC	
昔:機械学習・ロボットなど	
今:BGPソフトウェア実装 Docker		
	
GoBGP:	h4ps://github.com/osrg/gobgp	
Dockerのネットワークプラグイン作ったり	
h4ps://github.com/gopher-net/ipvlan-docker-plugin
コンテナって最近めっちゃ聞くな	
マジか	
そういやCFでもコンテナ使ってたような...
CFでのコンテナ...	
h4p://www.slideshare.net/i_yudai/warden	
NTT Software Innovation Center
求められるもの
App環境の隔離
リソース制限の導⼊
操作⽤API
2012-07-26 7
DEAホスト
App App App
⼀⽅通⾏
制限
アプリの隔離に利用されてます
runC?	
h4ps://www.cloudfoundry.org/garden-and-runc/	
CFのバックエンドがrunCになるらしい!	
・・・runCって何?	
  ↓こいつと何が違うの?
コンテナの系譜	
chroot	
1983	
FreeeBSD	
Jail	
2000	
LXC	
2008	
docker	
2013
ソ	
ラ	
リ	
ス	
コ	
ン	
テ	
ナ	
は	
!?	
レ	
イ	
ヤ	
合	
っ	
て	
る	
!?	
warden入ってないとか!!	
とにかく古くからあるんや!!
Dockerの登場	
何が新しかったのか	
	実行環境をDockerイメージとして管理できる	
	コンテナはそのイメージのデプロイ方法
Dockerがないと	
コンテナはリソースを隔離する技術	
実行環境の構築を手動で行う必要がある
Dockerの周辺事情	
DockerとはことなるコンテナランタイムRockertを発表	
•  常駐デーモンを持たず	
•  イメージ等の仕様を公開(App	Container	Image)	
CoreOSがDockerと喧嘩	
•  セキュリティ(rootデーモン常駐・docker	pull)	
•  イメージの仕様が不明	
•  Docker社の方針
OCIの発足・runCの誕生	
Docker社がコンテナの標準仕様を議論・策定する団体を立ちあげ	
仕様のリファレンス実装として	
runC	
を公開
ちなみに...
OCIの方針	
1.  Standard	operaYons	
2.  Content-agnosYc	
3.  Infrastructure-agnosYc	
4.  Designed	for	automaYon	
5.  Industrial-grade	delivery	
イメージの標準化はまだだったり... 2016/2/10時点	
h4ps://github.com/opencontainers/specs/pull/293
コンテナのイメージとランタイム	
コンテナランタイム	
コンテナイメージ
DockerとrunCの技術的関係	
libcontainer	
libnetwork	 libkv	
イメージ	
管理	
(DistribuYon)	
libcontainer	
ベンダリング	
Docker	 runC	
議論・開発
だからrunCでは	
libcontainer	
展開	
実行!!	
Dockerイメージ	
これがCFが謳う	
DockerImage対応の意味
だからrunCでは	
libcontainer	
展開	
実行!!	
Dockerイメージ	
これがCFが謳う	
DockerImage対応の意味	
↑	
このイメージどうやって
作るの?	
Docker?
じゃ,runC使ってみよう!	
٩( 'ω' )‫و‬
Requirement:	
	Go言語がコンパイルできる	
	
$	go	get	github.com/opencontainers/runc	
$	cd	$GOPATH/src/github.com/opencontainers/runc	
$	make	
$	sudo	make	install	
$	runc	-v	
	
以上!!
Dockerイメージの実行	
Requirement:	
	dockerがインストールされてる	
	
$	docker	run	ubuntu:14.04	
$	docker	ps	-a	
	CONTAINER	ID		IMAGE														・・・ NAMES	
	265050cd7358		ubuntu:14.04		・・・ high_leavi4	
$	docker	export	high_leavi4	>	ubuntu1404.tar	
$	mkdir	runctest	
$	mkdir	runctest/roofs	
$	sudo	tar	-xvf	ubuntu1404.tar	-C	runctest/roofs	
$	cd	runctest	
$	runc	spec	
$	sudo	runc	start	ubuntu
もうちょっと使う...	
$	docker	run	-itd	ubuntu:14.04	
$	docker	ps		
	CONTAINER	ID		IMAGE														・・・ NAMES	
	58269d5f04f6		ubuntu:14.04		・・・ stoic_colden	
$	docker	inspect	-f	"{{	.NetworkSeings.SandboxID	}}"	stoic_colden	
	
	
	
$	vim	config.json	
	
	
	
	
$	sudo	runc	start	ubuntu	
で”namespace”のnetwork以下に	
“path”:	”	/var/run/docker/netns/{inspectの結果12文字}”	
を追加	
のはじめ12文字に一致する名前のファイルが	
/var/run/docker/netns にあることを確認
runC、外に出る	
$	ping	8.8.8.8	
	
	
	
	
	
ping:	icmp	open	socket:	OperaYon	not	permi4ed
続・runC、外に出る	
runCは細かくパーミッションを指定可能	
デフォルトではほとんど何もできない	
	
	
	
	
$ping	8.8.8.8	
	PING	8.8.8.8	(8.8.8.8)	56(84)	bytes	of	data.	
	64	bytes	from	8.8.8.8:	icmp_seq=1	4l=53	Yme=1.57	ms	
	
“capabiliYes”に”CAP_NET_RAW”を追加	
ついでに“args”を”bash”に
まとめ	
•  runCはコンテナランタイム	
•  イメージ管理は他所で	
•  runCだけではできることは少ないがコンテナ
ランタイムとしては十分

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Gstreamer Basics
Gstreamer BasicsGstreamer Basics
Gstreamer Basics
 
[DL輪読会]LightTrack: A Generic Framework for Online Top-Down Human Pose Tracking
[DL輪読会]LightTrack: A Generic Framework for Online Top-Down Human Pose Tracking[DL輪読会]LightTrack: A Generic Framework for Online Top-Down Human Pose Tracking
[DL輪読会]LightTrack: A Generic Framework for Online Top-Down Human Pose Tracking
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
Amazon Kinesis Video Streams WebRTC 使ってみた
Amazon Kinesis Video Streams WebRTC 使ってみたAmazon Kinesis Video Streams WebRTC 使ってみた
Amazon Kinesis Video Streams WebRTC 使ってみた
 
[GKE & Spanner 勉強会] GKE 入門
[GKE & Spanner 勉強会] GKE 入門[GKE & Spanner 勉強会] GKE 入門
[GKE & Spanner 勉強会] GKE 入門
 
リアルタイムPoint cloudデータのビジュアライゼーションについて
リアルタイムPoint cloudデータのビジュアライゼーションについてリアルタイムPoint cloudデータのビジュアライゼーションについて
リアルタイムPoint cloudデータのビジュアライゼーションについて
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Data-Centric AIの紹介
Data-Centric AIの紹介Data-Centric AIの紹介
Data-Centric AIの紹介
 
SSII2019TS: Shall We GANs?​ ~GANの基礎から最近の研究まで~
SSII2019TS: Shall We GANs?​ ~GANの基礎から最近の研究まで~SSII2019TS: Shall We GANs?​ ~GANの基礎から最近の研究まで~
SSII2019TS: Shall We GANs?​ ~GANの基礎から最近の研究まで~
 
Kongの概要と導入事例
Kongの概要と導入事例Kongの概要と導入事例
Kongの概要と導入事例
 
【JAWS-UG AI/ML支部 第14回勉強会】Amazon EC2 Trn1 GA ! ~ AWSが提供するML向けインスタンスの豊富な品揃えと 専...
【JAWS-UG AI/ML支部 第14回勉強会】Amazon EC2 Trn1 GA !  ~ AWSが提供するML向けインスタンスの豊富な品揃えと 専...【JAWS-UG AI/ML支部 第14回勉強会】Amazon EC2 Trn1 GA !  ~ AWSが提供するML向けインスタンスの豊富な品揃えと 専...
【JAWS-UG AI/ML支部 第14回勉強会】Amazon EC2 Trn1 GA ! ~ AWSが提供するML向けインスタンスの豊富な品揃えと 専...
 
TransPose: Towards Explainable Human Pose Estimation by Transformer
TransPose: Towards Explainable Human Pose Estimation by TransformerTransPose: Towards Explainable Human Pose Estimation by Transformer
TransPose: Towards Explainable Human Pose Estimation by Transformer
 
今こそ知りたい!Microsoft Azureの基礎
今こそ知りたい!Microsoft Azureの基礎今こそ知りたい!Microsoft Azureの基礎
今こそ知りたい!Microsoft Azureの基礎
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 
第31回「今アツい、分散ストレージを語ろう」(2013/11/28 on しすなま!)
第31回「今アツい、分散ストレージを語ろう」(2013/11/28 on しすなま!)第31回「今アツい、分散ストレージを語ろう」(2013/11/28 on しすなま!)
第31回「今アツい、分散ストレージを語ろう」(2013/11/28 on しすなま!)
 
[DL輪読会] Residual Attention Network for Image Classification
[DL輪読会] Residual Attention Network for Image Classification[DL輪読会] Residual Attention Network for Image Classification
[DL輪読会] Residual Attention Network for Image Classification
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 
データで散らかった製造業界における最高の翻訳機 Node-RED
データで散らかった製造業界における最高の翻訳機 Node-REDデータで散らかった製造業界における最高の翻訳機 Node-RED
データで散らかった製造業界における最高の翻訳機 Node-RED
 
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
 

Similar a runC概要と使い方

第4回 SoftLayer勉強会 資料
第4回 SoftLayer勉強会 資料第4回 SoftLayer勉強会 資料
第4回 SoftLayer勉強会 資料
Naoki Shibata
 
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native api
Naruto TAKAHASHI
 
Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own PathFirefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Path
dynamis
 

Similar a runC概要と使い方 (20)

Linux daemonとsupervisordの美味しい関係
Linux daemonとsupervisordの美味しい関係Linux daemonとsupervisordの美味しい関係
Linux daemonとsupervisordの美味しい関係
 
loggregator update
loggregator updateloggregator update
loggregator update
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
 
第4回 SoftLayer勉強会 資料
第4回 SoftLayer勉強会 資料第4回 SoftLayer勉強会 資料
第4回 SoftLayer勉強会 資料
 
WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3
 
第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ
第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ
第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ
 
コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -
 
配布用Cacti running with cherokee
配布用Cacti running with cherokee配布用Cacti running with cherokee
配布用Cacti running with cherokee
 
Clrh 20140906 lt
Clrh 20140906 ltClrh 20140906 lt
Clrh 20140906 lt
 
Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
近頃のDockerネットワーク
近頃のDockerネットワーク近頃のDockerネットワーク
近頃のDockerネットワーク
 
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native api
 
Pdp11 on-fpga
Pdp11 on-fpgaPdp11 on-fpga
Pdp11 on-fpga
 
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ
 
【初心者向け】API を使ってクラウドの管理を自動化しよう
【初心者向け】API を使ってクラウドの管理を自動化しよう【初心者向け】API を使ってクラウドの管理を自動化しよう
【初心者向け】API を使ってクラウドの管理を自動化しよう
 
Arduino を PHP で制御する
Arduino を PHP で制御するArduino を PHP で制御する
Arduino を PHP で制御する
 
Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own PathFirefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Path
 

Más de Yuji Oshima (10)

MLCT#12 使われる機能目指して 測ったり試したり
MLCT#12 使われる機能目指して 測ったり試したりMLCT#12 使われる機能目指して 測ったり試したり
MLCT#12 使われる機能目指して 測ったり試したり
 
KubeFlow MeetUp #1 Katibよもやま話
KubeFlow MeetUp #1 Katibよもやま話KubeFlow MeetUp #1 Katibよもやま話
KubeFlow MeetUp #1 Katibよもやま話
 
KubeFlowでどこまでいける?
KubeFlowでどこまでいける?KubeFlowでどこまでいける?
KubeFlowでどこまでいける?
 
2018 07-23
2018 07-232018 07-23
2018 07-23
 
2018 07-19dist
2018 07-19dist2018 07-19dist
2018 07-19dist
 
Katib
KatibKatib
Katib
 
KubernetesでGPUクラスタを管理したい
KubernetesでGPUクラスタを管理したいKubernetesでGPUクラスタを管理したい
KubernetesでGPUクラスタを管理したい
 
Infrakitの話とk8s+GPUの話
Infrakitの話とk8s+GPUの話Infrakitの話とk8s+GPUの話
Infrakitの話とk8s+GPUの話
 
Infrakit Docker_Tokyo_meetup
Infrakit Docker_Tokyo_meetupInfrakit Docker_Tokyo_meetup
Infrakit Docker_Tokyo_meetup
 
Docker1.12イングレスロードバランサ
Docker1.12イングレスロードバランサDocker1.12イングレスロードバランサ
Docker1.12イングレスロードバランサ
 

Último

Último (10)

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

runC概要と使い方