๐Ÿณ Docker ํŒŒ์•…ํ•˜๊ธฐ

์˜ค์ฐฌ์ฃผยท2024๋…„ 5์›” 15์ผ
0

Study Log

๋ชฉ๋ก ๋ณด๊ธฐ
2/6
post-thumbnail

๐Ÿณ Docker๋Š” Container ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ•„์š”ํ•œ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๊ณ , ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ”Œ๋žซํผ์ด๋‹ค. ์‚ฌ์šฉ์ž์˜ ๋กœ์ปฌ ํ™˜๊ฒฝ๊ณผ ๋…๋ฆฝ๋œ ์ƒˆ๋กœ์šด ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋„๊ตฌ๋‹ค.

์ฒ˜์Œ ์ด ์„ค๋ช…์„ ๋“ค์œผ๋ฉด ์Œ ~ ๊ทธ๋ ‡๊ตฌ๋‚˜ ~ ํ•˜์ง€๋งŒ ๊ทธ๋ž˜์„œ.. ๋ญ๋ผ๋Š”๊ฑฐ์•ผ ... ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค .. ๋‚˜ ์—ญ์‹œ ๊ทธ๋žฌ๋‹ค.

์ผ๋‹จ ์ˆ˜์—… ์‹œ๊ฐ„์— ๋ฐฐ์šด ์ด๋ก ์ ์ธ ๊ฒƒ์„ ๋จผ์ € ๊ธฐ์ˆ ํ•˜๊ณ  ์‹ค์ œ docker๋ฅผ ์จ๋ณด๋ฉฐ ๊ฐ์„ ํ™•์‹คํžˆ ์žก์€ ๊ณผ์ •์„ ๊ธฐ์ˆ ํ•˜๊ณ ์ž ํ•œ๋‹ค.


์‚ฌ๋žŒ๋งˆ๋‹ค ๋…ธํŠธ๋ถ์ด ๋‹ค๋ฅด๊ณ  ์ด์— ๋”ฐ๋ผ ์šด์˜์ฒด์ œ ํ™˜๊ฒฝ๋„ ๋‹ค ๋‹ค๋ฅด๋‹ค.
์ด๋•Œ Docker๋Š” container๋ผ๋Š” ๊ฐœ๋…์„ ์‚ฌ์šฉํ•ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ฐ„์— ์šด์˜์ฒด์ œ(OS)๋ฅผ ๊ณต์œ ํ•˜๊ธฐ์— ๋ฉ”๋ชจ๋ฆฌ ์ ์œ ์œจ์ด ํ•˜๋ฝํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ Container ๊ฐ€์ƒํ™” ๋ฐฉ์‹์ด ๋‚˜์˜ค๋Š” ๊ฒƒ์ด๋‹ค.

ํ˜ธ์ŠคํŠธ OS(๋‚ด๊ฐ€ ์›๋ž˜ ์“ฐ๋˜ OS!!)์— ๋…๋ฆฝ์ ์ธ Container๋ฅผ ๋งŒ๋“ค๊ณ , ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๋™์ž‘ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋“ฑ์„ Container ์•ˆ์— ํฌํ•จ์‹œํ‚จ๋‹ค. ๊ฒŒ์ŠคํŠธ OS ์—†์ด ์‹คํ–‰ ํ™˜๊ฒฝ๋งŒ ๋…๋ฆฝ์ ์œผ๋กœ ๋Œ๋ฆฌ๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ž์› ์ธก๋ฉด์—์„œ ์ข‹๊ณ  ๊ฐ€๋ณ๊ณ  ๋น ๋ฅด๋‹ค.

Container๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋Š ์šด์˜์ฒด์ œ๋‚˜ ์–ด๋Š ํ™˜๊ฒฝ์—์„œ๋‚˜ Docker๋งŒ ๊น”๋ ค ์žˆ์œผ๋ฉด ๋˜‘๊ฐ™์€ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.


๊ทธ๋ ‡๋‹ค๋ฉด ๊ธฐ์กด์— ์•Œ๊ณ  ์žˆ๋˜ VM์ด๋ž‘ ๋ญ๊ฐ€ ๋‹ค๋ฅธ๋ฐ?

Virtual Machine(๊ฐ€์ƒ ๋จธ์‹ ) vs Docker Container


