Docker & VM - Mooneey/Facebook_Crawling GitHub Wiki

Container(Docker)์™€ VM ๋น„๊ต

๊ณตํ†ต์ 

  • ๋ฆฌ์†Œ์Šค ๋ถ„๋ฆฌ ๋ฐ ํ• ๋‹น ์ด์ 

Container(Docker)

  • ์šด์˜ ์ฒด์ œ ๊ฐ€์ƒํ™”
  • ํ•˜๋‚˜์˜ HostOS ์œ„์— Docker๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๊ทธ ์œ„์— ๊ฐ๊ฐ์˜ ์„œ๋น„์Šค(Application) ํ™˜๊ฒฝ๋“ค์„ ์„ค์น˜/์šด์˜ํ•˜๋Š” ํ˜•ํƒœ

VM

  • ํ•˜๋“œ์›จ์–ด ๊ฐ€์ƒํ™”
  • ํ•˜์ดํผ๋ฐ”์ด์ € ๊ธฐ๋ฒ•์„ ํ†ตํ•ด ํ•˜๋‚˜์˜ HostOS์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ OS๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํ˜•ํƒœ

1


[ ์‚ฌ์šฉ ] Dokcer : Web VM : WAS

Docker ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ(๊ฐ€์ƒ ๋ธŒ๋ฆฌ์ง€/๊ฐ€์ƒ NIC)

  • Docker๋ฅผ ์„ค์น˜ํ•˜๋ฉด ์„œ๋ฒ„์˜ ๋ฌผ๋ฆฌ NIC๊ฐ€ docker0๋ผ๋Š” ๊ฐ€์ƒ ๋ธŒ๋ฆฌ์ง€ ๋„คํŠธ์›Œํฌ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
  • Docker ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰๋˜๋ฉด ์ปจํ…Œ์ด๋„ˆ์— 172.17.0.0/16์ด๋ผ๋Š” ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ๋ฅผ ๊ฐ€์ง„ ํ”„๋ผ์ด๋น— IP ์ฃผ์†Œ๊ฐ€ eth0์œผ๋กœ ์ž๋™์œผ๋กœ ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค.

Docker ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ

image

  • Docker ์ปจํ…Œ์ด๋„ˆ์™€ ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ๊ฐ€ ํ†ต์‹ ์„ ํ•  ๋•Œ๋Š” ๊ฐ€์ƒ ๋ธŒ๋ฆฌ์ง€ docker0์™€ ํ˜ธ์ŠคํŠธ OS์˜ ๋ฌผ๋ฆฌ NIC์—์„œ ํŒจํ‚ท์„ ์ „์†กํ•˜๋Š” ์žฅ์น˜๊ฐ€ ํ•„์š”ํ•˜๊ณ  Docker์—์„œ๋Š” NAPT ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
  • Docker์—์„œ๋Š” NAPT์— Linux์˜ iptables๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ์˜ ์™ธ๋ถ€ ํ†ต์‹ 

image

  • Docker์—์„œ ์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘ ์‹œ์— ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํฌํŠธ๋ฅผ ๊ฐ€์ƒ ๋ธŒ๋ฆฌ์ง€์ธ docker0์— ๋Œ€ํ•ด ๊ฐœ๋ฐฉํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆผ์˜ ๊ฒฝ์šฐ๋Š” ์•ˆ์˜ ์›น ์„œ๋ฒ„๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” 80๋ฒˆ ํฌํŠธ๋ฅผ ํ˜ธ์ŠคํŠธ OS์˜ 8080๋ฒˆ ํฌํŠธ๋กœ ์ „์†กํ•˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

Hyper-V ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ

  • Hyper-V ๋„คํŠธ์›Œํฌ๋Š” ๊ฐ€์ƒ ์Šค์œ„์น˜(Virtual Switch)์™€ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ(Virtual Networking Adapter)๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.
  • ๊ฐ€์ƒ ์Šค์œ„์น˜๋Š” Host์˜ ๋ฌผ๋ฆฌ NIC์™€ Guest์˜ VNIC๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ๋‹ค๋ฆฌ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ๋Š” VNIC(Virtual NIC)๋ผ๊ณ ๋„ ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค. image

Hyper-V ๊ฐ€์ƒ ์Šค์œ„์น˜(Virtual Switch)

  • External(์™ธ๋ถ€) : Host์˜ ์‹ค์ œ ๋ฌผ๋ฆฌ NIC ๋ฐ ๋ฌผ๋ฆฌ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋˜์–ด ์™ธ๋ถ€ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • Internal(๋‚ด๋ถ€) : ๊ฐ™์€ Host๋‚ด์— ์กด์žฌํ•˜๋Š” VM๋“ค๊ฐ„ ์—ฐ๊ฒฐ ๋ฐ Host ๋‚ด Management OS์™€ ์—ฐ๊ฒฐ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • Private : ๊ฐ™์€ Host ๋‚ด์— ์กด์žฌํ•˜๋Š” VM๋“ค๊ฐ„ ์—ฐ๊ฒฐ๋งŒ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Hyper-V ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ(Virtual Network Adapter = vNIC)

  • Hyper-V ์ „์šฉ ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ : Hyper-V ์ „์šฉ์œผ๋กœ ์„ค๊ณ„๋œ ์–ด๋Œ‘ํ„ฐ๋กœ, generation 1, 2 VM์—์„œ ๋ชจ๋‘ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • Legacy ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ : Intel 21140 ๊ธฐ๋ฐ˜ PCI ํŒจ์ŠคํŠธ ์ด๋”๋„ท ์–ด๋Œ‘ํ„ฐ๋ฅผ ์—๋ฎฌ๋ ˆ์ดํŠธ ํ•œ ์–ด๋Œ‘ํ„ฐ๋กœ, generation 1 VM์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.