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")ํ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์๋ค.
- 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