SlideShare a Scribd company logo
1 of 39
Download to read offline
第8回 コンテナ型仮想化の情報交換会@東京1
MINCS – containers in the shell script
@mhiramat
Github.com/mhiramat/
2
スピーカーについて
@mhiramat
Linux カーネルハッカーだが
最近はコードをいじれていない (><)o
Perftools や Ftrace のメンテナンスをしています
3
はじめに
今日の発表はほぼ 100% シェルスクリプトの話ですが、
発表者は USP とは特に関係ありません。
でも興味があるのでいつでも呼んでください
4
コンテナとは ?
コンテナ= Docker という風潮
他にも様々な OSS 実装が・・・
LXC
Runc
OpenVZ
Etc…
そもそもコンテナって何?
5
Docker
Docker は多くの機能を提供
コンテナ機能
ソフトウェアのパッケージ化
レイヤーの管理
ソフトウェアのカタログ化
REST API
Etc…
どうやって動いてる?
6
Docker は素晴らしい、でも・・・
ちょっと大きすぎないですか?
全機能が一つになっていて個々の機能が試しにくい
シングルバイナリ全部入り
Unix 哲学を思い出そう
Keep It Simple, Stupid
既存のツールで実現できそう
7
Let's mimic it!
最小限の実行環境分離を試そう
名前空間を使ってみよう
デバイスファイルなどをバインドしてみよう
Chroot/pivot_root で rootfs を変えてみよう
Capabilities や CPUSET も使ってみよう
ファイルシステムのレイヤリングもしてみよう
Overlayfs がある!( 3.18 以降)
コンテナイメージの管理もしてみよう
8
  MINCS