์™ผ์ชฝ์ด VM์ด๊ณ , ์˜ค๋ฅธ์ชฝ์— docker container๋‹ค.

Virtual Machine

๊ธฐ์กด์˜ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ , VM์€ ํ•˜์ดํผ๋ฐ”์ด์ €(Hypervisor)๋ฅผ ์ด์šฉํ•ด ์• ์ดˆ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ์šด์˜์ฒด์ œ๋ฅผ ํ•˜๋‚˜์˜ ํ˜ธ์ŠคํŠธ์—์„œ ์ƒ์„ฑํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

๐Ÿ’ก ํ•˜์ดํผ๋ฐ”์ด์ €: ๋‹จ์ผ ํ•˜๋“œ์›จ์–ด์—์„œ ์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ๊ฐ€์ƒ ๋จธ์‹ ์„ ํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ด ํ•˜์ดํผ๋ฐ”์ด์ €๊ฐ€ ์‹คํ–‰๋˜๋Š” ํ•˜๋“œ์›จ์–ด๋ฅผ ํ˜ธ์ŠคํŠธ ๋จธ์‹ ์ด๋ผ๊ณ  ํ•œ๋‹ค.

๋ฌผ๋ฆฌ์  ๋จธ์‹ ์˜ ๋””์ง€ํ„ธ ๋ณต์‚ฌ๋ณธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ๋™์ผํ•œ ํ˜ธ์ŠคํŠธ ์šด์˜ ์ฒด์ œ์—์„œ ๊ณ ์œ ํ•œ ๊ฐœ๋ณ„ ์šด์˜์ฒด์ œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ƒ ๋จธ์‹ ์„ ๋ณด์œ ํ•œ๋‹ค.

์ด๋Ÿฌํ•œ ๊ฐœ๋ณ„ ์šด์˜์ฒด์ œ๋ฅผ ๊ฒŒ์ŠคํŠธ ์šด์˜์ฒด์ œ(Guest OS)๋ผ๊ณ  ํ•˜๋ฉฐ, ๊ฐ ๊ฒŒ์ŠคํŠธ ์šด์˜์ฒด์ œ๋Š” ๋‹ค๋ฅธ ๊ฒŒ์ŠคํŠธ ์šด์˜์ฒด์ œ์™€๋Š” ์™„์ „ํžˆ ๋…๋ฆฝ๋œ ๊ณต๊ฐ„๊ณผ ์‹œ์Šคํ…œ ์ž์›์„ ํ• ๋‹น๋ฐ›์•„ ์‚ฌ์šฉํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ๊ฐ์ข… ์‹œ์Šคํ…œ ์ž์›์„ ๊ฐ€์ƒํ™”ํ•˜๊ณ  ๋…๋ฆฝ๋œ ๊ณต๊ฐ„์„ ์ƒ์„ฑํ•˜๋Š” ์ž‘์—…์€ ํ•˜์ดํผ๋ฐ”์ด์ €๋ฅผ ๋ฐ˜๋“œ์‹œ ๊ฑฐ์น˜๊ธฐ์— ์ผ๋ฐ˜ ํ˜ธ์ŠคํŠธ์— ๋น„ํ•ด ์„ฑ๋Šฅ์˜ ์†์‹ค์ด ๋ฐœ์ƒํ•œ๋‹ค. ๋˜ํ•œ, ๊ฐ€์ƒ ๋จธ์‹ ์€ ๊ฒŒ์ŠคํŠธ ์šด์˜์ฒด์ œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์ปค๋„ ๋“ฑ์„ ์ „๋ถ€ ํฌํ•จํ•˜๊ธฐ์— ๊ฐ€์ƒ ๋จธ์‹ ์„ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค์—ˆ์„ ๋•Œ ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๊ฐ€ ๋”์šฑ ์ปค์ง„๋‹ค ...!! ์ฆ‰, ๋ฐฐํฌํ•  ๋•Œ ์šฉ๋Ÿ‰์ด ์ปค์ง„๋‹ค๋Š” ๊ฒƒ!

๊ทธ๋Ÿผ VM ์™œ ์จ?? ๋‹ค Docker๋ฅผ ์“ฐ๋Š”๊ฒŒ ์ข‹์€๊ฑฐ ์•„๋ƒ?

