Docker & VM - Mooneey/Facebook_Crawling GitHub Wiki
Container(Docker)์ VM ๋น๊ต
๊ณตํต์
- ๋ฆฌ์์ค ๋ถ๋ฆฌ ๋ฐ ํ ๋น ์ด์
Container(Docker)
- ์ด์ ์ฒด์ ๊ฐ์ํ
- ํ๋์ HostOS ์์ Docker๋ฅผ ์ค์นํ๊ณ ๊ทธ ์์ ๊ฐ๊ฐ์ ์๋น์ค(Application) ํ๊ฒฝ๋ค์ ์ค์น/์ด์ํ๋ ํํ
VM
- ํ๋์จ์ด ๊ฐ์ํ
- ํ์ดํผ๋ฐ์ด์ ๊ธฐ๋ฒ์ ํตํด ํ๋์ HostOS์์ ์ฌ๋ฌ ๊ฐ์ OS๋ฅผ ์คํํ๋ ํํ
[ ์ฌ์ฉ ] Dokcer : Web VM : WAS
Docker ๋คํธ์ํฌ ๊ตฌ์ฑ(๊ฐ์ ๋ธ๋ฆฌ์ง/๊ฐ์ NIC)
- Docker๋ฅผ ์ค์นํ๋ฉด ์๋ฒ์ ๋ฌผ๋ฆฌ NIC๊ฐ docker0๋ผ๋ ๊ฐ์ ๋ธ๋ฆฌ์ง ๋คํธ์ํฌ๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค.
- Docker ์ปจํ ์ด๋๊ฐ ์คํ๋๋ฉด ์ปจํ ์ด๋์ 172.17.0.0/16์ด๋ผ๋ ์๋ธ๋ท ๋ง์คํฌ๋ฅผ ๊ฐ์ง ํ๋ผ์ด๋น IP ์ฃผ์๊ฐ eth0์ผ๋ก ์๋์ผ๋ก ํ ๋น๋ฉ๋๋ค.
Docker ๋คํธ์ํฌ ๊ตฌ์ฑ
- Docker ์ปจํ ์ด๋์ ์ธ๋ถ ๋คํธ์ํฌ๊ฐ ํต์ ์ ํ ๋๋ ๊ฐ์ ๋ธ๋ฆฌ์ง docker0์ ํธ์คํธ OS์ ๋ฌผ๋ฆฌ NIC์์ ํจํท์ ์ ์กํ๋ ์ฅ์น๊ฐ ํ์ํ๊ณ Docker์์๋ NAPT ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐํฉ๋๋ค.
- Docker์์๋ NAPT์ Linux์ iptables๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
์ปจํ ์ด๋์ ์ธ๋ถ ํต์
- Docker์์ ์ปจํ ์ด๋ ์์ ์์ ์ปจํ ์ด๋ ์์์ ์ฌ์ฉํ๊ณ ์๋ ํฌํธ๋ฅผ ๊ฐ์ ๋ธ๋ฆฌ์ง์ธ docker0์ ๋ํด ๊ฐ๋ฐฉํฉ๋๋ค.
- ๊ทธ๋ฆผ์ ๊ฒฝ์ฐ๋ ์์ ์น ์๋ฒ๊ฐ ์ฌ์ฉํ๋ 80๋ฒ ํฌํธ๋ฅผ ํธ์คํธ OS์ 8080๋ฒ ํฌํธ๋ก ์ ์กํ๋๋ก ์ค์ ํฉ๋๋ค.
Hyper-V ๋คํธ์ํฌ ๊ตฌ์ฑ
- Hyper-V ๋คํธ์ํฌ๋ ๊ฐ์ ์ค์์น(Virtual Switch)์ ๊ฐ์ ๋คํธ์ํฌ ์ด๋ํฐ(Virtual Networking Adapter)๋ก ์ด๋ฃจ์ด์ง๋๋ค.
- ๊ฐ์ ์ค์์น๋ Host์ ๋ฌผ๋ฆฌ NIC์ Guest์ VNIC๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ๋ค๋ฆฌ ์ญํ ์ ํฉ๋๋ค.
- ๊ฐ์ ๋คํธ์ํฌ ์ด๋ํฐ๋ VNIC(Virtual NIC)๋ผ๊ณ ๋ ๋ถ๋ฆฝ๋๋ค.
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์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.