Minimum Container Shell-scripts
https://github.com/mhiramat/mincs
基本機能
PID/Net/UTS/Mount 名前空間
Overlayfs によるレイヤリング
その他 Capabilities 、 CPUSET など
POSIX shell script (not bash script)
busybox shell/dash などでも動作可能
9
MINCS
フロントエンド(パーサー)
minc
marten
polecat
バックエンド
minc-exec
minc-coat
minc-leash
minc-farm
minc-trapper
10
フロントエンドスクリプト
MINCS のフロントエンドコマンド
Minc : 指定したコマンドをコンテナ内で動かす
Marten : マルチレイヤのコンテナイメージを管理する
Polecat : 自己実行形式のシングルバイナリコンテナアプリを作る
フロントエンドコマンドは基本的にパラメタのパースのみ
環境変数に変換してバックエンドを呼び出す
Marten/minc-farm の関係だけはまだちゃんとできていない
11
minc
MINCS のメインツール
コマンドをコンテナの中で動かす
Chroot コマンドのようなもの(ただしちょっと制限がある)
あるいは Docker run?  :)
デフォルトで名前空間分離と overlayfs による作業空間分離を行う
Docker のようなコンテナイメージは不要
Chroot のような rootfs ディレクトリも不要( / に直接 overlayfs を被せられる)
ネットワークはそのまま見える
[mhiramat@localhost mincs]$ sudo ./minc ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 10:58 ? 00:00:00 ps -ef
12
minc: Usage
Usage: minc [options] [command]
Options:
-r/--root ROOTDIR rootfs とするディレクトリを指定。省略時は / を使う。
-t/--temp TEMPDIR 作業ディレクトリを指定( -k 有効)。省略すると mktemp で作成。
-k mktemp で作った作業ディレクトリを消さない
--name UTSNAME コンテナ内で使うホスト名を指定する
--debug デバッグ用にログを出す
Command は省略すると (root ユーザの )$SHELL を実行
13
Dive into the shell script
minc コマンドがどうやってコンテナを作るか覗いてみよう
ステップ 1  :コマンドライン処理と環境変数の設定
ステップ 2  : minc-exec の実行
netns と cpumask の設定
新しい名前空間への移行
PID の保存と uts の設定
コンテナ用 rootfs のセットアップ
デバイスファイルのバインド
不要なマウントポイントの削除
新しい rootfs への移行と capabilities の設定
14
Minc: コマンドライン処理
シンプルな case 文と while ループで処理
getopts は使いにくいので使っていない
While と shift コマンドでコマンドラインを処理するだけ
主に環境変数の設定
知らない引数が出てきたら取り敢えずコマンドと解釈 :)
ループ後の処理
必要なら後述する minc-farm を使って UUID からイメージを取り出す
trap コマンドで後処理を設定
Minc-exec を呼び出す
15
Minc-exec(1) :概要
基本的には自分で自分を呼び出すシェルスクリプト
名前空間を作る unshare コマンドは何かを実行しないといけない
→自分自身を呼び出す(昔の名残)
以前は chns という 1 ファイルのスクリプトだった
1 度目の実行はコンテナ外部の処理
netns と cpuset の設定
2 度めの実行はコンテナ内部の処理
PID=1 かどうかを調べて切り替え
コンテナ内部から色んな物を隠す
デバイスファイル
procfs の再マウント
16
Minc-exec(2) : netns/cpuset
netns の設定
MINC_NETNS で指定された名前の netns を ip netns コマンドで作る
終了時に Trap コマンドで削除
一応仮想 eth pair だけは作成(でも IP アドレスは割り当てていない)
Docker のような iptables 対応はしない
pipework などがあるため
CPUSET で CPU マスクを設定
taskset コマンドで実行する CPU を指定する
cgroups のような細かい設定はなし
17
閑話休題: Trap コマンド
Trap コマンドは偉大
シグナルによる割り込みとシェルスクリプト終了をハンドリングできる
スクリプト内の関数も呼び出せる
→ 後処理関数を作れる
minc では積極的に trap を活用
一時ファイル /PID ファイルの削除
終了時の info 表示
Ctrl+c の抑制
18
Minc-exec(3) : unshare による名前空間移動
Unshare コマンドで名前空間を移動
自分自身を指定して起動
Pid, mount, ipc, uts の名前空間を分離
unshare -iumpf $0 “$@”
netns だけは ip netns exec を使う
ip netns exec $MINC_NETNS unshare -iumpf $0 “$@”
19
Minc-exec(4) : PID と utsname の処理
PID の取得
後でコンテナ外から PID を知るために使う
Unshare は fork してしまうのでコンテナ内からしか分からない :)
実は procfs を remount しない限り /proc はコンテナ外と同じ
/proc/self が参照できるのだ!
utsname の設定
MINC_UTSNAME で設定した名前を hostname に指定
20
Minc-exec(5): マウント名前空間とオーバレイ
mount 名前空間の完全隔離
unshare で mount 名前空間を隔離しても、他の名前空間に操作が伝搬する!
何だこの仕様・・・。
Mount --make-rprivate / を実行
/ 以下でのマウント操作を他の名前空間に通知しない
Minc-coat でオーバレイを行う
Minc-coat バックエンド(後述)で rootfs に作業ディレクトリを被せる
この後の作業が元になる rootfs に変更をしないようにする
rootfs を壊していい場合は --direct オプションを付ける
21
Minc-coat :オーバレイの実装
一時的ディレクトリに root, storage, work を作成
root : overlayfs をマウントするマウントポイント → $RD
storage: コンテナ内の作業結果が記録されるディレクトリ → $UD
work: overlayfs 用の Workdir (ファイルシステムが使う) → $WD
Overlay ファイルシステムで新しい rootfs を作る
名前空間の分離だけでなく、レイヤを作ってストレージを分離
カーネルバージョンによって少しオプションが違うので注意が必要
Upstream カーネルに対応するマウントコマンド
mount -t overlay -o upperdir=$UD,lowerdir=$BASEDIR,workdir=$WD overlayfs $RD
Ubuntu14.10 用の overlayfs に対応するマウントコマンド
mount -t overlayfs -o upperdir=$UD,lowerdir=$BASEDIR overlayfs $RD
22
Minc-exec(6) :特殊ファイルの処理
特殊ファイル・ディレクトリの処理
まず /etc, /dev, /sys, /proc を minc-coat で作ったディレクトリに作成
/dev 以下のバインドマウント
ダミーファイルを作って mount --bind で実体とバインドする( symlink みたいなもの)
/dev/console, /dev/null, /dev/zero, /dev/random, /dev/urandom, /dev/mqueue
正直このあたりは使う人が勝手に書き換えてほしい
/dev/pts だけは newinstance オプションで新規作成
/proc のマウント
元の /proc はリードオンリーにしておく
此処から先は他のプロセス PID が見えなくなる
/proc/sys など書き込まれたくないものは、元の /proc (既に ro 化済)の物を見せる
/sys のバインドマウント
バインドマウントを使ってマウント(これも ro 化が必要かも)
23
閑話休題:デバッグ
デバッグはどうするの?
動作確認だけなら、 --debug オプションを minc に渡します
set -x が有効になりログが吐かれます
いろいろコマンドラインから確認したい→ブレークポイントに bash と書く
その処理の時点で bash が起動するので適当に楽しんでください
その時の状態だけを確認したい
コマンドを書いてください
MINCS は単なるシェルスクリプト
変えたいように変えればいい
24
Minc-exec(7) : mountpoint の後処理
不要な mountpoint を消す
残しておくと chroot 後にも見えてしまう
umount 出来ないものがあるので pivot_root で処理を行う
動作を見るために df -h を挟んでモニタしてみるとよくわかる
25
Minc-exec(7) : mountpoint の後処理
不要な mountpoint を消す
残しておくと chroot 後にも見えてしまう
umount 出来ないものがあるので pivot_root で処理を行う
Filesystem Size Used Avail Use% Mounted on
devtmpfs 740M 0 740M 0% /dev
tmpfs 748M 0 748M 0% /dev/shm
tmpfs 748M 8.5M 740M 2% /run
tmpfs 748M 0 748M 0% /sys/fs/cgroup
/dev/sda2 15G 8.6G 6.5G 58% /
minc実行前
26
Minc-exec(7) : mountpoint の後処理
不要な mountpoint を消す
残しておくと chroot 後にも見えてしまう
umount 出来ないものがあるので pivot_root で処理を行う
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 15G 8.6G 6.5G 58% /
devtmpfs 740M 0 740M 0% /dev
tmpfs 748M 0 748M 0% /dev/shm
tmpfs 748M 0 748M 0% /sys/fs/cgroup
tmpfs 748M 8.5M 740M 2% /run
overlayfs 15G 8.6G 6.5G 58% /tmp/minc1012-NpuyIA/root
tmpfs 748M 0 748M 0% /tmp/minc1012-NpuyIA/root/dev
devtmpfs 740M 0 740M 0% /tmp/minc1012-NpuyIA/root/dev/console
devtmpfs 740M 0 740M 0% /tmp/minc1012-NpuyIA/root/dev/null
devtmpfs 740M 0 740M 0% /tmp/minc1012-NpuyIA/root/dev/zero
devtmpfs 740M 0 740M 0% /tmp/minc1012-NpuyIA/root/dev/random
devtmpfs 740M 0 740M 0% /tmp/minc1012-NpuyIA/root/dev/urandom
特殊ファイルを用意
27
Minc-exec(7) : mountpoint の後処理
不要な mountpoint を消す
残しておくと chroot 後にも見えてしまう
umount 出来ないものがあるので pivot_root で処理を行う
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 15G 8.6G 6.5G 58% /.orig
devtmpfs 740M 0 740M 0% /.orig/dev
tmpfs 748M 0 748M 0% /.orig/dev/shm
tmpfs 748M 0 748M 0% /.orig/sys/fs/cgroup
tmpfs 748M 8.5M 740M 2% /.orig/run
overlayfs 15G 8.6G 6.5G 58% /
tmpfs 748M 0 748M 0% /dev
devtmpfs 740M 0 740M 0% /dev/console
devtmpfs 740M 0 740M 0% /dev/null
devtmpfs 740M 0 740M 0% /dev/zero
devtmpfs 740M 0 740M 0% /dev/random
devtmpfs 740M 0 740M 0% /dev/urandom
1回目のpivot_root
ではこの辺りが残る
28
Minc-exec(7) : mountpoint の後処理
不要な mountpoint を消す
残しておくと chroot 後にも見えてしまう
umount 出来ないものがあるので pivot_root で処理を行う
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 15G 8.6G 6.5G 58% /.orig
overlayfs 15G 8.6G 6.5G 58% /
tmpfs 748M 0 748M 0% /dev
devtmpfs 740M 0 740M 0% /dev/console
devtmpfs 740M 0 740M 0% /dev/null
devtmpfs 740M 0 740M 0% /dev/zero
devtmpfs 740M 0 740M 0% /dev/random
devtmpfs 740M 0 740M 0% /dev/urandom
古い/devなどを
削除する
29
Minc-exec(7) : mountpoint の後処理
不要な mountpoint を消す
残しておくと chroot 後にも見えてしまう
umount 出来ないものがあるので pivot_root で処理を行う
Filesystem Size Used Avail Use% Mounted on
overlayfs 15G 8.6G 6.5G 58% /
tmpfs 748M 0 748M 0% /dev
devtmpfs 740M 0 740M 0% /dev/console
devtmpfs 740M 0 740M 0% /dev/null
devtmpfs 740M 0 740M 0% /dev/zero
devtmpfs 740M 0 740M 0% /dev/random
devtmpfs 740M 0 740M 0% /dev/urandom
古い/にpivotしなおした後
新しい/にchrootした
30
Minc-leash
Leash 関数 = “Least capabilities shell”
Linux ケーパビリティの制限と chroot を行う
capsh(libcap) を利用
実行ユーザも変更
gid と uid で変更
ケーパビリティを変更しないなら Chroot だけ実行
Wash 関数
シェルスクリプト間でやり取りしてきた環境変数を消す
env と grep で MINC_* を取り出して unset
31
MINCS のユースケース
小さいことはいいことだ(確信
コンテナ機能を学ぶ教材としての利用
Docker も裏でいろいろしている
なんでこんな制約があるの?→実際作るとわかる
プロトタイプやテストのお供に
小さいことはいいことだ(重要
組み込みデバイスにコンテナを求めるのは間違っているだろうか
Docker(14MB~) vs MINCS+Busybox(~4MB, シェルや基本コマンド込 )
→Boot2MINC
32
Boot2minc
自家製最小 ISO イメージ+ MINCS
https://github.com/mhiramat/boot2minc
Minimal Linux Live ( https://github.com/ivandavidov/minimal )から fork
boot2minc に含まれるもの
Linux kernel
Busybox(+unshare パッチ )
MINCS
以上 :)
カーネル含めて 8MB ぐらいのイメージ (Qemu-kvm で起動可能 )
Busybox とカーネルの config の絞り込みを行えば更に小さくできる
33
Marten: コンテナイメージの管理
コンテナは実行環境の分離
minc はコンテナ機能のみを提供
-r オプションで rootfs の指定が可能
毎回 debootstrap とかで再構築するの? Fedora とか CentOS はどうする?
-t オプションで指定した作業結果の再利用が面倒
今回作成した作業結果を反映させたい・・・
Overlayfs ベースのコンテナイメージ管理をしよう
Docker っぽく UUID っぽいもので識別
イメージ間の依存関係をシェルスクリプトで整理しよう
Docker export/save したイメージの再利用
34
デモ
Minc
Marten
Boot2minc
35
TODO
minc
TTY を screen/tmux 経由でサポート
pipework とのコラボ (netns なんとかしよう )
cgroups によるメモリや CPU 利用量の制限 (minc-cage)
btrfs や dm-thin のサポート (plugin 方式? )
marten
コンテナの export と署名添付機能の追加( O.C.I. 互換?)
UUID ベースのコンテナ起動機能追加(より Docker っぽく)
36
課題
Testcases
シェルスクリプトで書けるだろう
Capsh の問題
Capabilities の設定のために Capsh を使うと” sh -c” 経由になってしまう
実行コマンドにエスケープ文字列などが渡せない問題・・・
37
まとめ
今日伝えたかったこと
「 Linux 特有の機能を組み合わせたらコンテナができる」
特殊な機能を使っているわけではなく基本的に全部対応するコマンドがある
つまり
「 Linux +シェルスクリプト最強!」
38
おわり
ありがとうございました
m(_ _)m
https://github.com/mhiramat/mincs
39
Docker 連携の例
# docker save centos | gzip - > centos.tar.gz
# marten import centos.tar.gz
Importing image: centos
511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158
5b12ef8fd57065237a6833039acc0e7f68e363c15d8abb5cacce7143a1f7de8a
8efe422e6104930bd0975c199faa15da985b6694513d2e873aa2da9ee402174c
# marten images
ID SIZE NAME
511136ea3c5a 4.0K (noname)
5b12ef8fd570 4.0K (noname)
8efe422e6104 224M centos
# minc -r centos /bin/bash

More Related Content

What's hot

あの日実行したコンテナの名前を僕達はまだ知らない。
あの日実行したコンテナの名前を僕達はまだ知らない。あの日実行したコンテナの名前を僕達はまだ知らない。
あの日実行したコンテナの名前を僕達はまだ知らない。Masahito Zembutsu
 
Dockerの改修を一緒にやりませんか
Dockerの改修を一緒にやりませんかDockerの改修を一緒にやりませんか
Dockerの改修を一緒にやりませんかaxsh co., LTD.
 
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulicDocker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ puliccyberblack28 Ichikawa
 
コンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのかコンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのかえむ ばーど
 
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud AutomationEtsuji Nakai
 
15分で分か(った気になれ)るDocker
15分で分か(った気になれ)るDocker15分で分か(った気になれ)るDocker
15分で分か(った気になれ)るDockerMasahiro NAKAYAMA
 
Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会Etsuji Nakai
 
インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)
インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)
インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)Etsuji Nakai
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよnpsg
 
