Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
【シェル芸】コマンド7つで簡易コンテナ
大神 祐真
yuma@ohgami.jp
2016/12/17
2016/12/17 大神 祐真 (yuma.ohgami.jp) 2
自己紹介
● 大神 祐真
– http://yuma.ohgami.jp
● 組み込み系のエンジニア
– Linux
– C言語、アセンブラ(ARM)
2016/12/17 大神 祐真 (yuma.ohgami.jp) 3
自己紹介
● 大神 祐真
– http://yuma.ohgami.jp
● 組み込み系のエンジニア
– Linux
– C言語、アセンブラ(ARM)
2016/12/17 大神 祐真 (yuma.ohgami.jp) 4
自己紹介
● 大神 祐真
– http://yuma.ohgami.jp
● 組み込み系のエンジニア
– Linux
– C言語、アセンブラ(ARM)
だったのですが
2016/12/17 大神 祐真 (yuma.ohgami.jp) 5
自己紹介
● 大神 祐真
– http://yuma.ohgami.jp
● 組み込み系のエンジニア
– Linux
– C言語、アセンブラ(ARM)
だったのですが
本社...
2016/12/17 大神 祐真 (yuma.ohgami.jp) 6
シェル芸で
コンテナをセットアップしてみる
発想
2016/12/17 大神 祐真 (yuma.ohgami.jp) 7
シェル芸で
コンテナをセットアップしてみる
● コンテナ型の仮想化で欠かせないのが
「名前空間の分離」
発想
2016/12/17 大神 祐真 (yuma.ohgami.jp) 8
シェル芸で
コンテナをセットアップしてみる
● コンテナ型の仮想化で欠かせないのが
「名前空間の分離」
● ”システムコールでは unshare”
発想
2016/12/17 大神 祐真 (yuma.ohgami.jp) 9
シェル芸で
コンテナをセットアップしてみる
● コンテナ型の仮想化で欠かせないのが
「名前空間の分離」
● ”システムコールでは unshare”
● unshareはコマ...
2016/12/17 大神 祐真 (yuma.ohgami.jp) 10
シェル芸で
コンテナをセットアップしてみる
● コンテナ型の仮想化で欠かせないのが
「名前空間の分離」
● ”システムコールでは unshare”
● unshareはコ...
2016/12/17 大神 祐真 (yuma.ohgami.jp) 11
シェル芸で
コンテナをセットアップしてみる
目標
2016/12/17 大神 祐真 (yuma.ohgami.jp) 12
シェル芸で
コンテナをセットアップしてみる
● ルートディレクトリとPID名前空間の分離
目標
2016/12/17 大神 祐真 (yuma.ohgami.jp) 13
シェル芸で
コンテナをセットアップしてみる
● ルートディレクトリとPID名前空間の分離
目標
具体的には、
2016/12/17 大神 祐真 (yuma.ohgami.jp) 14
シェル芸で
コンテナをセットアップしてみる
● ルートディレクトリとPID名前空間の分離
● “ls /”で別のルートディレクトリが見える
目標
具体的には、
2016/12/17 大神 祐真 (yuma.ohgami.jp) 15
シェル芸で
コンテナをセットアップしてみる
● ルートディレクトリとPID名前空間の分離
● “ls /”で別のルートディレクトリが見える
● “ps”で新たにPID=1...
2016/12/17 大神 祐真 (yuma.ohgami.jp) 16
簡易コンテナをセットアップする
7つのコマンド
ホストマシン上
$ mkdir test_container
$ cd test_container
$ cp -r /b...
2016/12/17 大神 祐真 (yuma.ohgami.jp) 17
結果
2016/12/17 大神 祐真 (yuma.ohgami.jp) 18
参考
●
もっと、しっかりと
シェルスクリプトで実現された方が居ます
MINCS
2016/12/17 大神 祐真 (yuma.ohgami.jp) 19
ご清聴、
ありがとうございました!
Upcoming SlideShare
Loading in …5
×

【シェル芸】コマンド7つで簡易コンテナ

294 views

Published on

CLR/H #103 ~ クリスマス オブ ザ デッド ~
https://clrh.connpass.com/event/45552/
のLTのスライドです。

同内容のブログ記事も公開しています。
chrootとunshareを使い、シェル上でコマンド7つで簡易コンテナ
http://d.hatena.ne.jp/cupnes/20161215/1481755818

Published in: Software
  • Be the first to comment

  • Be the first to like this

