๊ด€๋ฆฌ ๋ฉ”๋‰ด

Unfazedโ—๏ธ๐ŸŽฏ

[Docker] ์ด๋ฏธ์ง€, ์ปจํ…Œ์ด๋„ˆ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋… ๋ฐ ์‹คํ–‰ ๊ณผ์ • ๋ณธ๋ฌธ

Docker

[Docker] ์ด๋ฏธ์ง€, ์ปจํ…Œ์ด๋„ˆ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋… ๋ฐ ์‹คํ–‰ ๊ณผ์ •

9taetae9 2025. 4. 7. 14:06
728x90

Docker ์ด๋ฏธ์ง€

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์ข…์†์„ฑ, ์„ค์ • ํŒŒ์ผ ๋“ฑ์„ ํฌํ•จํ•œ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ์Šค๋ƒ…์ƒท
  • ๋‹จ์ˆœํ•œ ์ •์  ํŒŒ์ผ ๋ชจ์Œ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, Dockerfile์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋นŒ๋“œ๋œ ๋ถˆ๋ณ€(immutable)์ธ ์ฒญ์‚ฌ์ง„
  • ์ฝ๊ธฐ ์ „์šฉ(read-only)์ธ ์—ฌ๋Ÿฌ ๋ ˆ์ด์–ด๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๊ฐ ๋ ˆ์ด์–ด๋Š” ์ด์ „ ๋ ˆ์ด์–ด ์œ„์— ์Œ“์ด๋Š” ํ˜•ํƒœ๋กœ ์ด๋ฏธ์ง€์˜ ๋ณ€๊ฒฝ ๋‚ด์—ญ์„ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Œ

Docker ์ปจํ…Œ์ด๋„ˆ

  • ์ด๋ฏธ์ง€์˜ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ธ์Šคํ„ด์Šค
  • ์ด๋ฏธ์ง€ ์œ„์— ์ฝ๊ธฐ-์“ฐ๊ธฐ ๋ ˆ์ด์–ด๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ƒ์„ฑ
  • ๋ฆฌ๋ˆ…์Šค ๋„ค์ž„์ŠคํŽ˜์ด์Šค์™€ cgroups ๊ฐ™์€ ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•ด ํ”„๋กœ์„ธ์Šค ๊ฒฉ๋ฆฌ ๋ฐ ์ž์› ํ• ๋‹น์„ ๊ด€๋ฆฌ
  • ์ปจํ…Œ์ด๋„ˆ์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋Š” ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ ๋‚ด์—์„œ ์‹คํ–‰๋˜๋Š” ์ฃผ ํ”„๋กœ์„ธ์Šค(PID 1)์˜ ์ƒํƒœ์— ๋”ฐ๋ผ ๊ฒฐ์ •๋จ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

  • ์ปจํ…Œ์ด๋„ˆ ๋‚ด์—์„œ ์‹คํ–‰๋˜๋Š” ์‹ค์ œ ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ๊ทธ๋žจ
  • MySQL, Nginx, Node.js ์•ฑ ๋“ฑ
  • ์ปจํ…Œ์ด๋„ˆ์˜ ์ฃผ ํ”„๋กœ์„ธ์Šค(PID 1)๋กœ ์‹คํ–‰

์‹ค์ œ ์‹คํ–‰ ํ๋ฆ„

Docker๋กœ MySQL ์‹คํ–‰ ์‹œ ๊ณผ์ • (docker run)

  1. ์ด๋ฏธ์ง€ ์ค€๋น„: MySQL ์ด๋ฏธ์ง€๋Š” MySQL ์„œ๋ฒ„ ๋ฐ”์ด๋„ˆ๋ฆฌ, ์„ค์ • ํŒŒ์ผ, ์ข…์†์„ฑ์„ ํฌํ•จํ•œ๋‹ค.
  2. ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ: ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒฉ๋ฆฌ๋œ ์‹คํ–‰ ํ™˜๊ฒฝ์ด ์„ค์ •๋œ๋‹ค.
  3. ์—”ํŠธ๋ฆฌํฌ์ธํŠธ ์‹คํ–‰: ์ปจํ…Œ์ด๋„ˆ๋Š” ์ด๋ฏธ์ง€์— ์ •์˜๋œ ์‹œ์ž‘ ๋ช…๋ น(Dockerfile์— ๋ช…์‹œ๋œ ์—”ํŠธ๋ฆฌํฌ์ธํŠธ)์„ ์‹คํ–‰ํ•œ๋‹ค.
  4. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹œ์ž‘: ์ด ์—”ํŠธ๋ฆฌํฌ์ธํŠธ๊ฐ€ MySQL ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค.
  5. ์‹คํ–‰ ์œ ์ง€: MySQL ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๋Š” ํ•œ ์ปจํ…Œ์ด๋„ˆ๋„ ๊ณ„์† ์‹คํ–‰๋œ๋‹ค.

์œ„์˜ ์šฉ์–ด ์ •๋ฆฌ์™€ ์‹คํ–‰ ๊ณผ์ •์„ ๊ฐ„๋‹จํžˆ ํ•œ๋ฌธ์žฅ์œผ๋กœ ์ •๋ฆฌํ•ด๋ณด๋ฉด

MySQL ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์ปจํ…Œ์ด๋„ˆ ๋‚ด์—์„œ MySQL ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋œ๋‹ค๊ณ  ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋” ์ƒ์„ธํžˆ ํ‘œํ˜„ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

MySQL ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ์„ฑ๋œ ์ปจํ…Œ์ด๋„ˆ๋Š”, Dockerfile์— ์ •์˜๋œ ์—”ํŠธ๋ฆฌํฌ์ธํŠธ๋ฅผ ํ†ตํ•ด ์ฝ๊ธฐ-์“ฐ๊ธฐ ๋ ˆ์ด์–ด๊ฐ€ ์ถ”๊ฐ€๋œ ๋ถˆ๋ณ€์˜ ์ด๋ฏธ์ง€๋ฅผ ์‹คํ–‰ํ•˜๋ฉฐ, ๋ฆฌ๋ˆ…์Šค ๋„ค์ž„์ŠคํŽ˜์ด์Šค์™€ cgroups๋ฅผ ํ†ตํ•œ ๊ฒฉ๋ฆฌ๋œ ํ™˜๊ฒฝ์—์„œ MySQL ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค(PID 1)๋ฅผ ๊ตฌ๋™ํ•˜๊ณ , ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์œ ์ง€๋œ๋‹ค. 

728x90