OSC2017 Osaka の発表資料です。 参考となる情報にはPDF中からリンクをしていますが、資料中のリンクは Speaker Deck 上ではクリックできないので PDF をダウンロードしてご覧ください。
Linux ίϯςφͷجૅOSC2017 OsakaՃ౻ହจ2017-01-281
View Slide
ࣗݾհՃ౻ହจ• http://www.ten-forward.ws/• @ten forward• http://gplus.to/tenforward• https://github.com/tenforward• http://d.hatena.ne.jp/defiant/ (ٕज़ϒϩά)2
ࣗݾհ• Plamo Linux ϝϯςφ• LXC ͰֶͿίϯςφೖɹʔܰྔԾԽڥΛ࣮ݱ͢Δٕज़gihyo.jp Ͱ࿈ࡌ3
ࣗݾհ• LXC/LXD ͷ։ൃʹগ͠ࢀՃ• man page ͷຊޠ༁• ެࣜϖʔδ (linuxcontainers.org) ༁• όάϑΟοΫεͳͲগ͚ͩ͠ίʔυʹߩݙ• LXD ຊޠϝοηʔδ4
࣭5
ίϯςφʹ͍ͭͯ• શ͘Βͳ͍• ໊લฉ͍ͨ͜ͱ͕͋Δ• ͬͨ͜ͱ͕͋Δ• ਂ͍ͬͯ͘Δ6
ࠓͷඪ• ίϯςφͷ֓ཁΛཧղ͢Δ• Linux Χʔωϧ͕࣋ͭίϯςφΛߏ͢ΔͨΊͷओཁͳػೳΛ֮͑Δ• σϞͰίϯςφͷಈ͖Λମݧ͢Δ• (۩ମతͳίϯςφ࣮ (docker ͳͲ) ͷ͍ํͷઆ໌͋Γ·ͤΜ)7
ࠓͷ༰• ίϯςφͷ֓ཁ• Linux ʹ͓͚ΔίϯςφͷΈ• Namespace• cgroup• σϞ• ·ͱΊ8
ίϯςφ֓ཁ9
ίϯςφͱΧʔωϧͷػೳͰ• ִ͞ΕۭͨؒͰϓϩηεΛ࣮ߦ͢Δ• ϓϩηεʹରͯ͠Ϧιʔε੍ݶΛઃఆ͢Δ10
ίϯςφͱ• Χʔωϧ͔ΒݟΔͱී௨ʹϓϩηε͕ىಈ͢Δ͚ͩ• ىಈ͢ΔࡍʹִΛࢦࣔ͢Δ• ΧʔωϧͷػೳͰ (ෳͷ) ಠཱۭͨؒ͠Λ࡞Γग़͠ɼϦιʔεΛׂɾ͢Δ• ϓϩηεΛάϧʔϓԽͯ͠ଞͱϦιʔεۭؒΛִ• άϧʔϓԽͨ͠ϓϩηεʹର͢ΔϦιʔε੍ݶ• ԾԽͱ͍͏ΑΓʮִԽʯͱݴͬͨ΄͏͕Θ͔Γ͍͔͢• ԾతͳίϯϐϡʔλɾγεςϜΛ࠶ݱ͢ΔԾϚγϯʹରͯ͠ɺԾతͳ OS ڥΛఏڙ͢Δ• ˠ OS ϨϕϧͷԾԽ11
ίϯςφͷϝϦοτ• ߴີԽ͕Մೳ• ىಈ͍ͯ͠Δ OS (Χʔωϧ) Ұͭ• Φʔόʔϔου͕খ͍͞• ϋʔυΣΞͷԾԽ͕ෆཁ• ىಈ͕ૣ͍• ԾϚγϯͷىಈͰͳ͘ɼϗετ OS ͔ΒݟͨΒ୯ʹϓϩηε͕ىಈ͍ͯ͠Δ͚ͩͳͷͰɼී௨ͷϓϩάϥϜ͕ىಈ͢Δͷͱ΄ͱΜͲมΘΒͳ͍• ඞͣ͠γεςϜΛಈ͔͢ඞཁͳ͍ (ΞϓϦέʔγϣϯίϯςφ)• ྫ͑ίϯςφͰ httpd ͷΈ͕ಈ͍͍ͯΔ• ίϯςφʹϝϞϦΛݻఆతʹׂΓͯΔඞཁ͕ͳ͍12
ίϯςφͷσϝϦοτ• ҟͳΔ OS ͷγεςϜ / ϓϩάϥϜಈ͔ͤͳ͍• ୯ʹϗετ OS ্Ͱϓϩηε͕ىಈ͢Δ͚ͩͳͷͰͨΓલ• ΧʔωϧʹؔΘΔૢ࡞Ͱ͖ͳ͍• ىಈ͍ͯ͠ΔΧʔωϧมΘΒͳ͍ͷͰ• ίϯςφຖʹϩʔυ͢ΔϞδϡʔϧΛม͑ΔͳͲ• Χʔωϧͷ࣮ෳࡶʹͳΔ• શͯΧʔωϧͷػೳͱ࣮ͯ͠͞Ε͍ͯΔͷͰ13
ىಈͤ͞Δϓϩηε͔ΒΈͨίϯςφ໌֬ʹఆٛ͞Εͨ༻ޠͰͳ͍ɻίϯςφͱͯ͠ԿΛىಈ͢Δ͔ʁ ͷҧ͍ɻ• γεςϜίϯςφ• init Λىಈ͢Δɻී௨ʹ OS ͕ىಈ͢Δͷͱಉ༷• ΞϓϦέʔγϣϯίϯςφ• ୯ҰͷϓϩηεͷΈىಈɻඞཁͳΞϓϦέʔγϣϯͷΈִ͞ΕͨڥͰ࣮ߦɻ14
ࠓͷ༰• ίϯςφͷ֓ཁ• Linux ʹ͓͚ΔίϯςφͷΈ• Namespace• cgroup• σϞ• ·ͱΊ15
Linuxʹ͓͚ΔίϯςφͷΈ16
Linux ʹ͓͚ΔίϯςφΧʔωϧʹʰίϯςφʱͱ͍͏୯Ұͷػೳ͕࣮͞Ε࣮ͯݱ͍ͯ͠ΔΘ͚Ͱ͋Γ·ͤΜ17
Linux ͰίϯςφΛ࣮ݱ͢ΔͨΊͷػೳLinux Χʔωϧʹؚ·ΕΔ৭ʑͳػೳΛΈ߹ΘͤͯίϯςφڥΛ࡞͢ΔɻͦΕͧΕͷػೳίϯςφઐ༻ͷػೳͱ͍͏Θ͚Ͱͳ͍ɻ• ϓϩηεΛάϧʔϓԽͯ͠ଞͷάϧʔϓͱִ• OS Ϧιʔεͷִ• ˠ Namespace (໊લۭؒ)• άϧʔϓԽͨ͠ϓϩηεʹର͢ΔϦιʔε੍ݶ• ϗετͷཧϦιʔεʹର͢Δ੍ݶ• ˠ cgroup (control group)18
Linux ͰίϯςφΛ࣮ݱ͢ΔͨΊͷػೳ• ͦͷଞ• ωοτϫʔΫ (veth, macvlan ͳͲ)• έʔύϏϦςΟ• chroot (pivot root)• bind mount• Checkpoint/Restore (CRIU)• ͳͲͳͲ19
Linux ͷίϯςφ࣮ྫ• DockerΞϓϦέʔγϣϯίϯςφͷ࣮ߦʹಛԽɻίϯςφؔ࿈ͷॲཧ runC ϓϩδΣΫτͷ libcontainer Λ༻ɻ͍·ʮDockerʯͱ͍͏ݴ༿͕ࢦ͢ͷίϯςφͰ͋Γ·ͤΜɻΞϓϦέʔγϣϯΛ؆୯ʹ։ൃͨ͠Γߏஙͨ͠Γ͢ΔͨΊͷϓϥοτϑΥʔϜɺΠϯϑϥɻ• runC (libcontainer)Docker ʹΑΔ Open Container Project ४ڌͷ࣮• LXC/LXDUbuntu Λத৺ʹ։ൃɻओʹγεςϜίϯςφΛ࣮ߦ͢Δ͜ͱΛલఏʹ࡞ΒΕ͍ͯΔ͕ɺΞϓϦέʔγϣϯίϯςφͷ࣮ߦՄೳɻඇಛݖίϯςφ͕࣮ߦͰ͖Δɻ20
Linux ͷίϯςφ࣮ྫ• OpenVZLinux ͷίϯςφ࣮ͱͯ͠ݹ͔͘Β͋Δ࣮ͷͻͱͭɻ2000 ͝Ζ͔ΒɻΧʔωϧʹύονΛద༻͢ΔɻΧʔωϧʹ࣮͞Ε͍ͯΔίϯςφؔ࿈ػೳ OpenVZ ༝དྷͷػೳ͕ଟ͋ΔɻOpenVZ Λϕʔεʹͨ͠༻൛ Virtuozzo ͕ଘࡏ͢Δɻ• rktCoreOS ͕ࣾ։ൃ͢ΔΞϓϦέʔγϣϯίϯςφͷϥϯλΠϜɻ• systemd͝ଘ Linux ͚ͷ࠷ۙओྲྀͱͳͬͨ init ࣮ͷͻͱͭɻίϯςφΛѻ͏ίϚϯυΈแ͍ͯ͠Δ21
Linux ͷίϯςφ࣮ྫ• MINCSγΣϧεΫϦϓτͰॻ͔Εͨίϯςφ࣮• bocker“Docker implemented in around 100 lines of bash”• haconiwaίϯςφ࣮ɾ࡞ͷͨΊͷ (m)Ruby DSL• aqrperl Ͱॻ͔Εͨίϯςφ࣮• Awesome Containerͦͷଞ৭ʑ·ͱ·ͬͯ·͢22
ࠓͷ༰• ίϯςφͷ֓ཁ• Linux ʹ͓͚ΔίϯςφͷΈ• Namespace• cgroup• σϞ• ·ͱΊ23
Linux ʹ͓͚ΔίϯςφͷΈNamespace24
Namespace(໊લۭؒ)• ִ͍ͨ͠ OS Ϧιʔε͝ͱʹ Namespace ͕४උ͞ΕΔ• Ұ෦ͷ Namespace ͚ͩ༻ִͯ͠ڥΛ࡞Δ͜ͱ͕Ͱ͖Δ25
Mount Namespace (2.4.19ʙ)• ϓϩηε͔Βݟ͍͑ͯΔϚϯτͷू߹ɼૢ࡞Λ͢ΔɽNamespace ͷ mount, umount ͕ଞͷ Namespace ʹӨڹΛ༩͑ͳ͍Α͏ʹͰ͖Δ (༩͑ΔΑ͏ʹͰ͖Δ)ˠ private/shared/slave• ࢀߟ:• Ϛϯτ໊લۭؒΛద༻͢Δ (IBM developerWorks)• Mount Namespace and shared subtrees (lwn.net)• Mount namespaces, mount propagation, and unbindablemounts (lwn.net)• Χʔωϧෟଐจॻ(Documentation/filesystems/sharedsubtree.txt)• σϑΥϧτ private ͕ͩɺsystemd /Λ shared ͰϚϯτ͢Δ26
UTS Namespace (2.6.19ʙ)• ϗετ໊ͳͲɼuname(2) ͕ฦ͢ͷू߹Λɽsetdomainname(2), sethostname(2) Ͱ Namespace ͷͷΈมߋͰ͖Δ✓ ✏user$ hostnameenterprise--- (͜͜·Ͱϗετͷ Namespace) ---user$ sudo unshare --uts (৽͍͠ Namespace ࡞)root# hostnameenterprise (ॳظϗετͱಉ͡)root# hostname utsns (ϗετ໊มߋ)root# hostnameutsnsroot# exitlogout--- (͔͜͜Βϗετͷ Namespace) ---user$ hostnameenterprise✒ ✑27
PID Namespace (2.6.24ʙ)• PID ۭؒͷɽ৽͍͠ PID Namespace Ͱ PID 1 ͔Β࢝·Δ PID ׂ͕ΓͯΒΕΔɽ͔Βࢠͷ PID Namespaceݟ͑Δ (ͷۭؒͷ PID Λ࣋ͭ) ͕ɼࢠ͔Βݟ͑ͳ͍28
IPC Namespace (2.6.19ʙ)• SysV IPC ΦϒδΣΫτɼPOSIX ϝοηʔδΩϡʔͷִ✓ ✏# ipcs -q (ϗετͷ Namespace ্ͰϝοηʔδΩϡʔͷ֬ೝ)------ Message Queues --------key msqid owner perms used-bytes messages0x4b79e805 32768 root 644 0 0# unshare --ipc (৽ͨʹ IPC Namespace ࡞)# ipcs -q (৽ͨʹ࡞ͬͨ Namespace ͰΩϡʔΛ֬ೝ͢Δͱଘࡏ͠ͳ͍)------ Message Queues --------key msqid owner perms used-bytes messages✒ ✑29
User Namespace (3.8ʙ)• ಠཱͨ͠ UID/GID ۭؒͱ֎෦ۭؒͷϚοϐϯά (ྫ͑ɼִۭؒͰ uid/gid 0/0ɼ֎෦Ͱ 1000/1000 ͱ͔ՄೳʹͳΔ)• User Namespace ҰൠϢʔβͰ࡞Ͱ͖ɺNamespace ͷಛݖϢʔβଞͷ Namespace Λ࡞Ͱ͖Δ (UserNamespace Ҏ֎ͷ Namespace ಛݖ͕ඞཁ)30
Network Namespace (2.6.26ʙ)• ωοτϫʔΫϦιʔεͷִ• ωοτϫʔΫσόΠε• ϧʔςΟϯάςʔϒϧ• ιέοτ• ϑΟϧλϦϯά• ΞυϨε31
cgroup Namespace (4.6ʙ)• cgroup ͷִ• /proc/$PID/cgroup ϑΝΠϧͷ cgroup ύε• namespace ͰϚϯτͨ͠ cgroupfs πϦʔ• (͜ͷ Namespace Ͱ clone(2) ʹ༩͑Δϑϥά (32bit )Λ͍͖Γ·ͨ͠ :-)• Ubuntu 16.04 ͷ 4.4 ΧʔωϧʹόοΫϙʔτࡁ32
Namespace ৄࡉNamespace ͷΧʔωϧ෦ͷ࣮ʹ͍ͭͯʮୈ 8 ճ ίϯςφܕԾԽͷใަձˏ౦ژʯͰͷ Masami Ichikawa ͞ΜͷLinux Namespaces ͕ৄ͍͠Ͱ͢ (ಈը)33
Namespace ͷૢ࡞ (γεςϜίʔϧ)• clone(2) Ͱ৽͍͠ϓϩηε Λੜ• unshare(2) Ͱ৽͍͠ϓϩηεΛੜͤͣʹ࣮ߦίϯςΩετΛ੍ޚ͢Δ• setns(2) ͰϓϩηεΛطଘ ͷ Namespace ʹؔ࿈͚Δ34
ࠓͷ༰• ίϯςφͷ֓ཁ• Linux ʹ͓͚ΔίϯςφͷΈ• Namespace• cgroup• σϞ• ·ͱΊ35
Linux ʹ͓͚ΔίϯςφͷΈcgroup36
cgroup ͱϓϩηεΛάϧʔϓԽ͠ɺάϧʔϓʹରͯ͠Ϧιʔε੍ݶΛߦ͏ɻίϯςφઐ༻ͷΈͰͳ͍ɻ• cgroup ͷಛ• ػೳ͝ͱʹαϒγεςϜʹ͔ΕΔ• cgroupfs ΛϚϯτͯ͠σΟϨΫτϦͰάϧʔϓΛද͢• ϓϩηεΛάϧʔϓͷ tasks ϑΝΠϧʹՃ͢Δͱؔ࿈͢ΔλεΫ͕εϨου୯ҐͰάϧʔϓʹՃ͞ΕΔ• ෳ֊ߏɻվߏ͝ͱʹҟͳΔπϦʔΛ࡞Ͱ͖Δɻͨͩ͠ɺҰͭͷαϒγεςϜ͕ॴଐͰ͖ΔπϦʔҰͭ• πϦʔͷͲͷϨϕϧͷάϧʔϓʹλεΫ͕ॴଐͰ͖Δ37
cgroup ͷ֊ߏ38
cgroup ͷαϒγεςϜ• cpu: 2.6.24• CFS(Completely Fair Scheduler) bandwidth controlɽ୯Ґ࣌ؒͷάϧʔϓͷλεΫ͕࣮ߦͰ͖Δ߹ܭ࣌ؒΛ੍ݶ͢Δ (3.2 Ͱ࣮)• ૬ରɽάϧʔϓؒͷ CPU ࣌ؒͷׂͷׂ߹Λࢦఆ͢Δɽྫ͑ GroupA=100,GroupB=50 ͱ͢Δͱ A:B=2:1• cpuacct: 2.6.24• άϧʔϓͷ CPU ϦιʔεͷϨϙʔτ (CPU ࣌ؒ)• cpuset: 2.6.24• ׂΓͯΔ CPU, ϝϞϦϊʔυͷׂ39
cgroup ͷαϒγεςϜ• device: 2.6.26• σόΠεͷΞΫηεڐՄɼ੍ݶͷࢦఆ• freezer: 2.6.28• άϧʔϓͷϓϩηεΛશͯҰ࣌ఀࢭ͢Δ• memory: 2.6.29• ϝϞϦϦιʔεͷ੍ݶ (ϢʔβϝϞϦɼΧʔωϧϝϞϦ)• blkio (Block IO):• I/O weight controller(2.6.33 Ҏ߱) άϧʔϓͷ༏ઌΛࢦఆ͢Δ• I/O throttling(2.6.37 Ҏ߱) άϧʔϓͷϓϩηεͷσόΠεʹର͢Δૢ࡞ͷ߹ܭͷࢦఆ• (ࢀߟ)Linux2.6.37 ͷ৽ػೳ “I/O throttling”40
cgroup ͷαϒγεςϜ• hugetlb: 3.6• cgroup ͔Βͷ hugetlb ͷ༻• perf event: 2.6.39• άϧʔϓ୯ҐͰ perf πʔϧͰϞχλϦϯά (ύϑΥʔϚϯεղੳ)• net cls: 2.6.29• ύέοτʹࣝผࢠΛ͚ͭɼτϥϑΟοΫίϯτϩʔϧ (tc) ͱnetfilter(3.14 Ҏ߱) ͰίϯτϩʔϧՄೳʹ• Linux 3.14 Ͱ net cls cgroup ʹՃ͞Εͨ netfilter ରԠ• net prio: 3.3• άϧʔϓؒͰͷωοτϫʔΫͷ༏ઌΛΠϯλʔϑΣʔεຖʹࢦఆ͢Δ• Linux 3.3 ͷ৽ػೳ Network priority cgroup• Linux 3.3 ͷ৽ػೳ Network priority cgroup (2)41
cgroup ͷαϒγεςϜ• pids: 4.3• fork() clone() ͰىಈͰ͖ΔϓϩηεΛ੍ݶ͢Δ• LXC ͰֶͿίϯςφೖ ୈ 30 ճ Linux Χʔωϧͷίϯςφػೳ [8] ʔ cgroup ͷ pids αϒγεςϜ42
cgroup ͷ͍ํcgroup ίϯςφͱؔͳ͘༻Մೳ✓ ✏# mount -t tmpfs cgroup_root /sys/fs/cgroup# mkdir /sys/fs/cgroup/memory# mount -t cgroup -o memory cgroup /sys/fs/cgroup/memory (ϝϞϦαϒγεςϜͷϚϯτ)# mkdir /sys/fs/cgroup/memory/test01 ("test01" ͱ͍͏άϧʔϓͷ࡞)# echo $$ > /sys/fs/cgroup/memory/test01/tasks (ϓϩηεΛάϧʔϓʹొ)# cat /sys/fs/cgroup/memory/test01/tasks (άϧʔϓͷϓϩηεͷ֬ೝ)28242837# echo 30M > /sys/fs/cgroup/memory/test01/memory.limit_in_bytes(άϧʔϓʹରͯ͠ϝϞϦ্ݶ 30M ͱ͍͏੍ݶΛઃఆ)# cat /sys/fs/cgroup/memory/test01/memory.limit_in_bytes (੍ݶͷ֬ೝ)31457280# cat /sys/fs/cgroup/memory/test01/memory.usage_in_bytes (ݱࡏͷ༻ྔͷ֬ೝ)565248✒ ✑43
cgroup v2• 4.5 ΧʔωϧͰ stable ʹͳͬͨ (ͦΕ·Ͱ։ൃ༻Ͱ࣮͞Ε͍ͯͨ)• cgroup v1 ͕͋Δ• ෳࡶ͗͢• ੍ݶ͕͋ΔͷͰෳࡶͳ͜ͱ͕Ͱ͖࣮ͯࡍ͑ͳ͍ɾΘͳ͍• αϒγεςϜಉ࢜ͷ࿈ܞ͕औΕͳ͍• ·ͩҰ෦ͷαϒγεςϜͷΈ (memory,io,pids)• Ұ෦ v2 Λͬͯɺଞ v1 Λ͏͜ͱͰ͖Δ• Χʔωϧෟଐจॻ (Documentation/cgroup-v2.txt)44
ࠓͷ༰• ίϯςφͷ֓ཁ• Linux ʹ͓͚ΔίϯςφͷΈ• Namespace• cgroup• σϞ• ·ͱΊ45
σϞ• Namespace σϞ (unshare ίϚϯυ)• User Namespace• Network Namespace• PID Namespace• UTS Namespace• γεςϜίϯςφ• LXD• ΞϓϦέʔγϣϯίϯςφ• Docker46
σϞ ʙ unshare ίϚϯυʹΑΔ Namespace ମݧ• unshare ίϚϯυɿutil-linux ʹؚ·ΕΔίϚϯυ• ؆қతʹίϯςφڥΛ࡞Ͱ͖ΔσϞ 1✓ ✏# unshare --mount --pid --net --uts --fork --mount-proc -- /bin/bash✒ ✑σϞ 2✓ ✏# unshare --mount --pid --net --uts --fork --mount-proc --mount-proc \--map-root-user -- /bin/bash✒ ✑47
σϞ ʙ LXD ʹΑΔγεςϜίϯςφମݧ✓ ✏$ lxc launch ubuntu:16.04 ct01Creating ct01Retrieving image: 100%Starting ct01$ lxc list+------+---------+---------------------+------+------------+-----------+| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |+------+---------+---------------------+------+------------+-----------+| ct01 | RUNNING | 10.53.96.195 (eth0) | | PERSISTENT | 0 |+------+---------+---------------------+------+------------+-----------+✒ ✑ৄ͘͠• LXD / ͡Ίʹ - ίϚϯυϥΠϯ• LXD / ΦϯϥΠϯͰͷࢼ༻• LXD 2.0: Blog post series [0/12](ຊޠ༁)48
σϞ ʙ Docker ʹΑΔΞϓϦέʔγϣϯίϯςφମݧ✓ ✏#!/bin/shctid=$(docker run --detach --publish 10080:5000 carinamarina/hello-world-app)docker pssleep 1curl http://localhost:10080/echodocker stop $ctiddocker rm $ctid✒ ✑49
ࠓͷ༰• ίϯςφͷ֓ཁ• Linux ʹ͓͚ΔίϯςφͷΈ• Namespace• cgroup• σϞ• ·ͱΊ50
·ͱΊ51
·ͱΊ• ίϯςφͷ֓ཁ• Linux ʹ͓͚ΔίϯςφͷΈ• ίϯςφΧʔωϧʹ࣮͞Ε͍ͯΔ৭ʑͳػೳͷΈ߹ΘͤͰ࣮ݱ͞Ε͍ͯΔ• Namespace• OS Ϧιʔεͷִ• cgroup• ϗετͷཧϦιʔεͷ੍ݶ• σϞ52
lxc-jpLXC ʹݶΒͣίϯςφͷΛѻ͍ͬͯ·͢ɻ• https://groups.google.com/d/forum/lxc-jp53
ίϯςφܕԾԽͷใަձ• https://sites.google.com/site/containerstudy/• http://ct-study.connpass.com/• ίϯςφٕज़ʹؔ࿈͢ΔΛѻ͏• ίϯςφʹؔ࿈͢ΔΧʔωϧͷ࣮ʹ͍ͭͯ• ֤छπʔϧΩοτͷհɼ࣮ʹ͍ͭͯ• ίϯςφٕज़ΛͬͨπʔϧιϑτΣΞͷհ࣮ʹ͍ͭͯ• ίϯςφٕज़ͷ׆༻ɾӡ༻ࣄྫ• ͦͷଞʮίϯςφʯͱ͍͏Ωʔϫʔυ͕গ͠Ͱೖ͍ͬͯΔٕज़ʹ͍ͭͯ• ͜Ε·Ͱେࡕͱ౦ژͰަޓʹ 8 ճ։࠵ɻԬͰ 1 ճ։࠵ɻ࣍ճେࡕͷ༧ఆ (࣌ظະఆ)54
ڠྗऀืू• ҎԼͷ༁Λߦ͍ͬͯ·͢ɻ͕࣌ؒ͋Δͱ͖͚ͩͰྑ͍ͷͰϨϏϡʔɺमਖ਼ɺվྑΛͯͩ͘͠͞Δํܴ͠·͢ɻ• LXC ϚχϡΞϧ (man pages)• linuxcontainers.org ίϯςϯπ• LXD ຊޠϝοηʔδ55
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠56