๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
[DevOps]/Docker

Docker - ์ปจํ…Œ์ด๋„ˆ ํ†ต์‹ 

by ํŒกํŽ‘ํ 2023. 7. 5.
728x90
๐Ÿ’ก
๋„์ปค์—์„œ๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ฐ„์˜ ํ†ต์‹ ์„ ํฌ๊ฒŒ ์„ธ ๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.
์ด ์„ธ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์•Œ์•„๋ณด์ž.

 

๊ธฐ๋ณธ์ ์ธ ์›น ํ†ต์‹ 

  • ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์™ธ๋ถ€์— ํฌํŠธ๋ฅผ ๋…ธ์ถœ์‹œํ‚ค๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ์›น์— ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
  • ๋„์ปคํ™”๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด๋ถ€์—์„œ ์›น API ๋ฐ ์›น ํŽ˜์ด์ง€์™€ ํ†ต์‹ ํ•˜๋Š” ๋ฐ์— ํŠน๋ณ„ํ•œ ์„ค์ •์ด๋‚˜ ์ฝ”๋“œ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค.

 

 

๋กœ์ปฌ ํ˜ธ์ŠคํŠธ ๋จธ์‹ ๊ณผ์˜ ํ†ต์‹ 

  • ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ ๋จธ์‹ ๊ณผ์˜ ํ†ต์‹ ์—๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.
  • ์œ„ ์ฝ”๋“œ๋Š” ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ ๋จธ์‹ ์˜ mongoDB์™€ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ Node.js(๋„์ปค ์ปจํ…Œ์ด๋„ˆ) ์ฝ”๋“œ์˜ ์ผ๋ถ€์ด๋‹ค.
  • 'mongodb://localhost:27017/swfavorites'๋ผ๊ณ  ์ ํ˜€์žˆ๋Š” ๊ฒƒ์„ ๋ณด๋‹ˆ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ ๋จธ์‹ ์˜ mongoDB์™€ ์—ฐ๊ฒฐํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋•Œ ์ปจํ…Œ์ด๋„ˆ์˜ 3000๋ฒˆ ํฌํŠธ๋ฅผ ํ†ตํ•œ๋‹ค.

 

  • ์ด๋•Œ ๋„์ปคํ™”๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ ๋จธ์‹ ๊ณผ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 'localhost' ๋Œ€์‹  'host.docker.internal'์„ ์ž…๋ ฅํ•ด์•ผ ํ•œ๋‹ค.
  • 'host.docker.internal'๋Š” ๋„์ปค๊ฐ€ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ ๋จธ์‹ ์˜ ip์ฃผ์†Œ์™€ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋ช…๋ น์–ด์ด๋‹ค.

 

 

์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ํ†ต์‹ 

์ง์ ‘ ์—ฐ๊ฒฐ

  • ํ˜„์žฌ ์˜ˆ์ œ ์ฝ”๋“œ๋Š” ์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด Node.js ๊ธฐ๋ฐ˜์˜ ์ฝ”๋“œ์ด๋ฉฐ, api ์š”์ฒญ์œผ๋กœ get๊ณผ post๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • Node ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ์ข‹์•„ํ•˜๋Š” ์Šคํƒ€์›Œ์ฆˆ ์‹œ๋ฆฌ์ฆˆ๋ฅผ mongDB์— ๋“ฑ๋กํ•˜๊ณ  ์กฐํšŒ("/favorites")ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 

  • mongodb์˜ ๊ณต์‹ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰์‹œ์ผฐ๋‹ค.

 

docker container inspect mongodb
  • ์œ„ ๋ช…๋ น์–ด๋กœ mongodb ์ปจํ…Œ์ด๋„ˆ์˜ ๊ตฌ์„ฑ ์ •๋ณด๋ฅผ ํ™•์ธํ•ด ๋ณด์•˜๋‹ค.

 

  • ๊ตฌ์„ฑ ์ •๋ณด ์ค‘์— IPAddress๋ฅผ ํ™•์ธํ•˜์—ฌ 

 

  • app.js์— mongoDB ์ปจํ…Œ์ด๋„ˆ ip๋ฅผ ์ ์–ด์ฃผ์—ˆ๋‹ค.
  • ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด Node.js ์ฝ”๋“œ ์•ˆ์— mongoDB์™€ ์—ฐ๊ฒฐํ•˜๋Š” ์ •๋ณด๋ฅผ ์ ๊ฒŒ ๋˜์–ด ์ง์ ‘ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

