611 Views
October 05, 24
スライド概要
coins23
コンテナイメージの 中身を覗く @appare45 2024/10/3 UNTIL. #0x05
自己紹介 @appare45 ● 中村天晴 ● 筑波大学情報科学類2年生 ● 学園祭実行委員会 ○ もうすぐ雙峰祭! ● コンテナランタイム ○ https://github.com/appare45/socker 2024/10/3 UNTIL. #0x05 2
コンテナとは ● コンテナ使ったことありますか? ● コンテナイメージをもとにコンテナが作られる ● ホストと環境を分けることができる ○ macの上でUbuntuをつかうなど ● 開発環境を作るときなど一時的な環境を作るときに使う 2024/10/3 UNTIL. #0x05 3
コンテナイメージとは ● コンテナ向けのデータを毎回作るのは大変 ● そのため「イメージ」からコンテナを作る ● イメージはみんなで共有できる ● Go言語用のイメージやMySqlのイメージなどよく使うものが配布されてい る 2024/10/3 UNTIL. #0x05 4
OCI ● コンテナの規格を定める団体 ● Docker用のイメージをPodmanで使う ● 本スライドではすべてOCIの規格を元にする 2024/10/3 UNTIL. #0x05 5
イメージとコンテナの関係 ● ● ● ● ● コンテナはruntime bundleを元にプロセスを作る イメージからruntime bundleを作ることができる なぜコンテナを共有しないのか runtime bundleはプロセスの実行に特化されている イメージのほうが変更が簡単 2024/10/3 UNTIL. #0x05 6
デモの解説 ● 今回はGo言語向けのイメージを見る golangのイメージをOCIイメージを OCI形式でダウンロード イメージをバンドルする 2024/10/3 UNTIL. #0x05 7
runtime bundle ● rootfs ○ ここがルートディレクトリになる ● config.json ○ 環境変数・capabilityなどを指定する 2024/10/3 UNTIL. #0x05 8
イメージの構成 2024/10/3 UNTIL. #0x05 9
index.json ● manifestの場所を教えてくれる ● 2024/10/3 UNTIL. #0x05 10
全てはblobに入っている 2024/10/3 UNTIL. #0x05 11
manifest(json) ● layerの構造とconfigの場所を教えてくれる 2024/10/3 UNTIL. #0x05 12
config(json) 2024/10/3 UNTIL. #0x05 13
Layer ● ● ● ● ● イメージはレイヤの重ね合わせでrootfsを作る 追加・変更・削除を実現できる 削除は*.wmというファイルを作るとファイルが作成される 差分だけを見る tar/tar+gzip/tar+zstdで圧縮されている 2024/10/3 UNTIL. #0x05 14
これからのイメージ ● WASMになっていく ● 2024/10/3 UNTIL. #0x05 15
config - wasm
"config": {
// v0 the first version of the spec, but does not imply
instability
"mediaType": "application/vnd.wasm.config.v0+json",
"size": 78,
"digest": "sha256:1234567890"
},
2024/10/3 UNTIL. #0x05
16
layers - wasm
{
"mediaType": "application/wasm",
"size": 146992,
"digest": "sha256:1234567890"
},
{
"mediaType": "application/wasm",
"size": 692031,
"digest": "sha256:1234567890"
}
2024/10/3 UNTIL. #0x05
17
WASI Virt ● WASI Virtualization ● WASMから見えるものを仮想的に作る 2024/10/3 UNTIL. #0x05 18