"NOPE"

์• ์ดˆ์— ์šฉ๋„ ์ž์ฒด๊ฐ€ ๋‹ค๋ฅด๋‹ค๊ณ  ํ•œ๋‹ค.

๊ฐ€์ƒ ๋จธ์‹ ์€ ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ์— ์œ„ํ˜‘์„ ์ฃผ์ง€ ์•Š๊ณ  ์ž์ฒด OS (Guest OS)์—์„œ ์‹คํ–‰๋˜๊ธฐ์— ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ์ ํ•ฉํ•œ ์„ ํƒ์œผ๋กœ ๊ฐ„์ฃผ๋œ๋‹ค. ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์€ ์ตœ์‹  ๋ฒ„์ „์˜ ์†Œํ”„ํŠธ์›จ์–ด, ์ œํ’ˆ ๋˜๋Š” ์—…๋ฐ์ดํŠธ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ‘ธ์‰ฌ๋˜๋Š” ๊ณณ์œผ๋กœ ์‹ค์ œ ์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ ์šด์˜ ํ™˜๊ฒฝ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

Docker๋Š” ๋‹ค์–‘ํ•œ OS ํ”Œ๋žซํผ์„ ์ œ๊ณตํ•˜๊ธฐ์— ์†Œํ”„ํŠธ์›จ์–ด ๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๊ณ  ํ•œ๋‹ค. VM๊ณผ ๋‹ฌ๋ฆฌ ํ˜ธ์ŠคํŠธ ์ปค๋„์ด ๊ณต์œ ๋˜์ง€ ์•Š๊ธฐ์— ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ž‘๊ณ , ๊ฒฉ๋ฆฌ๋˜๊ณ , ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•˜๊ณ , ์„ฑ๋Šฅ ์ง‘์•ฝ์ ์ด๋ฉฐ ๋น ๋ฅด๊ฒŒ ๋ฐ˜์‘ํ•˜๊ฒŒ ๋œ๋‹ค.

DockerVM
๋ถ€ํŒ…
์‹œ๊ฐ„
๋ช‡ ์ดˆ ์•ˆ์— ๋ถ€ํŒ…๋ช‡ ๋ถ„ ์ •๋„ ๊ฑธ๋ฆผ
์‹คํ–‰
๋Œ€์ƒ
์‹คํ–‰ ์—”์ง„ ์‚ฌ์šฉํ•˜์ดํผ๋ฐ”์ด์ € ์‚ฌ์šฉ
๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ฑ๊ฐ€์ƒํ™”ํ•˜๋Š”๋ฐ ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜์ง€ ์•Š์•„ ๋ฉ”๋ชจ๋ฆฌ๋„ ์ ์Œํ‘œ๋ฉด์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ์ „์ฒด OS๋ฅผ ๋กœ๋“œํ•ด์•ผ ํ•˜๊ธฐ์— ํšจ์œจ์„ฑ ๋–จ์–ด์ง
๊ฒฉ๋ฆฌ๊ฒฉ๋ฆฌ์‹œ์Šคํ…œ ์ทจ์•ฝํšจ์œจ์ ์ธ ๊ฒฉ๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„์— ์ƒํ˜ธ์ž‘์šฉ ๊ฐ€๋Šฅ์„ฑ์ด ์ตœ์†Œํ™”

์ด์ œ ๋‹ค์‹œ Docker ์ด๋ก ์œผ๋กœ ๋„˜์–ด๊ฐ€์ž

์ฝ”๋”ฉํ•  ๋•Œ ์ด๋Ÿฐ ๊ฒฝํ—˜์ด ์žˆ๋‹ค.

"์•„ ๋ฏธ์นœ ... ๋‚˜ ๋…ธํŠธ๋ถ ์ง‘์— ๋‘๊ณ  ์™”๋‹ค.. ๊ทผ๋ฐ ๋‚˜ ์ง€๊ธˆ ๋‹น์žฅ ์ฝ”๋“œ ์ˆ˜์ •ํ•  ๊ฒŒ ์žˆ๋Š”๋ฐ .. ๋™์•„๋ฆฌ๋ฐฉ ์ปดํ“จํ„ฐ์—๋Š” ํŒŒ์ด์ฌ์ด๊ณ  ๋ญ๊ณ  ์•„๋ฌด๊ฒƒ๋„ ์•ˆ๊น”๋ ค์žˆ๋Š”๋ฐ .. ์–ด์บ„ ..."

