๐ณ Docker๋ Container ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ์ดํ๋ฆฌ์ผ์ด์ ์ ํ์ํ ํ๊ฒฝ์ ๊ตฌ์ถํ๊ณ , ํ ์คํธ ๋ฐ ๋ฐฐํฌ๋ฅผ ํ ์ ์๊ฒ ํด์ฃผ๋ ํ๋ซํผ์ด๋ค.
์ฌ์ฉ์์ ๋ก์ปฌ ํ๊ฒฝ๊ณผ ๋ ๋ฆฝ๋ ์๋ก์ด ํ๊ฒฝ์ ๋ง๋ค์ด์ฃผ๋ ๋๊ตฌ
๋ค.
์ฒ์ ์ด ์ค๋ช ์ ๋ค์ผ๋ฉด ์ ~ ๊ทธ๋ ๊ตฌ๋ ~ ํ์ง๋ง ๊ทธ๋์.. ๋ญ๋ผ๋๊ฑฐ์ผ ... ๋ผ๋ ์๊ฐ์ด ๋ ๋ค .. ๋ ์ญ์ ๊ทธ๋ฌ๋ค.
์ผ๋จ ์์ ์๊ฐ์ ๋ฐฐ์ด ์ด๋ก ์ ์ธ ๊ฒ์ ๋จผ์ ๊ธฐ์ ํ๊ณ ์ค์ docker๋ฅผ ์จ๋ณด๋ฉฐ ๊ฐ์ ํ์คํ ์ก์ ๊ณผ์ ์ ๊ธฐ์ ํ๊ณ ์ ํ๋ค.
์ฌ๋๋ง๋ค ๋
ธํธ๋ถ์ด ๋ค๋ฅด๊ณ ์ด์ ๋ฐ๋ผ ์ด์์ฒด์ ํ๊ฒฝ๋ ๋ค ๋ค๋ฅด๋ค.
์ด๋ Docker๋ container
๋ผ๋ ๊ฐ๋
์ ์ฌ์ฉํด ์์ฉ ํ๋ก๊ทธ๋จ ๊ฐ์ ์ด์์ฒด์ (OS)๋ฅผ ๊ณต์ ํ๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ ์ ์ ์จ์ด ํ๋ฝํ๋ค.
Container ๊ฐ์ํ ๋ฐฉ์
์ด ๋์ค๋ ๊ฒ์ด๋ค.ํธ์คํธ OS(๋ด๊ฐ ์๋ ์ฐ๋ OS!!)์ ๋ ๋ฆฝ์ ์ธ Container๋ฅผ ๋ง๋ค๊ณ , ์์ฉ ํ๋ก๊ทธ๋จ์ด ๋์ํ๋๋ฐ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์ฉ ํ๋ก๊ทธ๋จ ๋ฑ์ Container ์์ ํฌํจ์ํจ๋ค. ๊ฒ์คํธ OS ์์ด ์คํ ํ๊ฒฝ๋ง ๋ ๋ฆฝ์ ์ผ๋ก ๋๋ฆฌ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ์์ ์ธก๋ฉด์์ ์ข๊ณ ๊ฐ๋ณ๊ณ ๋น ๋ฅด๋ค.
Container๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ ์ด์์ฒด์ ๋ ์ด๋ ํ๊ฒฝ์์๋ Docker๋ง ๊น๋ ค ์์ผ๋ฉด ๋๊ฐ์ ์คํ ํ๊ฒฝ์ ๊ตฌ์ถํ ์ ์๋ค.
Virtual Machine(๊ฐ์ ๋จธ์ ) vs Docker Container
์ผ์ชฝ์ด VM์ด๊ณ , ์ค๋ฅธ์ชฝ์ docker container๋ค.
๊ธฐ์กด์ ๊ฐ์ํ ๊ธฐ์ , VM์ ํ์ดํผ๋ฐ์ด์ (Hypervisor)๋ฅผ ์ด์ฉํด ์ ์ด์ ์ฌ๋ฌ๊ฐ์ ์ด์์ฒด์ ๋ฅผ ํ๋์ ํธ์คํธ์์ ์์ฑํด ์ฌ์ฉํ๋ ๋ฐฉ์์ด๋ค.
๐ก ํ์ดํผ๋ฐ์ด์ : ๋จ์ผ ํ๋์จ์ด์์ ์ฌ๋ฌ ๋ค๋ฅธ ๊ฐ์ ๋จธ์ ์ ํธ์คํ ํ ์ ์๋ ํ๋ก๊ทธ๋จ์ผ๋ก ์ด ํ์ดํผ๋ฐ์ด์ ๊ฐ ์คํ๋๋ ํ๋์จ์ด๋ฅผ ํธ์คํธ ๋จธ์ ์ด๋ผ๊ณ ํ๋ค.
๋ฌผ๋ฆฌ์ ๋จธ์ ์ ๋์งํธ ๋ณต์ฌ๋ณธ
์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. ๋์ผํ ํธ์คํธ ์ด์ ์ฒด์ ์์ ๊ณ ์ ํ ๊ฐ๋ณ ์ด์์ฒด์ ๊ฐ ์คํ๋๋ ์ฌ๋ฌ ๊ฐ์ ๋จธ์ ์ ๋ณด์ ํ๋ค.
์ด๋ฌํ ๊ฐ๋ณ ์ด์์ฒด์ ๋ฅผ ๊ฒ์คํธ ์ด์์ฒด์ (Guest OS)๋ผ๊ณ ํ๋ฉฐ, ๊ฐ ๊ฒ์คํธ ์ด์์ฒด์ ๋ ๋ค๋ฅธ ๊ฒ์คํธ ์ด์์ฒด์ ์๋ ์์ ํ ๋ ๋ฆฝ๋ ๊ณต๊ฐ๊ณผ ์์คํ ์์์ ํ ๋น๋ฐ์ ์ฌ์ฉํ๋ค.
์ด๋ ๊ฒ ๊ฐ์ข ์์คํ ์์์ ๊ฐ์ํํ๊ณ ๋ ๋ฆฝ๋ ๊ณต๊ฐ์ ์์ฑํ๋ ์์ ์ ํ์ดํผ๋ฐ์ด์ ๋ฅผ ๋ฐ๋์ ๊ฑฐ์น๊ธฐ์ ์ผ๋ฐ ํธ์คํธ์ ๋นํด ์ฑ๋ฅ์ ์์ค์ด ๋ฐ์ํ๋ค. ๋ํ, ๊ฐ์ ๋จธ์ ์ ๊ฒ์คํธ ์ด์์ฒด์ ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ์ปค๋ ๋ฑ์ ์ ๋ถ ํฌํจํ๊ธฐ์ ๊ฐ์ ๋จธ์ ์ ๋ฐฐํฌํ๊ธฐ ์ํ ์ด๋ฏธ์ง๋ก ๋ง๋ค์์ ๋ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๊ฐ ๋์ฑ ์ปค์ง๋ค ...!! ์ฆ, ๋ฐฐํฌํ ๋ ์ฉ๋์ด ์ปค์ง๋ค๋ ๊ฒ!
"NOPE"
์ ์ด์ ์ฉ๋ ์์ฒด๊ฐ ๋ค๋ฅด๋ค๊ณ ํ๋ค.
๊ฐ์ ๋จธ์
์ ํธ์คํธ ์ปดํจํฐ์ ์ํ์ ์ฃผ์ง ์๊ณ ์์ฒด OS (Guest OS)์์ ์คํ๋๊ธฐ์ ํ๋ก๋์
ํ๊ฒฝ์์ ์ ํฉํ ์ ํ์ผ๋ก ๊ฐ์ฃผ๋๋ค. ํ๋ก๋์
ํ๊ฒฝ์ ์ต์ ๋ฒ์ ์ ์ํํธ์จ์ด, ์ ํ ๋๋ ์
๋ฐ์ดํธ๊ฐ ์ฌ์ฉ์์๊ฒ ์ค์๊ฐ์ผ๋ก ํธ์ฌ๋๋ ๊ณณ์ผ๋ก ์ค์ ์๋น์ค๋ฅผ ์ํ ์ด์ ํ๊ฒฝ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
Docker
๋ ๋ค์ํ OS ํ๋ซํผ์ ์ ๊ณตํ๊ธฐ์ ์ํํธ์จ์ด ๋๋ ์ ํ๋ฆฌ์ผ์ด์
์ ํ
์คํธ๋ฅผ ์งํํ ๋ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค๊ณ ํ๋ค. VM๊ณผ ๋ฌ๋ฆฌ ํธ์คํธ ์ปค๋์ด ๊ณต์ ๋์ง ์๊ธฐ์ ์ปจํ
์ด๋๊ฐ ์๊ณ , ๊ฒฉ๋ฆฌ๋๊ณ , ํธํ ๊ฐ๋ฅํ๊ณ , ์ฑ๋ฅ ์ง์ฝ์ ์ด๋ฉฐ ๋น ๋ฅด๊ฒ ๋ฐ์ํ๊ฒ ๋๋ค.
Docker | VM | |
---|---|---|
๋ถํ
์๊ฐ | ๋ช ์ด ์์ ๋ถํ | ๋ช ๋ถ ์ ๋ ๊ฑธ๋ฆผ |
์คํ ๋์ | ์คํ ์์ง ์ฌ์ฉ | ํ์ดํผ๋ฐ์ด์ ์ฌ์ฉ |
๋ฉ๋ชจ๋ฆฌ ํจ์จ์ฑ | ๊ฐ์ํํ๋๋ฐ ๊ณต๊ฐ์ด ํ์ํ์ง ์์ ๋ฉ๋ชจ๋ฆฌ๋ ์ ์ | ํ๋ฉด์ ์์ํ๊ธฐ ์ ์ ์ ์ฒด OS๋ฅผ ๋ก๋ํด์ผ ํ๊ธฐ์ ํจ์จ์ฑ ๋จ์ด์ง |
๊ฒฉ๋ฆฌ | ๊ฒฉ๋ฆฌ์์คํ ์ทจ์ฝ | ํจ์จ์ ์ธ ๊ฒฉ๋ฆฌ ๋ฉ์ปค๋์ฆ์ผ๋ก ์ฌ๋ฌ ํ๋ก์ธ์ค๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ ์ํธ์์ฉ ๊ฐ๋ฅ์ฑ์ด ์ต์ํ |
์ฝ๋ฉํ ๋ ์ด๋ฐ ๊ฒฝํ์ด ์๋ค.
"์ ๋ฏธ์น ... ๋ ๋ ธํธ๋ถ ์ง์ ๋๊ณ ์๋ค.. ๊ทผ๋ฐ ๋ ์ง๊ธ ๋น์ฅ ์ฝ๋ ์์ ํ ๊ฒ ์๋๋ฐ .. ๋์๋ฆฌ๋ฐฉ ์ปดํจํฐ์๋ ํ์ด์ฌ์ด๊ณ ๋ญ๊ณ ์๋ฌด๊ฒ๋ ์๊น๋ ค์๋๋ฐ .. ์ด์บ ..."
์ด๋ด ๋ Docker๋ง ์์ผ๋ฉด ๊ธฐ์กด์ ๋ด๊ฐ ์์ ํ๋ ํ๊ฒฝ ๊ทธ๋๋ก ๊ตฌ์ถํด ์ด์ด๋๊ฐ ์ ์๋ค. ๋ฌผ๋ก ๊ทธ ์ ์ ๋ด ์์ ์ Docker์ ์ฌ๋ ค๋จ์ด์ผํ๋ค.
๋๋ถ๋ถ์ ์๋ฒ๋ ์ฌ๋ฌ ๋์ ์ปดํจํฐ๋ก ๊ตฌ์ฑ๋์ด ์์ด ์ฌ๋ฌ ์๋ฒ์์ ๋์ผํ ์ํํธ์จ์ด๋ฅผ ์คํํ๋ฉฐ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ค. ์ด๋ ์๋ฒ๋ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ์ปดํจํฐ์ฒ๋ผ ์๋ฒ ๊ฐ๋์ ์ํด ์ฌ๋ฌ ์ํํธ์จ์ด๋ฅผ ์ค์นํ๋๋ฐ, ์ํํธ์จ์ด๋ ๊ฐ๊ฐ์ version๊ณผ Dependecy๊ฐ ์กด์ฌํ๋ค.
โ ๏ธ version
: ์ํํธ์จ์ด๋ ์
๋ฐ์ดํธํ๋ฉฐ ์งํํ๊ณ , ๊ฐ ๊ณผ์ ์ ๋ฒ์ ์ผ๋ก ๊ตฌ๋ถ๋๋ค.
โ ๏ธ dependency
: ์๋ก ๋ค๋ฅธ ํจํค์ง๊ฐ ๊ธฐ๋ฅ ์ฌ์ฉ์ ์ํด ๋ค๋ฅธ ํจํค์ง์ ์์กดํ๋ค. ์๋ฒ์๋ ๋งค์ฐ ๋ง์ ์์ ํจํค์ง๊ฐ ์ค์น๋๊ณ ์ฌ๋ฌ ๋์ ์๋ฒ๋ฅผ ๋์ผํ ๋ชฉ์ ์ ์ํด ์ฌ์ฉํ๋ค. ๋ํ, ์๋ฒ์ ํ๋ก๊ทธ๋จ์ ์์ฒ ๊ฐ์ ํจํค์ง์ ์์กดํ๋๋ฐ!! ํจํค์ง๋ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์
๋ฐ์ดํธ ๋๋ค..
์ฐ๋ฆฌ๋ ๋ชจ๋ ์๋ฒ๊ฐ ๋์ผํ ์ํ๊ฐ ๋๊ธฐ๋ฅผ ์ํ๋ค. ๊ทธ๋์ Docker๋ ์ฌ๊ธฐ์ ๋์ผํ ๋ฒ์ ๋ฐ ์ํ์ ์๋ฒ๋ฅผ ์ ๊ณตํ๋ ์ญํ ์ ์ํ
ํ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
Docker๋ ์ด๋ฏธ์ง
๋ผ๋ ๋ ์ํผ๋ฅผ ํตํด Container
๋ผ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ค.
์๊ฐ๋ณด๋ค ๊ธธ์ด์ ธ์ ๋ค์ ํธ์ ์ ๋ก๋ํ๊ฒ ๋ค ~! ๋ง๊ด๋ถ !!
์ฐธ๊ณ ์๋ฃ