thals0 / TIL

๐Ÿ“š ํ•˜๋ฃจ๋™์•ˆ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ๊ธฐ๋กํ•˜๋Š” ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค.
0 stars 0 forks source link

Docker ๐Ÿณ #22

Closed thals0 closed 1 year ago

thals0 commented 1 year ago

docker

๋„์ปค๊ฐ€ ํƒ„์ƒํ•œ ๋ฐฐ๊ฒฝ

๊ธฐ์กด, ๋กœ์ปฌ์—์„œ ๊ฐœ๋ฐœํ•ด์„œ ์‹ค ์„œ๋ฒ„์— ์˜ฌ๋ฆด ๋•Œ ์†Œ์ŠคํŒŒ์ผ๋งŒ ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์œผ๋กœ๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. js๋ฅผ ์˜ˆ๋กœ ๋“ ๋‹ค๋ฉด, js์†Œ์Šค ํŒŒ์ผ์„ ๊ตฌ๋™ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” npm, node.js, ๊ฐ์ข… Dependencies๋“ฑ ์„ ์„ค์ •ํ•ด ์ค˜์•ผํ•œ๋‹ค. ๊ฐœ๋ฐœ์ž์˜ PC๋งˆ๋‹ค, ์„œ๋ฒ„๋งˆ๋‹ค ์ด ๋ชจ๋“ ๊ฒƒ๋“ค์„ ์„ค์น˜ํ•˜๋Š”๊ฒƒ์€ ๋ฒˆ๊ฑฐ๋กญ๊ธฐ๋„ ํ•˜๊ณ , ์˜ค๋ฅ˜์˜ ๋ฐœ์ƒ์˜ ์›์ธ์ด ๋˜๊ณค ํ•œ๋‹ค.

image

๋‚ด ์„œ๋ฒ„์— node.js๊ฐ€ ์žˆ๊ณ  ์„œ๋ฒ„์—๋„ node.js๊ฐ€ ์žˆ์œผ๋‹ˆ ๋‚ด ์„œ๋ฒ„์—์„œ ๊ฐœ๋ฐœํ•œ js ํŒŒ์ผ์„ ์„œ๋ฒ„์— ๋ฐฐํฌํ•˜๋ฉด ์ž๋™์œผ๋กœ ๋™์ž‘ํ•˜๊ฒ ์ง€? -> ๋ฐฐํฌ -> ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ!! -> ๋‚ด PC์—์„  ์ž˜๋˜๋Š”๋ฐ ์„œ๋ฒ„์—์„  ์™œ ์•ˆ๋ผ!!! -> node.js์˜ ๋ฒ„์ „์ด ๋งž์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒ

์ด๋Ÿฌํ•œ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Docker๊ฐ€ ํƒ„์ƒ!

๋„์ปค๋ž€ ?

์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํŒจํ‚ค์ง• ํ•  ์ˆ˜ ์žˆ๋Š” ํˆด

image

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

์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ตฌ๋™ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ๋“ค์„ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์— ๋‹ด์•„ ์ €์žฅ ํ•œ ํ›„,

์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ๋™ํ•˜๊ณ  ์‹ถ์€ ์„œ๋ฒ„์— ํ•ด๋‹น ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค์šด๋ฐ›๋Š”๋‹ค๋ฉด, ์–ด๋–ค PC์—์„œ๋„ ๋™์ผํ•˜๊ฒŒ ๊ตฌ๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.

image
  1. ๋‚ด PC์—์„œ๋Š” ๋˜๋Š”๋ฐ ์™œ ์„œ๋ฒ„์—์„œ๋Š” ์•ˆ๋ ๊นŒ?
  2. ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ๋™ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ด๊ฒƒ ์ €๊ฒƒ๋“ค์„ ์„ค์ •ํ•˜๊ณ  ์ค€๋น„ํ•ด์•ผํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€ ์„ ํ•ด๊ฒฐํ•ด์ฃผ๋Š” ์ •๋ง ์œ ์šฉํ•œ ํŒจํ‚ค์ง• ํˆด์ด๋‹ค.