์ด๋Ÿด ๋•Œ Docker๋งŒ ์žˆ์œผ๋ฉด ๊ธฐ์กด์— ๋‚ด๊ฐ€ ์ž‘์—…ํ•˜๋˜ ํ™˜๊ฒฝ ๊ทธ๋Œ€๋กœ ๊ตฌ์ถ•ํ•ด ์ด์–ด๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ๋ฌผ๋ก  ๊ทธ ์ „์— ๋‚ด ์ž‘์—…์„ Docker์— ์˜ฌ๋ ค๋†จ์–ด์•ผํ•œ๋‹ค.


์„œ๋ฒ„ ์šด์˜์—์„œ์˜ ์ด์ 

๋Œ€๋ถ€๋ถ„์˜ ์„œ๋ฒ„๋Š” ์—ฌ๋Ÿฌ ๋Œ€์˜ ์ปดํ“จํ„ฐ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด ์—ฌ๋Ÿฌ ์„œ๋ฒ„์—์„œ ๋™์ผํ•œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉฐ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์ด๋•Œ ์„œ๋ฒ„๋„ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์ปดํ“จํ„ฐ์ฒ˜๋Ÿผ ์„œ๋ฒ„ ๊ฐ€๋™์„ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์„ค์น˜ํ•˜๋Š”๋ฐ, ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๊ฐ๊ฐ์˜ version๊ณผ Dependecy๊ฐ€ ์กด์žฌํ•œ๋‹ค.

โš ๏ธ version
: ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์—…๋ฐ์ดํŠธํ•˜๋ฉฐ ์ง„ํ™”ํ•˜๊ณ , ๊ฐ ๊ณผ์ •์€ ๋ฒ„์ „์œผ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.

โš ๏ธ dependency
: ์„œ๋กœ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๊ฐ€ ๊ธฐ๋Šฅ ์‚ฌ์šฉ์„ ์œ„ํ•ด ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์— ์˜์กดํ•œ๋‹ค. ์„œ๋ฒ„์—๋Š” ๋งค์šฐ ๋งŽ์€ ์–‘์˜ ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜๊ณ  ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„๋ฅผ ๋™์ผํ•œ ๋ชฉ์ ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ๋˜ํ•œ, ์„œ๋ฒ„์˜ ํ”„๋กœ๊ทธ๋žจ์€ ์ˆ˜์ฒœ ๊ฐœ์˜ ํŒจํ‚ค์ง€์— ์˜์กดํ•˜๋Š”๋ฐ!! ํŒจํ‚ค์ง€๋Š” ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์—…๋ฐ์ดํŠธ ๋œ๋‹ค..

์šฐ๋ฆฌ๋Š” ๋ชจ๋“  ์„œ๋ฒ„๊ฐ€ ๋™์ผํ•œ ์ƒํƒœ๊ฐ€ ๋˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ Docker๋Š” ์—ฌ๊ธฐ์„œ ๋™์ผํ•œ ๋ฒ„์ „ ๋ฐ ์ƒํƒœ์˜ ์„œ๋ฒ„๋ฅผ ์ œ๊ณตํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

Docker๋Š” ์ด๋ฏธ์ง€๋ผ๋Š” ๋ ˆ์‹œํ”ผ๋ฅผ ํ†ตํ•ด Container๋ผ๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ƒ์„ฑํ•œ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด Docker๋กœ ์ด๋ฏธ์ง€, ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€?

์ƒ๊ฐ๋ณด๋‹ค ๊ธธ์–ด์ ธ์„œ ๋‹ค์Œ ํŽธ์— ์—…๋กœ๋“œํ•˜๊ฒ ๋‹ค ~! ๋งŽ๊ด€๋ถ€ !!


์ฐธ๊ณ  ์ž๋ฃŒ

profile
ํ”„๋ก ํŠธ์—”๋“œ ์—”์ง€๋‹ˆ์–ด๋ฅผ ํฌ๋งํ•ฉ๋‹ˆ๋‹ค :-)

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด