๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
DevOps/Docker

Docker๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ์™œ ์‚ฌ์šฉํ• ๊นŒ?

by ๐ŸŒปโ™š 2021. 10. 6.

Docker ๊ฐœ์š”

์–ด๋Š ์ˆœ๊ฐ„๋ถ€ํ„ฐ Docker๊ฐ€ ๋งˆ์น˜ ์—…๊ณ„ ํ‘œ์ค€์ด๋œ ๊ฒƒ ์ฒ˜๋Ÿผ… ๋งŽ์€ ์„œ๋น„์Šค์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ๊ธฐ์ˆ ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ MSA(Micro Service Architecture) ๊ฐ€ ๋Œ€์„ธ๋กœ ๋– ์˜ค๋ฅด๋ฉด์„œ MSA์˜ ๋‹จ์ ์ธ ๊ด€๋ฆฌ์˜ ๋ณต์žก์„ฑ์„ ํ•ด๊ฒฐํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ์„œ๋น„์Šค์˜ ์ปจํ…Œ์ด๋„ˆํ™”๊ฐ€ ์ด๋ฃจ์–ด์ง€๊ณ , ์ด ๊ณผ์ •์—์„œ Docker์™€ Kubernetes๊ฐ€ ๋งŽ์ด ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

MSA(Micro Service Architecture)

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

์œ„์˜ ์˜ˆ์‹œ์ฒ˜๋Ÿผ MSA๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์žฅ์ ์„ ๊ฐ–์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์„œ๋น„์Šค ๋‹จ์œ„์˜ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ
  • ์ง€์†์ ์ธ ํ†ตํ•ฉ๊ณผ ๋ฐฐํฌ(CI/CD)๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ์Œ
    • ํŒจ์น˜๊ฐ€ ํ•„์š”ํ•œ ์„œ๋น„์Šค๋งŒ ๋ฐฐํฌํ•˜๊ฑฐ๋‚˜ Hotfix(์ •๊ธฐ ํŒจ์น˜ ์ด์™ธ ๊ธ‰ํ•˜๊ฒŒ ์ˆ˜์ •์ด ํ•„์š”ํ•œ ํŒจ์น˜)๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ
  • ์ „์ฒด๊ฐ€ ์•„๋‹Œ ํ•„์š”ํ•œ ์„œ๋น„์Šค์—๋งŒ ์ด์ค‘ํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ „์ฒด์ ์ธ ๊ทธ๋ฆผ์—์„œ ์„œ๋น„์Šค๊ฐ„ ๊ฒฐํ•ฉ๋„(Coupling)๋ฅผ ์ค„์ด๊ณ  ์‘์ง‘๋„(Cohesion)๋ฅผ ๋†’์ด๋Š” ํšจ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

MSA์— ์ด๋Ÿฐ ์žฅ์ ๋“ค์ด ์žˆ๋Š” ๋ฐ˜๋ฉด์—… ์„œ๋น„์Šค๋“ค์„ ๊ด€๋ฆฌํ•˜๊ธฐ ๋ณต์žกํ•˜๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. Docker๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Why Docker?

IaC(Infrastructure as Code)