【シェル芸】コマンド7つで簡易コンテナ

  1. 1. 【シェル芸】コマンド7つで簡易コンテナ 大神 祐真 yuma@ohgami.jp 2016/12/17
  2. 2. 2016/12/17 大神 祐真 (yuma.ohgami.jp) 2 自己紹介 ● 大神 祐真 – http://yuma.ohgami.jp ● 組み込み系のエンジニア – Linux – C言語、アセンブラ(ARM)
  3. 3. 2016/12/17 大神 祐真 (yuma.ohgami.jp) 3 自己紹介 ● 大神 祐真 – http://yuma.ohgami.jp ● 組み込み系のエンジニア – Linux – C言語、アセンブラ(ARM)
  4. 4. 2016/12/17 大神 祐真 (yuma.ohgami.jp) 4 自己紹介 ● 大神 祐真 – http://yuma.ohgami.jp ● 組み込み系のエンジニア – Linux – C言語、アセンブラ(ARM) だったのですが
  5. 5. 2016/12/17 大神 祐真 (yuma.ohgami.jp) 5 自己紹介 ● 大神 祐真 – http://yuma.ohgami.jp ● 組み込み系のエンジニア – Linux – C言語、アセンブラ(ARM) だったのですが 本社 営業所 12/1から 異動で 技術営業に
  6. 6. 2016/12/17 大神 祐真 (yuma.ohgami.jp) 6 シェル芸で コンテナをセットアップしてみる 発想
  7. 7. 2016/12/17 大神 祐真 (yuma.ohgami.jp) 7 シェル芸で コンテナをセットアップしてみる ● コンテナ型の仮想化で欠かせないのが 「名前空間の分離」 発想
  8. 8. 2016/12/17 大神 祐真 (yuma.ohgami.jp) 8 シェル芸で コンテナをセットアップしてみる ● コンテナ型の仮想化で欠かせないのが 「名前空間の分離」 ● ”システムコールでは unshare” 発想
  9. 9. 2016/12/17 大神 祐真 (yuma.ohgami.jp) 9 シェル芸で コンテナをセットアップしてみる ● コンテナ型の仮想化で欠かせないのが 「名前空間の分離」 ● ”システムコールでは unshare” ● unshareはコマンドもある 発想
  10. 10. 2016/12/17 大神 祐真 (yuma.ohgami.jp) 10 シェル芸で コンテナをセットアップしてみる ● コンテナ型の仮想化で欠かせないのが 「名前空間の分離」 ● ”システムコールでは unshare” ● unshareはコマンドもある ● シェル芸できる! 発想
  11. 11. 2016/12/17 大神 祐真 (yuma.ohgami.jp) 11 シェル芸で コンテナをセットアップしてみる 目標
  12. 12. 2016/12/17 大神 祐真 (yuma.ohgami.jp) 12 シェル芸で コンテナをセットアップしてみる ● ルートディレクトリとPID名前空間の分離 目標
  13. 13. 2016/12/17 大神 祐真 (yuma.ohgami.jp) 13 シェル芸で コンテナをセットアップしてみる ● ルートディレクトリとPID名前空間の分離 目標 具体的には、
  14. 14. 2016/12/17 大神 祐真 (yuma.ohgami.jp) 14 シェル芸で コンテナをセットアップしてみる ● ルートディレクトリとPID名前空間の分離 ● “ls /”で別のルートディレクトリが見える 目標 具体的には、
  15. 15. 2016/12/17 大神 祐真 (yuma.ohgami.jp) 15 シェル芸で コンテナをセットアップしてみる ● ルートディレクトリとPID名前空間の分離 ● “ls /”で別のルートディレクトリが見える ● “ps”で新たにPID=1から割り振られている 目標 具体的には、
  16. 16. 2016/12/17 大神 祐真 (yuma.ohgami.jp) 16 簡易コンテナをセットアップする 7つのコマンド ホストマシン上 $ mkdir test_container $ cd test_container $ cp -r /bin /lib /lib64 . $ sudo unshare -pf chroot . bash 簡易コンテナ上 # mkdir -p /proc /dev/pts # mount -t proc proc /proc # mount -t devpts devpts /dev/pts
  17. 17. 2016/12/17 大神 祐真 (yuma.ohgami.jp) 17 結果
  18. 18. 2016/12/17 大神 祐真 (yuma.ohgami.jp) 18 参考 ● もっと、しっかりと シェルスクリプトで実現された方が居ます MINCS
  19. 19. 2016/12/17 大神 祐真 (yuma.ohgami.jp) 19 ご清聴、 ありがとうございました!

×