๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ํ™˜๊ฒฝ ๊ตฌ์ถ•

Window ๋ฐ€๊ณ  Linux ์„ค์น˜ [Docker๋ž€?]

by ์ œ๋ฃฝ 2024. 3. 22.
728x90
๋ฐ˜์‘ํ˜•

Docker์˜ ๊ฐœ๋…

์ปดํ“จํ„ฐ์˜ ๊ธฐ๋ณธ OS (Window/Mac) ์™ธ์˜ ๋ชจ๋“  ๊ฒƒ(python, cuda, cudnn, pytorch, huggingface, wandb, tmux, htop)์„ ๊ฐ ์ƒํ™ฉ์— ์„ธํŒ…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฐ€์ƒ ํ™˜๊ฒฝ์˜ ๊ฐœ๋…

์™œ ์ด๋ฆ„์ด Docker์ผ๊นŒ?

๋„์ปค๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํ”Œ๋žซํผ

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

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

 

Docker๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

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

⇒ ๋„์ปค ์ด๋ฏธ์ง€(๋…๋ฆฝ์  ์„ธํŒ…)๋งŒ ๊ฐ€์ ธ์™€ ์ƒ์„ฑํ•˜๋ฉด ๋ฐ”๋กœ ํ™˜๊ฒฝ์„ ๋งž์ถœ ์ˆ˜ ์žˆ๋‹ค.

Docker์˜ ๊ตฌ์„ฑ ์š”์†Œ

1. ์ด๋ฏธ์ง€(Image) : ์„ธํŒ…์„ ์ €์žฅํ•ด๋†“์€ ํŒŒ์ผ

: ์ด๋ฏธ์ง€๋Š” ๊ฐ€์ƒ OS, ๋งํ•˜์ž๋ฉด ๋ณธ์ธ์ด ๋งˆ์Œ๋Œ€๋กœ ์„ธํŒ…ํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ์ปดํ“จํ„ฐ๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

: ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, cuda, cudann ๋“ฑ์ด ํฌํ•จ๋œ ํ™˜๊ฒฝ ์„ธํŒ…์ด ์ €์žฅ๋˜์–ด ์žˆ์Œ

2. ์ปจํ…Œ์ด๋„ˆ(Container) : ๊ฐ€์ƒํ™˜๊ฒฝ์˜ ๊ฐœ๋… / ๊ตฌ์ถ•ํ•œ ์ด๋ฏธ์ง€๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ธฐ์ˆ 

: ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ, Image๋ฅผ ์ง€์ •ํ•˜์—ฌ ํ•ด๋‹น Image์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ํ™˜๊ฒฝ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ธํŒ…์ด ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ์— ์„ค์น˜๋œ๋‹ค

: ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ง€๊ณ  ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ

 

์ปจํ…Œ์ด๋„ˆ ์—…๋ฐ์ดํŠธ

๋งŒ์ผ ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์€๊ฒŒ ์ƒ๊ธฐ๋ฉด ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๊ณ , ์žฌ์ƒ์„ฑ๋œ ์ด๋ฏธ์ง€๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์žฌ์‹คํ–‰ํ•ด์•ผํ•œ๋‹ค.

 

Q : ์—ฌ๊ธฐ์„œ ์งˆ๋ฌธ, ๋งŒ์ผ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ ํ† ์น˜ ๋ฒ„์ „์„ ๋ฐ”๊พธ๋ฉด ๋ฐ”๋€Œ๋‚˜? or cuda ๋ฒ„์ „์€?

 

 

 

 

Reference

Docker #2. ๋„์ปค ์ด๋ฏธ์ง€์™€ ์ปจํ…Œ์ด๋„ˆ(images and containers)

[Docker] ์ด๋ฏธ์ง€ ๋ ˆ์ด์–ด ๊ตฌ์กฐ

๋„์ปค(Docker)๋Š” ์™œ ๋„์ปค์ธ๊ฐ€์š”? ๋„์ปค์˜ ์˜๋ฏธ์™€ ๋„์ปค์ด๋ฏธ์ง€๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ •๋ฆฌ

[Docker] (1) ๋„์ปค ๊ฐœ๋… ์„ค๋ช… | ๋„์ปค๋Š” ์™œ ์‚ฌ์šฉํ•˜๋Š” ๊ฑธ๊นŒ?

728x90
๋ฐ˜์‘ํ˜•