Docker ์ ์šฉ๊ธฐ

pxd ํ™ˆํŽ˜์ด์ง€์— Docker ์ ์šฉํ•˜๊ธฐ

Jan 25, 2022

๊น€ํ˜„๊ธฐ

#ETC

๋“ค์–ด๊ฐ€๋ฉฐ

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

Docker๋ž€ ๋ฌด์—‡์ธ๊ฐ€

Docker logo

Docker๊ฐ€ ๋ฌด์—‡์ธ์ง€, ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ์ฐธ๊ณ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์„œ๋‚˜ ๋™์˜์ƒ ๋“ฑ์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Docker ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์— ๋งํฌ์™€ wiki์— ์ •์˜๋œ ๊ธ€์„ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.

๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋Š” ์ผ์ข…์˜ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ํฌํ•จํ•˜๋Š” ์™„์ „ํ•œ ํŒŒ์ผ ์‹œ์Šคํ…œ ์•ˆ์— ๊ฐ์‹ผ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์ฝ”๋“œ, ๋Ÿฐํƒ€์ž„, ์‹œ์Šคํ…œ ๋„๊ตฌ, ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋“ฑ ์„œ๋ฒ„์— ์„ค์น˜๋˜๋Š” ๋ฌด์—‡์ด๋“  ์•„์šฐ๋ฅธ๋‹ค. ์ด๋Š” ์‹คํ–‰ ์ค‘์ธ ํ™˜๊ฒฝ์— ๊ด€๊ณ„ ์—†์ด ์–ธ์ œ๋‚˜ ๋™์ผํ•˜๊ฒŒ ์‹คํ–‰๋  ๊ฒƒ์„ ๋ณด์ฆํ•œ๋‹ค.

Docker๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ ์ด์œ 

1. ๊ทธ๋ฃน์›๋“ค์˜ node ํ™˜๊ฒฝ์ด ์ „๋ถ€ ๋‹ค๋ฅด๋‹ค

์ฒซ์งธ๋กœ, ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ pxd ํ™ˆํŽ˜์ด์ง€ ๋ฆฌ๋‰ด์–ผ ์ž‘์—…์„ ์›ํ™œํ•˜๊ฒŒ ์Šค์œ„์นญ ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฃน์›๋“ค์˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์€ ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ํ”„๋กœ์ ํŠธ์— ๋งž๋Š” node ํ™˜๊ฒฝ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ํ”„๋กœ์ ํŠธ๋Š” node 12, ์–ด๋–ค ํ”„๋กœ์ ํŠธ๋Š” node 14 ๋“ฑ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์ฃ .

ํ˜„์žฌ pxd ํ™ˆํŽ˜์ด์ง€๋Š” Nuxt๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Nuxt์—์„œ ์š”๊ตฌํ•˜๋Š” node ํ™˜๊ฒฝ์ด ์ •์˜๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž๋Š” node ๋ฒ„์ „์„ ๋™์ผํ•˜๊ฒŒ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‘˜์งธ๋กœ, ๋™์ผํ•œ node ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋“ค์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

  1. Nuxt๊ฐ€ ์„ค์น˜๋œ๋‹ค ํ•˜๋”๋ผ๋„ Nuxt์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํŒจํ‚ค์ง€์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.(ํŒจํ‚ค์ง€๊ฐ€ ์š”๊ตฌํ•˜๋Š” ์ตœ์†Œํ•œ์˜ node ๋ฒ„์ „)

  2. node ๋ฒ„์ „์ด ๋‹ค๋ฅด๊ธฐ์— npm ๋ฒ„์ „๋„ ๋‹ฌ๋ผ์„œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  3. npm ๋ฒ„์ „์— ๋”ฐ๋ผ์„œ package-lock.json์—์„œ๋„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์ˆ˜์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์ƒํ™ฉ์—์„œ nvm์„ ์‚ฌ์šฉํ•ด์„œ node ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•˜๊ธฐ์—๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๊ฐ€ 10~20๊ฐœ๊ฐ€ ๋„˜์–ด๊ฐ„๋‹ค๋ฉด 10~20๊ฐœ์˜ ๋…ธ๋“œ ๋ฒ„์ „์ด ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๊ณ , ๊ฐ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ชจ๋‘ ๋‹ค๋ฅธ node ๋ฒ„์ „์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด์ฃ .(์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๊ฐ€ ๊ฐ™์€ node ๋ฒ„์ „์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.)

Docker๋กœ ๊ตฌ์„ฑํ•˜๋ฉด ํ•œ๋ฒˆ ์‚ฌ์šฉํ•˜๊ณ , ๋‹น๋ถ„๊ฐ„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์‚ญ์ œํ•˜๊ณ , ๋‹ค์‹œ ํ•„์š”ํ•˜๋‹ค๋ฉด ์„ค์น˜ํ•ด์„œ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— nvm๋ณด๋‹ค๋Š” ํ›จ์”ฌ ๋” ์œ ์—ฐํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. Docker ๊ฒฝํ—˜ํ•ด๋ณด๊ธฐ

