Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Docker再入門 ~コンテナ・イメージ編~
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Haruki Yoshida
April 02, 2024
Technology
20k
40
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Docker再入門 ~コンテナ・イメージ編~
Dockerのコンテナやイメージが、どのような技術を使い、実現されているのかについてざっくり解説しています。
Haruki Yoshida
April 02, 2024
More Decks by Haruki Yoshida
See All by Haruki Yoshida
トランザクションに歩み寄る ~はじめの第1歩編~
yoshiyoshiharu
6
3k
曳光弾型開発のススメ
yoshiyoshiharu
3
2.3k
なぜfloatで丸め誤差が生じるのか ~decimalとの違いを理解しよう~
yoshiyoshiharu
4
2.5k
Other Decks in Technology
See All in Technology
カンファレンスに参加した後の浮遊感とセルフケア
pauli
0
310
1万名の社員が使う認証基盤で どう信頼性を担保するか?
kairim0
0
200
MCPゲートウェイを作って運用してわかったこと — Agent時代の権限管理の現在地
mtpooh
10
3.1k
LLM機能を自作して分かるSnowflake Cortex AIの強み
nayuts
0
270
AIは爆速なのに、私が詰まっていた話 ― 音声入力と鳴くマスコットでボトルネックを削る
yama3133
0
510
OpenSharing について熱く語る〜AI アセットの共有について〜
kameitomohiro
0
210
メルペイ 会計システム概要と歴史
mewuto
0
110
私の推しは「聞いてから進む」AIです -AI-DLCに一人でアプリを作らせた話
yama3133
1
170
Execution in the Kingdom of Agents: Reflections on Abstraction and Complexity
bcantrill
0
820
The kernel report
ennael
PRO
1
240
行動するAIのためのオントロジー | DevRev — Encraft #26.pdf
dvrv_tknrszk
2
710
インバスケット試験対策アプリを 作って見えたAIエージェント構築 ナレッジ2選
shichijoyuhi
1
120
Featured
See All Featured
My Coaching Mixtape
mlcsv
0
340
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
530
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
500
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
290
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Evolving SEO for Evolving Search Engines
ryanjones
0
310
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
GraphQLとの向き合い方2022年版
quramy
50
15k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
Transcript
コンテナ・イメージ編 Docker再入門
アジェンダ Dockerを支える技術 UnionFSとは Dockerイメージとは Dockerイメージの実体 イメージレイヤの確認 まとめ
留意事項 Dockerの基礎や使い方などは前提とします Dockerイメージやコンテナの仕組みを ざっくり理解することを目的とします
namespace コンテナごとに、プロセスとリソースを隔離する cgroups コンテナごとに、アクセス可能なシステムのリソース を厳密に制限 コンテナを支える技術 イメージを支える技術 UnionFS 複数のファイルシステムを重ね合わせて、 1つのファイルシステムに見せかける
Dockerを支える技術 メインのお話
Dockerコンテナを作成する命令が入った、読み込み専用のテン プレート 複数のレイヤーが積み重なっている https://docs.docker.jp/get-started/overview.html#the-docker-platform Dockerイメージとは
命令?レイヤー?よくわからん Dockerコンテナを作成する命令が入った、読み込み専用のテン プレート 複数のレイヤーが積み重なっている https://docs.docker.jp/get-started/overview.html#the-docker-platform Dockerイメージとは
複数のファイルシステムを重ね合わせて、1つのファイルシス テムに見せかける UnionFSとは
ファイル1 ファイル3 ファイル2 ファイル1 ファイル1 ファイル2 ファイル3 マージ層 上位層 下位層
マージ層…下位層と上位層を重ね合わせたもの 上位層…Writableなファイルシステム 下位層…Read Onlyなファイルシステム UnionFSとは
Dockerイメージの実体 Dockerイメージはイメージレイヤの集合体 各イメージレイヤはRead Onlyなファイルシステムを持つ メタ情報も持つ これらの集まりがDockerイメージのファイルシステム ファイル1 ファイル3 ファイル2 ファイル1
ファイル1 ファイル2 ファイル3 マージ層 上位層 下位層 コンテナマウント コンテナレイヤ イメージレイヤ
Dockerコンテナのファイルシステム イメージレイヤのファイルシステムにWritableな上位層を追加 し、マージしたものがコンテナのファイルシステム これがDockerコンテナのファイルシステムになる ファイル1 ファイル3 ファイル2 ファイル1 ファイル1 ファイル2
ファイル3 マージ層 上位層 下位層 コンテナマウント コンテナレイヤ イメージレイヤ
Gemfile.lock イメージレイヤの生成 Dockerfileの命令(RUNなど)の生成物がイメージレイヤになる 命令の数だけイメージレイヤが作成される RUN bundle install usr/ Gemfile COPY
Gemfile Gemfile.lock./ Gemfile Gemfile.lock usr/ app/ コンテナレイヤ app/
で各レイヤのファイルシステムがどこに格納されているか 確認できる docker inspect イメージレイヤの確認 下位層 マージ層 上位層 下位層の中で最上位の層 下位層の中で上から2番目の層
下位層の中で最下位の層 実際にディレクトリの内容を確認すると、 命令ごとの生成物が格納されている
docker inspect コンテナ or イメージのID イメージレイヤを実際に確認してみよう docker run -it --privileged
--pid=host debian nsenter -t 1 -m -u -n -i sh 手順① 手順② macの場合は 手順③ ①で表示されたディレクトリの中身を見てみる
各レイヤは、メタデータとファイルシステムを持つ DockerイメージはUnionFSを使って、各レイヤのファイルシステ ムを統合している DockerコンテナはDockerイメージのファイルシステムを使用し、 プロセスやリソースを分離(namespace)、制御(cgroups)した状態 でプロセスを実行する まとめ
参考文献 https://docs.docker.jp https://qiita.com/keishi04hrikzira/items/a52232ff71230bd2adef https://www.itbook.info/network/docker06.html https://qiita.com/zembutsu/items/24558f9d0d254e33088f