thals0 commented 1 year ago

Container vs VM

image image

(์ขŒ) VM, (์šฐ) Docker

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

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

thals0 commented 1 year ago

์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•

image

์ปจํ…Œ์ด๋„ˆ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด ์„ธ๊ฐ€์ง€๊ฐ€ ํ•„์š” : ๋„์ปคํŒŒ์ผ, ์ด๋ฏธ์ง€, ์ปจํ…Œ์ด๋„ˆ ๋„์ปคํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์„œ ์ด๊ฑธ๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค๊ณ  ๋งŒ๋“ค์–ด์ง„ ์ด๋ฏธ์ง€๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ตฌ๋™ ํ•  ์ˆ˜ ์žˆ๋‹ค.

  1. Dockerfile : ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์„ค๋ช…์„œ. ์•„๋ž˜์™€ ๊ฐ™์€ ๋‚ด์šฉ์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค.

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

  3. Container : Image๋ฅผ ๊ณ ๋ฆฝ๋œ ํ™˜๊ฒฝ์—์„œ ๊ฐœ๋ณ„์ ์ธ ์‹œ์Šคํ…œ ์•ˆ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„ container ์•ˆ์—์„œ image๋ฅผ ์ด์šฉํ•ด ์šฐ๋ฆฌ์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ตฌ๋™ํ•œ๋‹ค.

thals0 commented 1 year ago

๋„์ปค ์ด๋ฏธ์ง€ ๋ฐฐํฌ ๊ณผ์ •

์–ด๋–ป๊ฒŒ container๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‚˜?(์–ด๋–ป๊ฒŒ Image๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‚˜?) ๊นƒ๊ณผ ๊นƒํ—ˆ๋ธŒ๋ฅผ ์‚ฌ์šฉํ•ด๋ดค๋‹ค๋ฉด ์ต์ˆ™ ํ•  ๊ฒƒ์ด๋‹ค

image

  1. ๋‚ด ๋กœ์ปฌ์—์„œ ๋งŒ๋“  ์ด๋ฏธ์ง€๋ฅผ Container Registry์— Push
  2. ์„œ๋ฒ„๋Š” Container Registry์—์„œ ์ด๋ฏธ์ง€๋ฅผ Pull ๋กœ ๋‹น๊ฒจ์™€์„œ ์‚ฌ์šฉํ•œ๋‹ค.
  3. ์„œ๋ฒ„์—๋Š” Docker ์„ค์น˜ ํ•„์ˆ˜!

๋„์ปค ๊ณต์œ  ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ

image

๋„์ปค๋Š” public๊ณผ private์ด ์žˆ๋‹ค. ๊ฐœ์ธ ์‚ฌ์šฉ์ž๋“ค์€ docker hub๋ฅผ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ ํšŒ์‚ฌ์—์„œ๋Š” privateํ•œ docker๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, aws๋‚˜ google Cloud๋“ฑ์—์„œ docker ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค.

thals0 commented 1 year ago

์ด ์ •๋ฆฌ

image

  1. ์‚ฌ์šฉ์ž๋Š” Local์— Docker๋ฅผ ์„ค์น˜ํ•œ ํ›„ Dockerfile์„ ๋งŒ๋“ ๋‹ค.
  2. Dockerfile์„ build ์‹œ์ผœ Image๋กœ ๋งŒ๋“ ๋‹ค.
  3. ๋งŒ๋“  Image๋ฅผ Container Registry์— Push
  4. ์‹ค์„œ๋ฒ„์— Docker๋ฅผ ์„ค์น˜ ํ•œ ํ›„ Container Registry์—์„œ Image๋ฅผ Pull ํ•œ๋‹ค.
  5. Docker์—์„œ Image๋ฅผ run ํ•œ๋‹ค.

Reference