์šฐ์„  ์œ„์˜ ๊ธ€์˜ ๋‚ด์šฉ์—์„œ๋Š” ์‹œ์Šคํ…œ์„ ์‹ ์†ํ•˜๊ฒŒ ๊ตฌ์ถ•ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๊ด€์  ์—์„œ MSA์— ์ค‘์ ์ ์ธ ์ด์œ ๋ฅผ ์ž‘์„ฑํ–ˆ๋Š”๋ฐ… Docker๊ฐ€ ๊ผญ MSA๋ฅผ ์œ„ํ•œ ๊ธฐ์ˆ ์€ ์•„๋‹™๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ, ์Šคํ…Œ์ด์ง•, ๋ฐฐํฌ ๋“ฑ ์—ฌ๋Ÿฌ ์šฉ๋„๋กœ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹จ, ์ค‘์š”ํ•˜๊ฒŒ ๋ด์•ผํ•  ๊ด€์ ์€ Docker๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด IaC(Infrastructure as Code)๊ฐ€ ๊ฐ€๋Šฅ ํ•˜๋‹ค๋Š” ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ์•ž์œผ๋กœ ์—ฌ๋Ÿฌ ์‹ค์Šต๋“ค์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ Docker๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•ด ๋ณด๋ฉด… ๊ทธ๋ƒฅ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‹ด์€ ๊ฐ€์ƒํ™”๋œ ๊ณต๊ฐ„? ๋ถ„๋ฆฌ๋œ ๊ณต๊ฐ„? ํ˜น์€ ์šด์˜์ฒด์ œ ์œ„์— ์šด์˜์ฒด์ œ? ๊ทธ๋ƒฅ ์ด์ •๋„๋กœ ๋ณด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ Docker์˜ ์ง„์งœ ํฐ ํž˜์€ ์ธํ”„๋ผ๋ฅผ ์ฝ”๋“œํ™”ํ•ด์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์  ์ž…๋‹ˆ๋‹ค. ์•ž์œผ๋กœ ํ™•์ธํ•ด๋ณผ Dockerfile์ด๋‚˜ docker-compose๋ฅผ ๋งŒ์ ธ๋ณด๋ฉด ์ด์ „์—๋Š” ์ง์ ‘ ์‹œ์Šคํ…œ์„ ์„ธํŒ…ํ•ด์ค˜์•ผ ํ•˜๋Š” ๋ถ€๋ถ„๋“ค์„ ์ฝ”๋“œ๋กœ ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Docker์™€ Container, ๊ฐ€์ƒํ™”

Docker๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Container์™€ ๊ฐ€์ƒํ™”์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์„ ํ–‰๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. Docker์ด์™ธ์—๋„ containerd, CRI-O ๋“ฑ ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„์ด ๋งŽ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ ์˜ˆ๋ฅผ ๋“ค์–ด, Container๋ฅผ Orchestratingํ•˜๋Š” ํ”Œ๋žซํผ์ธ Kubernetes์˜ ์ตœ์‹  ๋ฒ„์ „์—์„œ๋Š” ๋” ์ด์ƒ ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„์œผ๋กœ Docker๋ฅผ ๋” ์ด์ƒ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๊ณต๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ Container๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ ์„ ์•Œ์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๋‹น ๊ธ€์—์„œ๋Š” Container, ๊ฐ€์ƒํ™” ์™€ Docker์— ๋Œ€ํ•ด ๋‹ค๋ฃน๋‹ˆ๋‹ค.

Container๋ž€?

Docker๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ Container์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š” ํ•ฉ๋‹ˆ๋‹ค.

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

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

์ปจํ…Œ์ด๋„ˆ๋Š” ๋ชฉ์ ์— ๋”ฐ๋ผ ๋…ผ๋ฆฌ์ ์ธ ๊ตฌ๋ถ„๋“ค ๋‘๊ณ  ์‚ฌ์šฉํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ๊ตฌ๋ถ„ํ•ด์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

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

์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•ด ์•Œ์•„๋ดค๋Š”๋ฐ… ๊ธฐ์กด์— VMWare๋‚˜ Virtualbox๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐ€์ƒํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•ด๋ณธ ๊ฐœ๋ฐœ์ž๋กœ์„œ ํ•œ ๊ฐ€์ง€ ์˜๋ฌธ์ด ์ƒ๊ธธ ์ˆ˜ ๋ฐ–์— ์—†์Šต๋‹ˆ๋‹ค.

"๊ฐ€์ƒํ™” ๊ธฐ์ˆ ๊ณผ๋Š” ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ์„๊นŒ?"

๊ฐ€์ƒํ™” ๊ธฐ์ˆ ๊ณผ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ ์˜ ์ฐจ์ด

Legacy

  • ํ•˜๋‚˜์˜ ๋ฌผ๋ฆฌ ์„œ๋ฒ„์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ฐ„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ๋ฏธ๋“ค์›จ์–ด ๋ฒ„์ „์˜ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ

Hosted Hypervisor(๊ฐ€์ƒํ™” ์†Œํ”„ํŠธ์›จ์–ด)

  • Virtual Box, VMWare, Parallels ์™€๊ฐ™์€ ์†Œํ”„ํŠธ์›จ์–ด
  • ํ˜ธ์ŠคํŠธ OS ์œ„์— ๊ฐ€์ƒํ™” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์„ค์น˜ํ•ด์„œ ๊ฐ€์ƒํ™˜๊ฒฝ ๊ตฌ์ถ•
  • ๊ฐ„ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด ํด๋ผ์ด์–ธํŠธ PC์—์„œ ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๊ฑฐ๋‚˜ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์ฃผ๋กœ ์‚ฌ์šฉ
  • ์ปจํ…Œ์ด๋„ˆ์™€๋Š” ๋‹ค๋ฅด๊ฒŒ Guest OS๊ฐ€ ์กด์žฌํ•˜์—ฌ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋น„๊ต์  ํฌ๋‹ค.
    • OS ์œ„์— OS๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ๋ฆฌ์†Œ์Šค(CPU, ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ)์„ ํ• ๋‹นํ•˜๋Š”๋ฐ ์ž‘์—…์ด ํ•„์š”

Bare Metal Hypervisor

  • Hyper-v, XenServer, ESXI Server, ๋“ฑ์ด ์žˆ๋‹ค.
  • Host OS ์—†์ด ํ•˜๋“œ์›จ์–ด์— ์ง์ ‘ ํ•˜์ดํผ๋ฐ”์ด์ €๋ฅผ ์„ค์น˜
  • Host OS๊ฐ€ ์—†์–ด ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ํ•˜๋“œ์›จ์–ด๊ฐ€ ์ œ์–ด
    • ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋น„๊ต์  ์ ๋‹ค.
  • ๊ฐ€์ƒ ๋จธ์‹ ๋“ค์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ฝ˜์†”์ด ํ•„์š”

Container

  • Docker, containerd, CRI-O ๋“ฑ์ด ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„์œผ๋กœ ์žˆ์Œ
  • Guest OS๊ฐ€ ์—†๊ณ  Host OS์˜ ์ปค๋„์„ ๊ณต์œ ํ•˜์—ฌ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ ๊ณ  ๊ฐ€๋ฒผ์›Œ ๋น ๋ฅด๋‹ค
    • OS ์‹คํ–‰ ์—†์ด ๋ณ„๋„์˜ ํ™˜๊ฒฝ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰์ด ๊ฐ€๋Šฅ
  • ์ด์‹์„ฑ๊ณผ ํ™•์žฅ์„ฑ์ด ๋†’๋‹ค.

๊ฐ€์ƒํ™” ๊ธฐ์ˆ ๊ณผ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ ์€ ๋น„์Šทํ•˜๋ฉด์„œ๋„ ๋‹ค๋ฅด๋‹ค. ์–ด๋Š ํ•˜๋‚˜๊ฐ€ ๋” ์ข‹๋‹ค ๋‚˜์˜๋‹ค๋ผ๊ณ  ์ •์˜ํ•˜๊ธฐ๋ณด๋‹ค๋Š” ๊ฐ๊ฐ ๋ชฉ์ ์— ๋งž๊ฒŒ ๋‹ค๋ฅด๊ฒŒ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค.

Docker๋ž€?

Docker๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ•„์š”ํ•œ ํ™˜๊ฒฝ์„ ์‹ ์†ํ•˜๊ฒŒ ๊ตฌ์ถ•ํ•˜๊ณ  ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ”Œ๋žซํผ ์ž…๋‹ˆ๋‹ค.

๋ฌด๋ฃŒ๋กœ ์ œ๊ณตํ•ด์ฃผ๋Š” CE(Community Edition)๊ณผ EE(Enterprise Edition)์œผ๋กœ ๋‚˜๋‰˜๊ณ  ์•„๋ž˜์™€ ๊ฐ™์€ ํ”Œ๋žซํผ๋“ค์—์„œ ์ž‘๋™ ๊ฐ€๋Šฅํ•˜๋‹ค.

  • Linux
    • Ubuntu
    • CentOS
    • Debian
  • Cloud
    • Azure
    • AWS
  • Windows10
  • MacOS
  • ETC

๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ํ™˜๊ฒฝ์—์„œ ๋ชจ๋‘ ๊ตฌ๋™ ๊ฐ€๋Šฅํ•˜๋‹ค.

โ€ป Docker๊ฐ€ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ ์„ ๋งŒ๋“  ๊ฒƒ์ด๋ผ๊ณ  ํ—ท๊ฐˆ๋ คํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ ์„ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ธฐ์ˆ ์ด๊ณ  Docker๋Š” ์ด ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“  ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.

Docker ์ด๋ฏธ์ง€

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