Rancher.ioを試してみる
Rancher.ioを試してみるRancher.ioを試してみる
Rancher.ioを試してみるTakaaki Fukai
 
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~Preferred Networks
 
Lxc cf201207-presen
Lxc cf201207-presenLxc cf201207-presen
Lxc cf201207-presenKouhei Maeda
 
爆速プレビュープロキシ pool
爆速プレビュープロキシ pool爆速プレビュープロキシ pool
爆速プレビュープロキシ poolmookjp
 
VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~
VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~
VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~Masaomi Kudo
 
Introduction to Initramfs - Initramfs-tools and Dracut
Introduction to Initramfs - Initramfs-tools and DracutIntroduction to Initramfs - Initramfs-tools and Dracut
Introduction to Initramfs - Initramfs-tools and DracutTaisuke Yamada
 
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineEtsuji Nakai
 
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入門 - PASONATECH ADVANTAGE SEMINAR
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINARVirtualTech Japan Inc.
 
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪Kunihiro TANAKA
 

What's hot (20)

あの日実行したコンテナの名前を僕達はまだ知らない。
あの日実行したコンテナの名前を僕達はまだ知らない。あの日実行したコンテナの名前を僕達はまだ知らない。
あの日実行したコンテナの名前を僕達はまだ知らない。
 
Docker入門
Docker入門Docker入門
Docker入門
 
Dockerの改修を一緒にやりませんか
Dockerの改修を一緒にやりませんかDockerの改修を一緒にやりませんか
Dockerの改修を一緒にやりませんか
 
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulicDocker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
 
コンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのかコンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのか
 
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud Automation
 
15分で分か(った気になれ)るDocker
15分で分か(った気になれ)るDocker15分で分か(った気になれ)るDocker
15分で分か(った気になれ)るDocker
 
Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会
 
インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)
インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)
インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
 
Rancher.ioを試してみる
Rancher.ioを試してみるRancher.ioを試してみる
Rancher.ioを試してみる
 
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
 
Lxc cf201207-presen
Lxc cf201207-presenLxc cf201207-presen
Lxc cf201207-presen
 
爆速プレビュープロキシ pool
爆速プレビュープロキシ pool爆速プレビュープロキシ pool
爆速プレビュープロキシ pool
 
VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~
VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~
VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~
 
Introduction to Initramfs - Initramfs-tools and Dracut
Introduction to Initramfs - Initramfs-tools and DracutIntroduction to Initramfs - Initramfs-tools and Dracut
Introduction to Initramfs - Initramfs-tools and Dracut
 
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container Engine
 
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入門 - PASONATECH ADVANTAGE SEMINAR
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
 
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
 

