Docker๋ž€๐Ÿฌ

wondiยท2025๋…„ 2์›” 3์ผ

์ธํ”„๋ผ๊ตฌ์ถ•/CI&CD

๋ชฉ๋ก ๋ณด๊ธฐ
9/10

๐Ÿฌ Docker๋ž€?

๋„์ปค๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ปจํ…Œ์ด๋„ˆ(Container) ๋‹จ์œ„๋กœ ํŒจํ‚ค์ง•ํ•˜์—ฌ ๋ฐฐํฌํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์˜คํ”ˆ์†Œ์Šค ํ”Œ๋žซํผ์ด๋‹ค.
์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ์šด์˜ ํ™˜๊ฒฝ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ธ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

๋„์ปค์˜ ์žฅ์ 

  • ๊ฐ€๋ฒผ์›€ : VM๋ณด๋‹ค ๋น ๋ฅด๊ณ  ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ์ด ์ ์Œ
  • ์ด์‹์„ฑ : ์–ด๋–ค ํ™˜๊ฒฝ์—๋„ ๋™์ผํ•œ ์‹คํ–‰ ํ™˜๊ฒฝ ๋ณด์žฅ
  • ํ™•์žฅ์„ฑ : ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•˜๊ณ  ๋ฐฐํฌ ๊ฐ€๋Šฅ
  • ์ž๋™ํ™” : CI/CD ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ํ†ตํ•ฉํ•˜์—ฌ ๋ฐฐํฌ ์ž๋™ํ™” ๊ฐ€๋Šฅ

์ปจํ…Œ์ด๋„ˆ์™€ VM ๋น„๊ต

๋„์ปค๋Š” ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์˜ ํ•œ ํ˜•ํƒœ์ง€๋งŒ, ๊ธฐ์กด์˜ ๊ฐ€์ƒ๋จธ์‹ (VM)๊ณผ๋Š” ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.

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

์ด๋ฏธ์ง€์™€ ์ปจํ…Œ์ด๋„ˆ ๊ฐœ๋…


๐Ÿ™๏ธ ์ด๋ฏธ์ง€

์ด๋ฏธ์ง€๋Š” ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ชจ๋“  ํŒŒ์ผ๊ณผ ์„ค์ •์„ ํฌํ•จํ•œ ๋ถˆ๋ณ€ํ•œ ํŒจํ‚ค์ง€๋‹ค.
์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์„ค๊ณ„๋„์ด๋‹ค.

  • Dockerfile์„ ์‚ฌ์šฉํ•ด ์ง์ ‘ ์ปค์Šคํ…€ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ
  • ์ด๋ฏธ์ง€๋Š” Docker Hub์—๋„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Œ

๐ŸŒŒ ์ปจํ…Œ์ด๋„ˆ

์ปจํ…Œ์ด๋„ˆ๋Š” ์ด๋ฏธ์ง€๋ฅผ ์‹คํ–‰ํ•œ ์‹คํ–‰ ์ค‘ ํ”„๋กœ์„ธ์Šค๋‹ค.
์ฆ‰, ์ด๋ฏธ์ง€๋Š” ์ •์  ํŒŒ์ผ์ด๊ณ , ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ทธ ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๋…๋ฆฝ์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ™˜๊ฒฝ์ด๋‹ค.

  • nginx ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์‹ค์ œ ์›น์„œ๋ฒ„๊ฐ€ ๋™์ž‘ํ•จ

์ด๋ฏธ์ง€์™€ ์ปจํ…Œ์ด๋„ˆ์˜ ๊ด€๊ณ„

  • ์ด๋ฏธ์ง€๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํƒฌํ”Œ๋ฆฟ ์—ญํ• ์„ ํ•œ๋‹ค.
  • ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ด๋ฏธ์ง€๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์ง€๋งŒ, ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์‹คํ–‰๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•˜๋‹ค.

์ •๋ฆฌ

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

profile
Developer Wondi

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