Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
雰囲気でコンテナ使っている全ての人が読むべき「コンテナ技術入門」の紹介
Search
濱田孝治
July 05, 2019
Technology
9
28k
雰囲気でコンテナ使っている 全ての人が読むべき 「コンテナ技術入門」の紹介
コンテナを根っこから理解するのに最適なテキスト「コンテナ技術入門」の紹介です。
濱田孝治
July 05, 2019
Tweet
Share
More Decks by 濱田孝治
See All by 濱田孝治
製造現場のデジタル化における課題とPLC Data to Cloudによる新しいアプローチ
hamadakoji
0
380
可視化プラットフォームGrafanaの基本と活用方法の全て
hamadakoji
3
1.3k
20分で完全に理解するGrafanaダッシュボード
hamadakoji
5
2.6k
GuadDutyによるコンテナランタイム脅威検知にすべて〜その凄さと設定注意点と検知の様子をまるっとお届け〜
hamadakoji
4
1.3k
re:Invent2023で体験したIoT面白ワークショップ〜お絵描き2Dロボットの構築〜
hamadakoji
0
750
今改めて見直してみるラズパイの真価
hamadakoji
1
630
40分1本勝負 VPoE ハマコーvs20人の悩めるエンジニアリングマネージャー
hamadakoji
0
73
AWSの次世代プロセッサ Graviton2(Arm64)をLambdaとFargateで使うために考えるべきこと
hamadakoji
3
2k
エンジニアリングマネージャーの理想と現実
hamadakoji
13
8.5k
Other Decks in Technology
See All in Technology
ゼロから創る横断SREチーム 挑戦と進化の軌跡
rvirus0817
2
270
20241220_S3 tablesの使い方を検証してみた
handy
4
610
ブラックフライデーで購入したPixel9で、Gemini Nanoを動かしてみた
marchin1989
1
540
Wantedly での Datadog 活用事例
bgpat
1
520
マイクロサービスにおける容易なトランザクション管理に向けて
scalar
0
140
なぜCodeceptJSを選んだか
goataka
0
160
開発生産性向上! 育成を「改善」と捉えるエンジニア育成戦略
shoota
2
400
株式会社ログラス − エンジニア向け会社説明資料 / Loglass Comapany Deck for Engineer
loglass2019
3
32k
.NET 9 のパフォーマンス改善
nenonaninu
0
1k
OpenAIの蒸留機能(Model Distillation)を使用して運用中のLLMのコストを削減する取り組み
pharma_x_tech
4
560
20241214_WACATE2024冬_テスト設計技法をチョット俯瞰してみよう
kzsuzuki
3
530
大幅アップデートされたRagas v0.2をキャッチアップ
os1ma
2
540
Featured
See All Featured
Music & Morning Musume
bryan
46
6.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
520
Bash Introduction
62gerente
608
210k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
KATA
mclloyd
29
14k
Git: the NoSQL Database
bkeepers
PRO
427
64k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
28
900
Speed Design
sergeychernyshev
25
670
Automating Front-end Workflow
addyosmani
1366
200k
For a Future-Friendly Web
brad_frost
175
9.4k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
Transcript
雰囲気でコンテナ使っている 全ての⼈が読むべき 「コンテナ技術⼊⾨」の紹介
@hamako9999 濱⽥孝治 (ハマコー) 2
3 最初にお聞きしたい 皆さん、この記事ご存知ですか︖
4 はてブ︓1266 https://employment.en- japan.com/engineerhub/entry/2019/02 /05/103000
5 さらにお聞きしたい 最後まで読んで実⾏された⽅は︖
6 ⼀⾔ なんてもったいない︕︕
7 話すこと • 「コンテナ技術⼊⾨」にかかれていること • 「コンテナ技術⼊⾨」やって感じたこと • 「コンテナ技術⼊⾨」が素晴らしいところ
8 「コンテナ技術⼊⾨」 に書かれていること
9 基本はこれ コンテナをささえている要素技術
10 コンテナを⽀える要素技術 • Namespace • cgroup • Capability • chrootとpivot_root
• OverlayFS • Network Namespace
11 コンテナを⽀える要素技術 • Namespace → カーネルリソースの隔離 • cgroup → リソース制限
• Capability → 権限制限 • chrootとpivot_root → 権限制限 • OverlayFS → ファイルシステムの階層化 • Network Namespace → ネットワークの隔離
12 この記事の最⼤の特徴 Dockerコマンドを⼀切使わず コンテナを ⼿を動かして作る
13 盛り上がってきた 俺もやるときがきたか…!! ( ゚д゚) ガタッ / ヾ __L| / ̄ ̄ ̄/_
\/ /
14 実⾏環境の⽤意⽅法 • Vagrant (ubuntu) • 記事における動作確認環境 • Vagrantfileが記載されているのでそれを実⾏ •
AWS(EC2) • Ubuntu Server(18.04)あたりのAMIから起動 • その他、Ubuntuならそのまま動きそう
15 実⾏環境の⽤意⽅法 sudo apt-get update sudo apt-get install apt-transport-https ca-certificates
curl software-properties-common jq curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt-get update sudo apt-get install -y docker-ce sudo apt-get install -y cgdb sudo apt-get install -y cgroup-tools sudo apt-get install -y uuid-runtime sudo apt-get install -y tree sudo apt-get install -y iputils-ping だいたい、これぐらいやれば動く
16 要素技術の解説 (抜粋)
17 「コンテナを作る」 <事前準備> • cgroupでリソース(CPUとメモリ)制限 • Namespaceでリソース隔離 • コンテナ内で「yes >/dev/null」
<動作確認> • 別シェルでps(プロセス)確認 • topコマンドで利⽤時間確認 コンテナのなかでなに をどうやっても、CPU 利⽤率があがらん︕︕
18 「OverlayFS」 <事前準備> • サンプルのDockerfile確認 • LAYER1の作成(既存イメージの展開) • LAYER2の作成(LAYER1にcurlを埋め 込み)
<動作確認> • LAYER1と2をOverlayFSでコンテナイ メージ作成 イメージのレイヤーっ てこれかよ︕
19 「ネットワークリソースの隔離」 <事前準備> • ネットワークブリッジ作成 • Network Namespace作成 • vethペアを作成、ネットワークブ
リッジに追加 • デフォルトゲートウェイ設定 <動作確認> • ブリッジとNamespaceのの疎通確認 ネットワークリソース が隔離されるなんて なんかもう凄い︕
20 「コンテナ技術⼊⾨」 やって感じたこと
21 「コンテナ技術⼊⾨」やって感じたこと • しんどい • (⼈によるが)知らないコマンドが多すぎる • 都度調べてると、いくらでも時間が溶けていく • Dockerを最低限知ってないと楽しくない
• Docker知らない状態でやると、⾯⽩くない • 結構な時間がかかる • あれこれ調べながらだと、最低6時間はかかる • ざざーっと⼀度最後まで通してやってみるのもオススメ
22 「コンテナ技術⼊⾨」が 素晴らしいところ
23 より深く、Docker、そしてコンテナを 感じ、学ぶためのきっかけとなる
24 深掘りできるところ • なぜ、ランタイムがこんなに⼭のようにあるのか︖ • なぜ、Dockerfileの書き⽅が、イメージサイズに直 結するのか︖ • なぜ、複数コンテナたてたときのネットワーク管理 があんなにめんどいのか︖
• なぜ、Fargateみたいなホストインスタンスがない コンテナの運⽤がでてきたのか︖
25 ここにいる皆さんは コンテナ好きですよね︖
26 あと何年 コンテナと付き合っていきますか︖
27 ⼀度Linuxの要素技術でコンテナが どのようにして動いているか体験することで コンテナの使い所や 進化の⽅向性が⾒えてくる
28 最後に
29 圧倒的感謝を︕ @hayajo
30 コンテナで楽しいエンジニアライフを 濱⽥孝治(ハマコー) @hamako9999