Similar to MINCS – containers in the shell script

Cloud9にリモートデスクトップ接続する
Cloud9にリモートデスクトップ接続するCloud9にリモートデスクトップ接続する
Cloud9にリモートデスクトップ接続するRyo Ishii
 
IaaSクラウドを支える基礎技術 演習編_v1_0
IaaSクラウドを支える基礎技術 演習編_v1_0IaaSクラウドを支える基礎技術 演習編_v1_0
IaaSクラウドを支える基礎技術 演習編_v1_0Etsuji Nakai
 
Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術Etsuji Nakai
 
Docker調査20150704
Docker調査20150704Docker調査20150704
Docker調査20150704HommasSlide
 
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座Masahito Zembutsu
 
もしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったらもしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったらTakuma Nakajima
 
Ubuntuで始めるコンテナ技術入門
Ubuntuで始めるコンテナ技術入門Ubuntuで始めるコンテナ技術入門
Ubuntuで始めるコンテナ技術入門Takenori Matsumoto
 
Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴Masahito Zembutsu
 
コンテナ情報交換会2
コンテナ情報交換会2コンテナ情報交換会2
コンテナ情報交換会2Masahide Yamamoto
 
Osc10do linux nextstep
Osc10do linux nextstepOsc10do linux nextstep
Osc10do linux nextstepsmokey monkey
 