๋‹จ์ˆœํžˆ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋งŒ ์ด๋ฏธ์ง€ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด์„œ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ… Database๋‚˜ WEB/WAS ์ฒ˜๋Ÿผ ๋ฏธ๋“ค์›จ์–ด๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ๋“ค ํ˜น์€ ๋‹ค๋ฅธ OS ํ™˜๊ฒฝ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ด๋ฏธ์ง€๊ฐ€ Docker ์ด๋ฏธ์ง€ Repository(Ex. Docker Hub)์— ๋ฐฐํฌ๋˜์–ด ์žˆ์–ด ๋ฐ›์•„์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

  • Oracle ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์•„์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  DB๋กœ ํ™œ์šฉ
  • Java, Apache/Tomcat์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š” ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์•„์„œ ๊ทธ ์œ„์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์˜ฌ๋ฆฌ๊ณ  ์žฌ๋ฐฐํฌ
  • Windows OS์—์„œ CentOS ์šด์˜์ฒด์ œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด CentOS ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์•„์„œ ์‚ฌ์šฉ

๊ฐœ๋ฐœ๊ณผ ๋ฐฐํฌ์˜ ํ๋ฆ„

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

Legacy

์‹ค์ œ๋กœ ์ด๋ ‡๊ฒŒ ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ณณ์€ ์—†๊ฒ ์ง€๋งŒ… ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ์กฐ๊ธˆ ๊ทน๋‹จ์ ์ธ ์˜ˆ์‹œ๋ฅผ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” Legacy ํ™˜๊ฒฝ์—์„œ ๊ฐœ๋ฐœ ๋ถ€ํ„ฐ ๋ฐฐํฌ์˜ ํ๋ฆ„์ž…๋‹ˆ๋‹ค.

  1. ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ์ธ PC์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ณ  Repository์— ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.
  2. Repositorty์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐ›์•„ ํ…Œ์ŠคํŠธํ™˜๊ฒฝ์—์„œ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.
  3. Repository์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐ›์•„ ์Šคํ…Œ์ด์ง•ํ™˜๊ฒฝ์—์„œ ์„œ๋น„์Šค๋ฅผ ๊ตฌ๋™ํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.
    1. ์Šคํ…Œ์ด์ง• ํ™˜๊ฒฝ์€ ์‹คํ™˜๊ฒฝ๊ณผ ๋˜‘๊ฐ™์ง€๋งŒ ๊ทœ๋ชจ๊ฐ€ ์ž‘์€ ํ™˜๊ฒฝ์œผ๋กœ ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  4. ์‹คํ™˜๊ฒฝ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

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

  • ๋ฌด๊ฒ๋‹ค.
  • ์ด์‹๊ณผ ํ™•์žฅ์— ๋ถˆ๋ฆฌํ•˜๋‹ค.
  • ๊ด€๋ฆฌ๊ฐ€ ๋ณต์žกํ•˜๋‹ค. ๋“ฑ

Containerized Applications(Docker)

Docker๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜๋‹ค๋Š” ๊ฒƒ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ค์„ ์ปจํ…Œ์ด๋„ˆํ™”(Containerizing)ํ–ˆ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

  1. ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ์ธ PC์—์„œ Docker ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•ด์„œ Repository์— ๋ฐฐํฌํ•œ๋‹ค.
  2. ํ…Œ์ŠคํŠธ, ์Šคํ…Œ์ด์ง•, ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์— Docker ํ”„๋กœ๊ทธ๋žจ๋งŒ ์„ค์น˜ํ•˜๊ณ  ๋ฐฐํฌ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์•„ ์‹คํ–‰ ํ›„ ํ…Œ์ŠคํŠธํ•œ๋‹ค.
    1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ•„์š”ํ•œ ๋ฏธ๋“ค์›จ์–ด๋„ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋ฐ›์•„์„œ ์‚ฌ์šฉํ•œ๋‹ค.
    2. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ•„์š”ํ•œ ๋ชจ๋“  ์š”์†Œ๋“ค์„ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋ฐ›๊ณ  Docker-compose, Docker Swarm, Kubernetes ๋“ฑ์„ ์ด์šฉํ•ด์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

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

๋”๋ถˆ์–ด ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•œ ๊ด€๋ฆฌ๋ฅผ Dockerfile, docker-compose๋‚˜ ๋” ๋‚˜์•„๊ฐ€ kubernetes๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ธํ”„๋ผ๊ฐ€ ์ฝ”๋“œํ™”๋˜์–ด ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํŽธํ•œ๋ฐ Docker๊ฐ€ ์ธ๊ธฐ ์—†์„ ์ด์œ ๊ฐ€ ์—†๋‹ค.

