Skip to main content

01. Docker

Less than 1 minuteDevOpsDockercrashcoursepyrasis.comdockerdevops

01. Docker ๊ด€๋ จ

๋ชฉ์ฐจ

์–ธ์ œ๋‚˜ ์ตœ์‹  Docker

01. Docker
์–ธ์ œ๋‚˜ ์ตœ์‹  Docker

Docker๋Š” 2013๋…„ 3์›” Docker, Inc(๊ตฌ dotCloud)์—์„œ ์ถœ์‹œํ•œ ์˜คํ”ˆ ์†Œ์Šค ์ปจํ…Œ์ด๋„ˆ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ์ „ ์„ธ๊ณ„์ ์œผ๋กœ ํฐ ์ธ๊ธฐ๋ฅผ ๋Œ๊ณ  ์žˆ์œผ๋ฉฐ ์ปจํ…Œ์ด๋„ˆ ๋ถ„์•ผ์—์„œ ์‚ฌ์‹ค์ƒ ํ‘œ์ค€์œผ๋กœ ์ž๋ฆฌ์žก์•˜์Šต๋‹ˆ๋‹ค.

2010๋…„์„ ๋„˜์–ด์„œ๋ฉด์„œ ์„œ๋ฒ„ ์‹œ์žฅ์€ ๊ธ‰์†ํžˆ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์œผ๋กœ ์˜ฎ๊ฒจ๊ฐ”์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋‹ค ๋ณด๋‹ˆ ๋ฌผ๋ฆฌ์ ์ธ ์„œ๋ฒ„๋ฅผ ๊ตฌ์ž…ํ•˜๊ธฐ ๋ณด๋‹ค๋Š” ์‚ฌ์šฉ ์š”๊ธˆ๋งŒ ๋‚ด๊ณ  ๊ฐ€์ƒ ์„œ๋ฒ„๋ฅผ ๋นŒ๋ ค ์“ฐ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๋ฌผ๋ฆฌ์ ์ธ ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•˜๋ ค๋ฉด ์„œ๋ฒ„ ๊ตฌ์ž…๊ณผ ์„ค์น˜์— ์ƒ๋‹นํ•œ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ๋Š” 1๋Œ€๊ฐ€ ๋˜์—ˆ๋“  1,000๋Œ€๊ฐ€ ๋˜์—ˆ๋“  ํด๋ฆญ ๋ช‡ ๋ฒˆ ๋งŒ์œผ๋กœ ๊ฐ€์ƒ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์–ด๋‚ผ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

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

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

ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์—์„œ ์„œ๋ฒ„๋ฅผ ์“ฐ๊ณ  ๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, Immutable Infrastructure๋„ ์„œ๋น„์Šค ์šด์˜ ํ™˜๊ฒฝ ์ด๋ฏธ์ง€๋ฅผ ํ•œ ๋ฒˆ ์“ฐ๊ณ  ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค.
ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์—์„œ ์„œ๋ฒ„๋ฅผ ์“ฐ๊ณ  ๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, Immutable Infrastructure๋„ ์„œ๋น„์Šค ์šด์˜ ํ™˜๊ฒฝ ์ด๋ฏธ์ง€๋ฅผ ํ•œ ๋ฒˆ ์“ฐ๊ณ  ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค.

Immutable Infrastructure๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํŽธ๋ฆฌํ•œ ๊ด€๋ฆฌ: ์„œ๋น„์Šค ์šด์˜ ํ™˜๊ฒฝ์„ ์ด๋ฏธ์ง€๋กœ ์ƒ์„ฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ์ง€ ์ž์ฒด๋งŒ ๊ด€๋ฆฌํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ์ด๋ฏธ์ง€๋ฅผ ์ค‘์•™ ๊ด€๋ฆฌํ•˜์—ฌ ์ฒด๊ณ„์ ์ธ ๋ฐฐํฌ์™€ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ด๋ฏธ์ง€ ์ƒ์„ฑ ์„ค์ •๋„ ํŒŒ์ผ๋กœ ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ™•์žฅ: ์ด๋ฏธ์ง€ ํ•˜๋‚˜๋กœ ์„œ๋ฒ„๋ฅผ ๊ณ„์† ์ฐ์–ด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์˜ ์ž๋™ ํ™•์žฅ(Auto Scaling) ๊ธฐ๋Šฅ๊ณผ ์—ฐ๋™ํ•˜๋ฉด ์†์‰ฝ๊ฒŒ ์„œ๋น„์Šค๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ…Œ์ŠคํŠธ: ๊ฐœ๋ฐœ์ž์˜ PC๋‚˜ ํ…Œ์ŠคํŠธ ์„œ๋ฒ„์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ์„œ๋น„์Šค ์šด์˜ ํ™˜๊ฒฝ๊ณผ ๋™์ผํ•œ ํ™˜๊ฒฝ์ด ๊ตฌ์„ฑ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํ…Œ์ŠคํŠธ๊ฐ€ ๋งค์šฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ€๋ณ๋‹ค: ์šด์˜์ฒด์ œ์™€ ์„œ๋น„์Šค ์šด์˜ ํ™˜๊ฒฝ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ฐ€๋ณ๊ณ (Lightweight) ์–ด๋””์„œ๋“  ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ(Portable) ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ์—์„œ๋Š” Immutable Infrastructure๋ฅผ ๊ตฌํ˜„ํ•œ ํ”„๋กœ์ ํŠธ์ธ Docker๋ฅผ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค.

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

Docker ๋กœ๊ณ 
Docker ๋กœ๊ณ 

์ปจํ…Œ์ด๋„ˆ์— ๋ฌผ๊ฑด์„ ์‹ฃ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์„œ๋น„์Šค ์šด์˜์— ํ•„์š”ํ•œ ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋ชจ์•„ Docker ์ปจํ…Œ์ด๋„ˆ์— ๋„ฃ์Šต๋‹ˆ๋‹ค. ์ž์ฃผ ์“ฐ์ด๋Š” ์˜คํ”ˆ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋ฌผ๋ก ์ด๊ณ , ์ง์ ‘ ๋งŒ๋“  ํ”„๋กœ๊ทธ๋žจ๋„ ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Docker ์ปจํ…Œ์ด๋„ˆ
Docker ์ปจํ…Œ์ด๋„ˆ
1์žฅ - 1. ๊ฐ€์ƒ ๋จธ์‹ ๊ณผ Docker

์–ธ์ œ๋‚˜ ์ตœ์‹  Docker
1์žฅ - 2. Docker ์ด๋ฏธ์ง€์™€ ์ปจํ…Œ์ด๋„ˆ

์–ธ์ œ๋‚˜ ์ตœ์‹  Docker

์ด์ฐฌํฌ (MarkiiimarK)
Never Stop Learning.