2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめMakiko Konoshima
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門Masahito Zembutsu
 
Linux Performance Analysis in 15 minutes
Linux Performance Analysis in 15 minutesLinux Performance Analysis in 15 minutes
Linux Performance Analysis in 15 minutesYohei Azekatsu
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Masahito Zembutsu
 
Pythonによる並列プログラミング -GPGPUも-
Pythonによる並列プログラミング   -GPGPUも- Pythonによる並列プログラミング   -GPGPUも-
Pythonによる並列プログラミング -GPGPUも- Yusaku Watanabe
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1Kotaro Noyama
 

Similar to MINCS – containers in the shell script (20)

Cloud9にリモートデスクトップ接続する
Cloud9にリモートデスクトップ接続するCloud9にリモートデスクトップ接続する
Cloud9にリモートデスクトップ接続する
 
Open VZ
Open VZOpen VZ
Open VZ
 
IaaSクラウドを支える基礎技術 演習編_v1_0
IaaSクラウドを支える基礎技術 演習編_v1_0IaaSクラウドを支える基礎技術 演習編_v1_0
IaaSクラウドを支える基礎技術 演習編_v1_0
 
Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術
 
Docker調査20150704
Docker調査20150704Docker調査20150704
Docker調査20150704
 
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
 
もしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったらもしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったら
 
Ubuntuで始めるコンテナ技術入門
Ubuntuで始めるコンテナ技術入門Ubuntuで始めるコンテナ技術入門
Ubuntuで始めるコンテナ技術入門
 
Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴
 
コンテナ情報交換会2
コンテナ情報交換会2コンテナ情報交換会2
コンテナ情報交換会2
 
Osc10do linux nextstep
Osc10do linux nextstepOsc10do linux nextstep
Osc10do linux nextstep
 
Gingerbread
GingerbreadGingerbread
Gingerbread
 
2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
 
KVM+cgroup
KVM+cgroupKVM+cgroup
KVM+cgroup
 
Linux Performance Analysis in 15 minutes
Linux Performance Analysis in 15 minutesLinux Performance Analysis in 15 minutes
Linux Performance Analysis in 15 minutes
 
about DakotagUI
about DakotagUIabout DakotagUI
about DakotagUI
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
Pythonによる並列プログラミング -GPGPUも-
Pythonによる並列プログラミング   -GPGPUも- Pythonによる並列プログラミング   -GPGPUも-
Pythonによる並列プログラミング -GPGPUも-
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
 

MINCS – containers in the shell script