More Related Content Similar to Docker勉強会 (20) Docker勉強会3. Docker䛸䛿
● ௬
○ 䝁䞁䝢䝳䞊䝍䝸䝋䞊䝇䜢ᢳ㇟䛩䜛ᢏ⾡
○ 䝁䞁䝔䝘ᆺ௬
● ྛ♫ᑐᛂ䜢⾲᫂䛧䚸᭱㏆䛾䝖䝺䞁䝗
○ Google Amazon RedHat Microsoft IBM etc
● Docker䠄ᪧdotCloud䠅♫䛜㛤Ⓨ
● Goゝㄒ䛷㛤Ⓨ䛥䜜䛶䛔䜛
○ 㛤Ⓨᙜึ䛿Python䛷㛤Ⓨ䛥䜜䛶䛔䛯䛜䚸OSS䛾㝿䛻䚸Go
ゝㄒ䛷᭩䛝䛺䛚䛧䛶䛔䜛
● OSS䛷GitHub䛻බ㛤䛥䜜䛶䛔䜛
○ https://github.com/docker/docker
○ Apache License 2.0
○ 2013ᖺ䛻බ㛤䚸2014ᖺ6᭶䛻Version1.0䝸䝸䞊䝇
4. Docker䛸䛿
● 䝖䝺䞁䝗
○ OSS䛥䜜䛯2013ᖺ䛾㏵୰䛛䜙᳨⣴ᩘ䛜ቑຍ
○ 䝁䞁䝔䝘ᆺ䛾௬ᢏ⾡䛻ὀ┠䛜㞟䜎䛳䛶䛔䜛
○ Google䛿᪤䛻䛶䛾䝃䞊䝡䝇䜢䝁䞁䝔䝘䛻䛫䛶䛔䜛
5. Docker䛾ᢏ⾡
● 䝁䞁䝔䝘ᆺ௬
○ HostOS䛾ୖ䛻䝁䞁䝔䝘ᆺ௬䝋䝣䝖䜢䜲䞁䝇䝖䞊䝹
○ 䝁䞁䝔䝘ᆺ௬䝋䝣䝖䛾ୖ䛻䚸ᚲせ䛺䝷䜲䝤䝷䝸䞉䜰䝥䝸䜢䜲
䞁䝇䝖䞊䝹
○ ௬䝋䝣䝖ୖ䛾䝁䞁䝔䝘ྠኈ䛿䚸䝥䝻䝉䝇䞉䝸䝋䞊䝇䛜㝸㞳䛥
䜜䛶䛔䜛
○ 䝝䜲䝟䞊䝞䜲䝄ᆺ䛸㐪䛳䛶䚸OS䛿HostOS䜢⏝
䝁䞁䝔䝘ᆺ䠄Docker䠅 䝝䜲䝟䞊䝞䜲䝄䞊ᆺ
6. Docker䛾ᢏ⾡
● LXC䠄LinuxContainers䠅
○ Linux䜹䞊䝛䝹2.6.29䛛䜙⏝ྍ⬟
○ Linux䜹䞊䝛䝹2.6.24䛻⤌䜏㎸䜎䜜䛯cgroups䜢⏝䛧䛶䚸
䝥䝻䝉䝇䞉䝸䝋䞊䝇䛾㝸㞳䜢⾜䛖
○ 㝸㞳䛧䛯䝥䝻䝉䝇䞉䝸䝋䞊䝇䜢䝁䞁䝔䝘䛸䛧䛶ᢅ䛖ᶵ⬟䜢ᥦ౪
○ ௨๓䛿䝉䜻䝳䝸䝔䜱䛾ၥ㢟䜒䛒䛳䛯䛜䚸2014/2/20䛻v1.0䛜䝸
䝸䞊䝇䛥䜜䚸䛭䛾ၥ㢟䜒ゎᾘ䛥䜜䛯
Linux
Server
䝁䞁䝔䝘
䝥䝻䝉䝇
䝸䝋䞊䝇
䝁䞁䝔䝘
䝥䝻䝉䝇
䝸䝋䞊䝇
7. Docker䛾ᢏ⾡
● AUFS䠄AnotherUnionFS䠅
○ ␗䛺䜛䝣䜯䜲䝹䝅䝇䝔䝮䛾䝣䜯䜲䝹䜢㏱㐣ⓗ䛻㔜䛽䛶䚸୍䛴䛾
䝣䜯䜲䝹䝒䝸䞊䜢ᵓᡂ
○ HostOS䛸䝣䜯䜲䝹䜢㝸㞳䛩䜛Ⅽ䛻⏝
○ HostOS䛻ᙳ㡪䜢䛘䛪䚸HostOS䛾䝣䜯䜲䝹䜢ኚ᭦䛧䛶䛔䜛
䜘䛖䛻ぢ䛫䜛
FileSystem A B’ C’
AUFS
OS
B’ C’
A B
䝣䜯䜲䝹
సᡂ
䝣䜯䜲䝹
᭦᪂
D
D
䝣䜯䜲䝹๐
㝖
8. ≉ᚩ
● 㧗㏿
○ 䝝䞊䝗䜴䜵䜰䜢䜶䝭䝳䝺䞊䝖䛧䛺䛔䛾䛷䚸䜸䞊䝞䞊䝦䝑䝗䛜䛺䛔
○ GuestOS䜢㉳ື䛧䛺䛔䛾䛷䚸㉳ື䛜᪩䛔
● ㍍㔞
○ 䛘䜛OS䛾䝕䞊䝍䛿䛭䛾䜎䜎⏝䛧䚸ኚ᭦䛧䛯䝕䞊䝍䛾䜏⟶
⌮䛩䜛Ⅽ䚸䝕䞊䝍㔞䛜ᑡ䛺䛔
● ⎔ቃᵓ⠏䛜⡆༢
○ DockerFile䛸䜀䜜䜛䝣䜯䜲䝹䛻䚸⎔ቃᵓ⠏䛾Ⅽ䛾Unix䝁䝬
䞁䝗䜢グ㍕䛩䜜䜀䚸䛭䛾䝁䝬䞁䝗䜢ᐇ⾜䛧䛯⤖ᯝ䛜䝁䞁䝔䝘䛻
ᫎ䛥䜜䜛
○ ྛ✀OS⏝䛻䝧䞊䝇䛸䛺䜛䜲䝯䞊䝆䛜Docker䛛䜙බ㛤䛥䜜䛶
䛔䜛䛾䛷䚸䛭䛣䛻DockerFile䛷⎔ቃ䜢ᵓ⠏䛩䜛
○ 䝁䝬䞁䝗1䛴1䛴䛾⤖ᯝ䛻ᑐ䛧䛶䚸ID䛜䛥䜜䛶䚸䛭䛣䛛䜙䜔
䜚┤䛧䛯䜚䚸ὴ⏕䛥䛫䜛䛜ྍ⬟
9. ≉ᚩ
● HostOS䛾ᙳ㡪䜢ཷ䛡䜛
○ ㍍㔞䛩䜛Ⅽ䛻䛿䚸HostOS䛾䝕䞊䝍䜢⏝䛩䜛ᚲせ䛜䛒䜚䚸
䛭䛾ᙳ㡪䜢ཷ䛡䜛
● 䝷䜲䝤䝬䜲䜾䝺䞊䝅䝵䞁ฟ᮶䛺䛔
○ 䝝䜲䝟䞊䝞䜲䝄䞊ᆺ䛷䛿ྍ⬟䛰䛜䚸Docker䛷䛿ฟ᮶䛺䛔
○ 䝝䜲䝟䞊䝞䜲䝄䞊ᆺ䛾ୖ䛷䚸䛥䜙䛻Docker䜢ື䛛䛩䛣䛸䛜ᚲ
せ䛻䛺䜛
10. ⎔ቃ
● Linux
○ CentOS, Ubuntu, RedHat etc
○ LXC䜢⏝䛧䛶䛔䜛䛾䛷䚸LXC䛻ᑐᛂ䛧䛶䛔䜛䝕䜱䝇䝖䝸
䝡䝳䞊䝅䝵䞁䞉䝞䞊䝆䝵䞁䛷䛒䜜䜀⏝ྍ⬟
LXC䛿Linux䜹䞊䝛䝹2.6.29䛛䜙⏝ྍ⬟䛺ᶵ⬟䛷䚸
○ RedHat䛿Docker⏝䛾㍍㔞OS䜢Ⓨ⾲
● MaxOS X
○ 0.8䜘䜚Boot2Docker䜢⏝䛩䜛䛷ᑐᛂ
● Windows
○ 1.0䜘䜚Boot2Docker䜢⏝䛩䜛䛷ᑐᛂ
11. ● 㛤Ⓨ⎔ቃ
○ 䝻䞊䜹䝹䛷䛾ືస☜ㄆ
■ ྛ㛤Ⓨ⪅䛻䚸䛟ྠ୍䛾㛤Ⓨ⎔ቃ䜢⡆༢䛻‽ഛྍ⬟
○ 㛤Ⓨ⎔ቃᵓ⠏
■ Eclipse䛺䛹䛾㛤Ⓨ䝒䞊䝹䜢ྵ䜑䚸䝁䞁䝔䝘䛧䛶䛧䜎䛘䜀䚸䜲䞁䝇䝖䞊䝹䛭䛾
䜒䛾䜒せ䛻䛺䜛
■ ⎔ቃ㛤Ⓨᡭ㡰᭩䛺䛹䜒せ
● ᮏ␒⎔ቃ
○ ImmutableInfrastructure䛷Ᏻᐃ䛧䛯ᮏ␒⎔ቃ
■ ኚ᭦䛧䛺䛔ྠ୍䛾⎔ቃ䛻䜘䜚Ᏻᐃ㐠⏝䛜ྍ⬟
● 䝔䝇䝖⎔ቃ
○ 䝔䝇䝖⎔ቃ䛾ศ㞳
■ 䝔䝇䝖⎔ቃ䜢⏝ព䛻」ᩘ㉳ືฟ᮶䜛
■ ྠ䛻䝔䝇䝖䜢⾜䛖䛜ྍ⬟
○ ྠ୍䛷䜽䝸䞊䞁䛺⎔ቃ䜢ᡭ㍍⌧
■ 䝔䝇䝖ᚋ䛿䚸䝁䞁䝔䝘䜢◚Რ
■ ḟ䛾䝔䝇䝖䜈䛾ᙳ㡪䛿䛺䛔
⏝㏵
12. ⏝㏵
commit
push
Jenkins㐃ᦠ
pull
㛤Ⓨ⪅
Docker㉳ື
䜰䝥䝸䝕䝥䝻䜲
䝔䝇䝖ᐇ⾜
Docker䝁䞁䝔䝘◚Რ
13. 䜎䛸䜑
● Docker䛿᪂䛧䛔ᢏ⾡䛷䛿䛺䛔
○ LXC䜔AUFS䛺䛹䛾᫇䛛䜙䛒䜛ᶵ⬟䜢䛖䜎䛟⤌䜏ྜ䜟䛫䛶
⏝䛧䛶䛔䜛
● 㧗㏿䞉㍍㔞
○ 䝝䜲䝟䞊䝞䜲䝄䞊ᆺ䛾௬䛷䚸䜎䛷ၥ㢟䛸䛥䜜䛶䛝䛯㒊
ศ䛻ᑐ䛧䛶䚸ୖᡭ䛟ᑐᛂ䛧䛶䛔䜛
○ ㍍㔞䛷㉳ື䛜㧗㏿䛺䛾䛷䚸≉䛻䛔ᤞ䛶䛾⎔ቃ䛻ྥ䛔䛶䛔䜛
● 䜎䛪䝔䝇䝖⎔ቃ
○ 䝔䝇䝖⎔ቃ䛻䛿ྥ䛔䛶䛔䜛䛾䛷䚸䜎䛪䝔䝇䝖⎔ቃ䛷⏝䜢᥎ዡ
○ Ᏻᐃ䛧䛶ᐇ⦼䜒ฟ᮶䛶䛝䛯䜙䚸ᮏ␒䛷䜒⏝