Docker๋ฅผ ๊ฒฝํ—˜ํ•ด ๋ณด์ง€ ๋ชปํ•œ ๊ทธ๋ฃน์›๋“ค์„ ์œ„ํ•ด Docker๋ฅผ ๋ฏธ๋ฆฌ ์‚ฌ์šฉํ•ด ๋ณด๋ฉด์„œ ์ฐ๋จน(?) ํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

์–ด๋ ค์› ๋˜ ์ 

1. Windows ์‚ฌ์šฉ์ž์˜ Docker ํ™˜๊ฒฝ ๊ตฌ์„ฑํ•˜๊ธฐ

windows์—์„œ Docker์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ , Mac ์œ ์ €์™€์˜ ์ถฉ๋Œ ์—†์ด ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” wsl2(Windows Subsystem For Linux 2) ์„ค์น˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

windows์—์„œ wsl2๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๊ฐœ๋…์„ ์•Œ์•„์•ผ ํ•˜๋Š” ๋‹จ๊ณ„๊ฐ€ ํ•„์š”ํ•œ๋ฐ, Docker๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ•œ ๊ฐ€์ง€ ๋„˜์–ด์•ผ ํ•˜๋Š” ๊ฑธ๋ฆผ๋Œ์ด ๋  ์ˆ˜๋„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹คํ–‰ํžˆ๋„ ๊ทธ๋ฃน์›๋“ค์ด wsl ๊ฐœ๋…์„ ํฐ ์–ด๋ ค์›€ ์—†์ด ์Šต๋“ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋ ค์›€์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

2. dev-container์—์„œ windows์˜ ์„ฑ๋Šฅ ์ €ํ•˜

vscode + Docker์˜ ๊ฒฐํ•ฉ์œผ๋กœ ํ”„๋กœ์ ํŠธ์— ํ•„์š”ํ•œ ๋ชจ๋“  ํ™˜๊ฒฝ ๊ตฌ์„ฑ(vscode-extension ์„ค์ •, Docker ์„ค์ •)์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”๋ฐ์š”,

๊ทธ๋ฃน์›๋“ค ์ „๋ถ€ vscode๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— dev-container๋กœ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ํ•˜๋ ค๊ณ  ํ–ˆ์œผ๋‚˜ windows ํ™˜๊ฒฝ์—์„œ ์„ฑ๋Šฅ ๋ฌธ์ œ(์ปดํ“จํ„ฐ ๋ฉˆ์ถค, ์ปดํ“จํ„ฐ ํญ๋ฐœ ์ง์ „)๋กœ ์ ์šฉํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

windows์—์„œ์˜ ์ตœ์ ํ™”๋ฅผ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๋ฐ ์ ์šฉํ•ด ๋ณด์ง€ ๋ชปํ–ˆ์ง€๋งŒ ์•„๋ž˜ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์ ์šฉํ•ด ๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋„ค์š”.

  1. window-1
  2. window-2

๋งˆ์น˜๋ฉฐ

pxd ํ™ˆํŽ˜์ด์ง€ ๋ฆฌ๋‰ด์–ผ ์ž‘์—…์—์„œ Docker๋ฅผ ์ ์šฉํ•  ๋•Œ ๋А๊ผˆ๋˜ ์ ๋“ค์„ ์ •๋ฆฌํ•ด ๋ดค์Šต๋‹ˆ๋‹ค.

๋‹ค์–‘ํ•œ node ํ™˜๊ฒฝ์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•ด์•ผ ํ•˜๋Š” ํŠน์ง•์„ ๊ฐ€์ง„ ๊ทธ๋ฃน ํŠน์„ฑ์„ Docker๋ฅผ ํ†ตํ•ด ์กฐ๊ธˆ ๋” ์œ ์—ฐํ•˜๊ฒŒ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ XE ๊ทธ๋ฃน์˜ ์žฅ๋น„๋ฅผ Windows์—์„œ Mac์œผ๋กœ ์ „ํ™˜์ค‘์— ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด์—๋Š” Mac์„ ์‚ฌ์šฉํ•˜๋Š” ์ž‘์—…์ž์™€ windows ์ž‘์—…์ž๊ฐ€ ํ˜ผ์žฌ๋˜์–ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์„ฑ์— ์žˆ์–ด ์‚ฌ์ „ ์ž‘์—…์ด ํ•„์ˆ˜์˜€๋Š”๋ฐ, Mac ์ „ํ™˜์„ ํ†ตํ•ด ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์„ฑ, Docker๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์กฐ๊ธˆ ๋” ์ž์œ ๋กœ์›Œ ์ง€์ง€ ์•Š์„๊นŒ ํ•ฉ๋‹ˆ๋‹ค.

์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋ฌธ์„œ

Grow & Glow ยฉ 2025

Banner images by undraw.co