docker build -t favorites-node .

  • ์ˆ˜์ •ํ•œ ์ฝ”๋“œ๋ฅผ ๋ฐ˜์˜ํ•˜๊ธฐ ์œ„ํ•ด node.js ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•ด ์ฃผ๊ณ 

 

  • ์ˆ˜์ • ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค.

 

  • localhost:3000์œผ๋กœ get ์š”์ฒญ์„ ๋‚ ๋ฆฌ๋‹ˆ ๋นˆ ๋ฐฐ์—ด๊ณผ ํ•จ๊ป˜ 200 OK๊ฐ€ ๋‚˜์˜ด์œผ๋กœ์จ ๋‘ ์ปจํ…Œ์ด๋„ˆ ๊ฐ„์˜ ํ†ต์‹ ์ด ์›ํ™œํ•˜๊ฒŒ ์ด๋ค„์ง€๊ณ  ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๋นˆ ๋ฐฐ์—ด์ด ๋‚˜์˜จ ๊ฒƒ์€ ๋‹น์—ฐํ•˜๊ฒŒ๋„ ์•„๋ฌด๊ฒƒ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

 

--network ์˜ต์…˜ ์ด์šฉ

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

 

docker network create favorites-net
docker network ls

  • ์šฐ์„  ๋„คํŠธ์›Œํฌ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  • ๋„คํŠธ์›Œํฌ๋Š” ๋ณผ๋ฅจ๊ณผ๋Š” ๋‹ฌ๋ฆฌ ์ƒ์„ฑ๊ณผ ๋™์‹œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์–ด ์šฐ์„  ๋„คํŠธ์›Œํฌ๋ฅผ ๋งŒ๋“ค์–ด์ค˜์•ผ ํ•œ๋‹ค.
  • ls ๋ช…๋ น์–ด๋กœ ํ˜„์žฌ ์กด์žฌํ•˜๋Š” ๋„คํŠธ์›Œํฌ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  • favorites-net ์ด์™ธ์˜ ๋„คํŠธ์›Œํฌ๋Š” ๋””ํดํŠธ๋กœ ์„ค์ •๋˜์–ด ์žˆ๋Š” ๋„คํŠธ์›Œํฌ์ด๋‹ค.

 

  • mongoDB ์ปจํ…Œ์ด๋„ˆ๋ฅผ facorites-net์ด๋ผ๋Š” ๋„คํŠธ์›Œํฌ ์•ˆ์— ๋„ฃ์–ด ์‹คํ–‰ํ–ˆ๋‹ค.
  • mongoDB์˜ ์ปจํ…Œ์ด๋„ˆ๋ช…์€ mongodb์ด๋‹ค.

 

  • mongoDB์™€ ๋™์ผํ•œ ๋„คํŠธ์›Œํฌ๋กœ node.js ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— mongodb(์ปจํ…Œ์ด๋„ˆ๋ช…)๋ผ๊ณ  ์ ์–ด์ฃผ์—ˆ๋‹ค.
    • ๊ฐ™์€ ์ปจํ…Œ์ด๋„ˆ ์ƒ์—์„œ๋Š” ์ปจํ…Œ์ด๋„ˆ ๋ช…๋งŒ์œผ๋กœ ๋„์ปค๊ฐ€ ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ์˜ ip๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.
    • ๋”ฐ๋ผ์„œ favorite-net ๋„คํŠธ์›Œํฌ์˜ mongodb ์ปจํ…Œ์ด๋„ˆ ๋ช…์„ ์ž…๋ ฅํ•˜์—ฌ ๊ฐ™์€ ๋„คํŠธ์›Œํฌ ์ƒ์˜ mongoDB์™€ ์—ฐ๊ฒฐ๋˜๋„๋ก ํ–ˆ๋‹ค.

 

  • node ์ด๋ฏธ์ง€๋ฅผ ์žฌ๋นŒ๋“œํ•˜๊ณ  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ --network ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜์—ฌ node.js ์ปจํ…Œ์ด๋„ˆ๋ฅผ mongoDB ์ปจํ…Œ์ด๋„ˆ์™€ ๋™์ผํ•œ ๋„คํŠธ์›Œํฌ์— ๋‘์—ˆ๋‹ค.

 

  • --network ์˜ต์…˜์œผ๋กœ ํ•˜๋‚˜์˜ ๋„คํŠธ์›Œํฌ์— ๋‘ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‘์–ด ์„œ๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

์ฐธ๊ณ 

Udemy - Docker & Kubernetes : ์‹ค์ „๊ฐ€์ด๋“œ

728x90