Docker ์ž‘๋™ ์›๋ฆฌ

์ง€๊ธˆ๊นŒ์ง€์˜ Docker์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ๋ดค์„ ๋•Œ…

  • ์˜์กด์„ฑ์„ ์ œ๊ฑฐํ•˜๊ณ  ๋…ผ๋ฆฌ์ ์ธ ๊ณต๊ฐ„์œผ๋กœ ๋ถ„๋ฆฌ๊ฐ€ ๋œ๋‹ค.
  • ์ด์‹์„ฑ๊ณผ ํ™•์žฅ์„ฑ์ด ์ข‹๋‹ค.
  • ๊ฐœ๋ฐœ๊ณผ ๋ฐฐํฌ๊ฐ€ ๋น ๋ฅด๋‹ค. ์™€ ๊ฐ™์€ ์žฅ์ ๋“ค์„ ๋ณด์—ฌ๋“œ๋ ธ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ด๊ฒŒ ์–ด๋–ป๊ฒŒ ๊ฐ€๋Šฅํ• ๊นŒ์š”?

Docker๋Š” ๋ฆฌ๋ˆ…์Šค ์ปค๋„์˜ ๊ธฐ์ˆ ์ด ๊ธฐ๋ฐ˜๋˜๊ณ  ์žˆ๋‹ค.

Container Namespace

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

  • PID(Process ID)
  • UID(User ID)
  • Network
  • mount(file system mount)
  • UTS(hostname)
  • IPC(ํ”„๋กœ์„ธ์Šค๊ฐ„์˜ ํ†ต์‹ )

์ด๋ ‡๊ฒŒ namespace๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Host OS๋‚˜ ๋‹ค๋ฅธ ์ปจํ…Œ์ด๋„ˆ์™€ ๊ฐ™์€ PID๋ฅผ ๊ฐ–๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋„์šฐ๊ฑฐ๋‚˜ ๊ฐ™์€ ํฌํŠธ์— ์„œ๋น„์Šค๋ฅผ ๋„์šฐ๋Š” ์ž‘์—…๋“ค์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ Windows 10 ํ™˜๊ฒฝ์—์„œ๋Š” ์–ด๋–จ๊นŒ์š”?

Docker๋Š” namespace ์ฒ˜๋Ÿผ ๋ฆฌ๋ˆ…์Šค ์ปค๋„์˜ ๊ธฐ์ˆ ์„ ๊ธฐ๋ฐ˜์œผ๋กœํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์–ด๋–ป๊ฒŒ Windows์—์„œ Docker๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ์ผ๊นŒ์š”?

  • Windows์—์„œ Docker๋Š” Hyper-V๋ฅผ ์ด์šฉํ•œ Linux VM์— Docker๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฒฐ๊ตญ์€ Linux์—์„œ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค.
  • Hyper-V๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด VMWare, Virtualbox์™€ ๊ฐ™์€ ๊ฐ€์ƒํ™” ํˆด์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ

Docker์—์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋…ผ๋ฆฌ์ ์ธ namespace๋ฅผ ๊ฐ–์ง€๋งŒ… ๊ฒฐ๊ตญ Host OS์˜ ๋ฌผ๋ฆฌ์ ์ธ ๋ฆฌ์†Œ์Šค๋Š” ๊ณต์œ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋ฆฌ๋ˆ…์Šค ์ปค๋„์˜ cgroups๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์•„๋ž˜ ๋ฆฌ์†Œ์Šค๋“ค์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค.

  • CPU
  • Memory
  • Network
  • I/O

cgroups๋Š” ํ”„๋กœ์„ธ์Šค์™€ ์“ฐ๋ ˆ๋“œ๋ฅผ ๊ทธ๋ฃนํ™”ํ•ด์„œ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ์ด๋‹ค. ์ด๋Ÿฐ ์ œ์–ด๋Š” ๊ผญ ํ•„์š”ํ•œ ๋ถ€๋ถ„์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํŠน์ • ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ชจ๋“  ์ž์›์„ ์‚ฌ์šฉํ•ด๋ฒ„๋ ค ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ๋ฌธ์ œ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋ฉด ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ œํ•œ์„ ๋‘˜ ์ˆ˜ ์žˆ๋‹ค.

๋Œ“๊ธ€