Study: DeveloperTools(DevTool)/DevTool: Container

[Docker] ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ํŒŒ์ผ์— ์ ‘๊ทผํ•˜๋Š” 4๊ฐ€์ง€ ๋ฐฉ๋ฒ•

DrawingProcess 2022. 12. 20. 11:42
๋ฐ˜์‘ํ˜•
๐Ÿ’ก ๋ณธ ๋ฌธ์„œ๋Š” '์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ํŒŒ์ผ ์ ‘๊ทผ ๋ฐฉ๋ฒ•'์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋†“์€ ๊ธ€์ž…๋‹ˆ๋‹ค.
์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ–ˆ๊ฑฐ๋‚˜ ์‹คํ–‰ํ• ๋•Œ, ์ปจํ…Œ์ด๋„ˆ์˜ ๋‚ด๋ถ€ ํŒŒ์ผ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•˜์˜€์œผ๋‹ˆ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

1. ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ํŒŒ์ผ ์ ‘๊ทผ ๋ฐฉ๋ฒ•

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

1.1 docker cp

  • docker cp <ํ˜ธ์ŠคํŠธ ๊ฒฝ๋กœ> <์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„>:<์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ๊ฒฝ๋กœ> ํ˜•์‹์œผ๋กœ ํ˜ธ์ŠคํŠธ์— ์œ„์น˜ํ•œ ํŒŒ์ผ์„ ๊ตฌ๋™ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ๋ณต์‚ฌ
  • ์ปจํ…Œ์ด๋„ˆ์— ์ž„์‹œ๋กœ ํ•„์š”ํ•œ ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋‹จํŽธ์ ์œผ๋กœ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ
  • ์ปจํ…Œ์ด๋„ˆ์— ์ €์žฅ๋ผ์žˆ๋Š” ์„ค์ • ๋ฐ ๋กœ๊ทธ๋ฅผ ์ถ”์ถœํ•ด ํ™•์ธํ•˜๋Š” ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ

1.2 Dockerfile ADD

  • ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•  ๋•Œ Dockerfile ๋‚ด๋ถ€์˜ ADD๋ผ๋Š” ๊ตฌ๋ฌธ์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€๋กœ ๋ณต์‚ฌํ•  ํŒŒ์ผ์„ ์ง€์ •ํ•˜๋ฉด ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•  ๋•Œ ์ง€์ •ํ•œ ํŒŒ์ผ์ด ์ด๋ฏธ์ง€ ๋‚ด๋ถ€๋กœ ๋ณต์‚ฌ๋จ
  • ์ดํ›„ ํ•ด๋‹น ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ๋™ํ•œ ์ปจํ…Œ์ด๋„ˆ์—์„œ๋Š” ๋ณต์‚ฌํ•œ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

1.3 ๋ฐ”์ธ๋“œ ๋งˆ์šดํŠธ

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

1.4 ๋ณผ๋ฅจ

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

์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์ด 4๊ฐ€์ง€๊ฐ€ ์žˆ์ง€๋งŒ, ํ˜„์žฌ ์›น ํŽ˜์ด์ง€๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์˜ค๋žซ๋™์•ˆ ๊ณ ์ •๋œ ๋‚ด์šฉ์„ ๊ฐ ์‚ฌ์šฉ์ž๋งˆ๋‹ค ๋‹ค๋ฅด๊ฒŒ ์ทจํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” '๋ฐ”์ธ๋“œ ๋งˆ์šดํŠธ' ๋˜๋Š” '๋ณผ๋ฅจ'์ด ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

2. ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์™ธ๋ถ€ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

๊ตฌ๋ถ„ docker cp Dockerfile ADD ๋ฐ”์ธ๋“œ ๋งˆ์šดํŠธ ๋ณผ๋ฅจ
์ปจํ…Œ์ด๋„ˆ ์ ์šฉ ๊ตฌ๋™ ์ค‘ ๋ณต์‚ฌ ์ด๋ฏธ์ง€ ์ƒ์„ฑ์‹œ ๋ณต์‚ฌ ๊ตฌ๋™์‹œ ๋””๋ ‰ํ„ฐ๋ฆฌ ์—ฐ๊ฒฐ ๊ตฌ๋™์‹œ ๋„์ปค์˜ ๋ณผ๋ฅจ
ํŒŒ์ผ ๋ณด๊ด€ ์œ„์น˜ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ํ˜ธ์ŠคํŠธ(๋“œ๋ ‰ํ† ๋ฆฌ) ํ˜ธ์ŠคํŠธ(๋„์ปค ๋ณผ๋ฅจ)
์ฃผ ํ™œ์šฉ ์šฉ๋„ ์ž„์‹œ ํŒŒ์ผ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ ์‹œ ํ•„์š”ํ•œ ํŒŒ์ผ ๋ณด์กด์ด ํ•„์š”ํ•œ ํŒŒ์ผ ๋ณด์กด์ด ํ•„์š”ํ•œ ํŒŒ์ผ
๊ด€๋ฆฌ ํŽธ์˜์„ฑ ์ข‹์ง€ ๋ชปํ•จ ์ข‹์Œ ์ข‹์Œ ๋งค์šฐ ์ข‹์Œ
ํŒŒ์ผ ๋ณด์กด์„ฑ ์ข‹์ง€ ๋ชปํ•จ ์ข‹์Œ ๋งค์šฐ ์ข‹์Œ ๋งค์šฐ ์ข‹์Œ

์ฐธ๊ณ 

  • ์ปจํ…Œ์ด๋„ˆ ์ธํ”„๋ผ ํ™˜๊ฒฝ ๊ตฌ์ถ•์„ ์œ„ํ•œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค/๋„์ปค (์กฐํ›ˆ, ์‹ฌ๊ทผ์šฐ, ๋ฌธ์„ฑ์ฃผ)
๋ฐ˜์‘ํ˜•