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
コンテナをGoで作る
Search
sasaki
October 24, 2019
Programming
0
220
コンテナをGoで作る
sasaki
October 24, 2019
Tweet
Share
More Decks by sasaki
See All by sasaki
Goを活用したサービス開発・運用の話
kuwabarakuwabara
1
1.8k
Other Decks in Programming
See All in Programming
2026年は Rust 置き換えが流行る! / 20260220-niigata-5min-tech
girigiribauer
0
230
encoding/json/v2のUnmarshalはこう変わった:内部実装で見る設計改善
kurakura0916
0
400
15年目のiOSアプリを1から作り直す技術
teakun
1
620
DevinとClaude Code、SREの現場で使い倒してみた件
karia
1
1k
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
130
社内規程RAGの精度を73.3% → 100%に改善した話
oharu121
13
7.9k
Claude Code Skill入門
mayahoney
0
200
nuget-server - あなたが必要だったNuGetサーバー
kekyo
PRO
0
230
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
420
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
500
Railsの気持ちを考えながらコントローラとビューを整頓する/tidying-rails-controllers-and-views-as-rails-think
moro
5
390
maplibre-gl-layers - 地図に移動体たくさん表示したい
kekyo
PRO
0
240
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
75
11k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
210
Information Architects: The Missing Link in Design Systems
soysaucechin
0
820
Ethics towards AI in product and experience design
skipperchong
2
220
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
67
37k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
ラッコキーワード サービス紹介資料
rakko
1
2.6M
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
140
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.2k
Transcript
ίϯςφΛ(PͰ࡞Δ ࠤʑউय़ %FTJHO0OF(P
ࣗݾհ w ໊લɿࠤʑউय़ w ձࣾɿ߹ಉձࣾ%..DPN w ۀɿࣗࣾͷγεςϜΛ(PͰ։ൃͯ͠·͢ɻ·ͨɺΠϯ ϑϥ "84 ϑϩϯτ
3FBDU ͬͯ·͢ w ͖ͳͷɿམޠ ཱྲྀ ɺֆ
ࠓճ͓͢͠Δ͜ͱ (PͰίϯςφΛ࡞Δ
͜ͷςʔϚʹͨ͠ཧ༝ ίϯϐϡʔλαΠΤϯεΛࠓҰ͖ͪΜͱཧղ͔ͨͬͨͨ͠ Ί ۀͰίϯςφΛར༻ https://inside.dmm.com/entry/2019/03/28/review-go-test
ԾԽͱ w ϋʔυΣΞͱ04ͷؒʹͭͷ४04ΛೖΕΔ͜ͱͰҰ ͷϋʔυΣΞ্ʹෳͷ04γεςϜΛ҆શʹ͏ͨ Ίͷٕज़ 04Λಠཱͯ͠ѻ͏
ίϯςφͱ w ϗετͷ04ͷΧʔωϧΛڞ༗͍ͯͭͭ͠ɺΞϓϦέʔ γϣϯ͔Βݟͯಠཱͨ͠04Λ࣮ݱ͢Δٕज़
MJCDPOUBJOFSͰίϯςφ࡞ w %PDLFSͷίΞͱͯ͠(PͰॻ͔Ε͍ͯΔϥΠϒϥϦ IUUQTHJUIVCDPNPQFODPOUBJOFSTSVODUSFF NBTUFSMJCDPOUBJOFS
ίʔυৄࡉᶃ w ίϯςφͷੜͱJOUϓϩηεͷىಈͱ͍͏ͭͷ͜ͱΛ ͭͷϑΝΠϧͰ࣮ߦ͢ΔͨΊJOJU ؔΛఆٛ w ίϯςφΛ࡞͢ΔͨΊʹॳظԽͷઃఆ 4UBSU*OJUJBMJ[BUJPOͷύΠ ϓGEΛ։͘͜ͱͰΛίϯςφ Λϩʔυ
https://github.com/opencontainers/runc/blob/ master/libcontainer/factory_linux.go#L282
ίʔυৄࡉᶄ w ੜ͢Δίϯςφ ͷઃఆ /BNFTQBDFT $HSPVQTͳͲ ˞ߏମ$POpHͷ3PPUGϑΟʔϧυʹରͯ͠ɺίϯςφͰ৽͠ ͍ڥΛىಈ͢ΔͨΊʹඞཁͳϑΝΠϧγεςϜΛࢦఆ͢Δඞཁ ͕͋Γ·͢ɻ
ίϯςφϗετͷΧʔωϧΛڞ༗ͯ͠ར༻͢ΔͷͰσΟετϦ ϏϡʔγϣϯෆཁͰ͕͢ɺJOJUϓϩηεҎ߱ͷڥ͕ඞཁͳͨΊ Ͱ͢ɻࠓճEPDLFSJNBHFͷBMQJOFʹؚ·Ε͍ͯΔϑΝΠϧΛར ༻͠·ͨ͠
ίʔυৄࡉᶅ ίϯςφΛੜ IUUQTHJUIVCDPNPQFODPOUBJOFSTSVODCMPCNBTUFSMJCDPOUBJOFSGBDUPSZ@MJOVYHP- ॳظϓϩηεͱͯ͠CBTIΛੜ
ίϯςφʹϩάΠϯ ˞͜ͷϥΠϒϥϦ͕04YͰಈ͔ͤͳ͔ͬͨͷͰɺϩʔΧϧڥঢ়ʹ%PDLFSͰMJOVYίϯςφΛ্ཱͪ͛ͯɺ ͦͷதͰࣗ࡞ͷίϯςφΛੜ͢ΔΑ͏ʹ͍ͯ͠·͢ ຊసɻɻ ੜͨ͠ίϯςφʹϩάΠϯ
ֶͼ w HPΛͬͯίϯςφΛ࡞Δ͜ͱ͕Ͱ͖Δ͜ͱ͕͔ͬͨ w MJCDPOUBJOFSͷιʔεΛ͏͜ͱͰɺ04ϨϕϧͳͲΞϓ ϦέʔγϣϯϨΠϠʔΑΓԼͷॲཧΛͲͷΑ͏ʹ੍ޚͯ͠ ίϯςφΛੜ͠ɺ࣮ߦ͍ͯ͠Δ͔ΛֶͿ͜ͱ͕Ͱ͖ͨ https://golang.org/pkg/os/#Chown
ࢀߟࢿྉ w MJCDPOUBJOFS IUUQTHJUIVCDPNPQFODPOUBJOFSTSVODUSFFNBTUFSMJCDPOUBJOFS w 1PFLͱ(PMECFSHͷԾԽٕज़ IUUQTZVCFTTZIBUFOBCMPHDPNFOUSZ w %PDLFSͱ-9$ IUUQTRJJUBDPN4VSHPJUFNTBEDFBGCBE
w %PDLFS IUUQTXXXEPDLFSDPN w (PݴޠʹΑΔϓϩάϥϚʔࢹͷγεςϜϓϩάϥϛϯά(Pݴޠͱίϯςφ IUUQTBTDJJKQFMFN w ίϯςφϥϯλΠϜͷಈΛཧͯ͠Έͨ݅ IUUQTRJJUBDPNNBNPNBNPJUFNTFEECBCGB
͝੩ௌ͋Γ͕ͱ͏͟͝ ͍·ͨ͠