2023.03.21 TIL

์ •์Šน์›ยท2023๋…„ 3์›” 22์ผ
0
post-thumbnail

๐Ÿ“’ ๋ชฉ์ฐจ

๐Ÿ“Œ Docker๋ž€ ๋ฌด์—‡์ผ๊นŒ?
๐Ÿ“Œ Docker ์‚ฌ์šฉ๋ฒ•
๐Ÿ“Œ ํฌํŠธ ํฌ์›Œ๋”ฉ
๐Ÿ“Œ Docker์™€ package.json

๐Ÿ“Œ Docker๋ž€ ๋ฌด์—‡์ผ๊นŒ?

์„œ๋ฒ„๋ฅผ ๋Œ๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ™˜๊ฒฝ์ด ๊ฐ–์ถฐ์ ธ์•ผํ•œ๋‹ค. ๊ณตํ†ต๋œ ํ™˜๊ฒฝ์—์„œ ๊ฐ™์€ ๊ฐœ๋ฐœํ™˜๊ฒฝ์œผ๋กœ ์ž‘์—…์ด ์ด๋ฃจ์–ด์ ธ์•ผ ์ถฉ๋Œ์—†์ด ์„œ๋ฒ„๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋Œ์•„๊ฐ€๊ฒŒ ๋œ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด Node.js, ์–ธ์–ด์˜ ๋ฒ„์ „, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, node_modules ๋“ฑ๋“ฑ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ๋“ค์ด ํ•œ๋‘๊ฐ€์ง€ ์•„๋‹ˆ๋‹ค.

์˜ˆ์ „์—๋Š” ์ด๋Ÿฐํ•œ ์„ค์ •๋“ค์„ ํšŒ์‚ฌ์—์„œ ์บก์ฒ˜ํ•˜๊ฑฐ๋‚˜ ๊ธฐ๋กํ•˜์—ฌ ์ƒˆ๋กœ์šด ์‚ฌ๋žŒ์ด ๋“ค์–ด์˜ค๊ฑฐ๋‚˜ ํ•  ๋•Œ, ํ™˜๊ฒฝ์„ ์ผ์น˜ํ•˜๊ฒŒ ์„ค์ •ํ•˜๋„๋ก ํ–ˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ๋งค์šฐ ๋ฒˆ๊ฑฐ๋กญ๊ณ  ๋น„ํšจ์œจ์ ์ด๋‹ค.

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Docker๊ฐ€ ํƒ„์ƒํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

Docker๋Š” ๊ฐœ๋ฐœํ™˜๊ฒฝ ์š”์†Œ๋“ค์ด ์„ค์น˜๋œ ๋ชจ์Šต์„ image(์ด๋ฏธ์ง€)๋กœ ์ €์žฅํ•œ๋‹ค.
์ด๋Ÿฌํ•œ ์ด๋ฏธ์ง€๋“ค์ด ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ๋™์ž‘ํ•˜๋Š” ์„ค์ •์„ Dockerfile๋กœ ์ €์žฅํ•œ๋‹ค.
๋”ฐ๋ผ์„œ ํ•ด๋‹น ๊ฐœ๋ฐœํ™˜๊ฒฝ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด, ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋ฐ›์•„ ์‚ฌ์šฉํ•˜๋ฉด, ๊ฐ™์€ ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ๋ฐ”๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

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

๐Ÿ“Œ Docker ์‚ฌ์šฉ๋ฒ•

๋„์ปค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ€์žฅ ๋จผ์ €, ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์ด๋ฏธ์ง€๋ž€, ๋งŒ๋“ค๋ ค ํ•˜๋Š” ์„ค์ •๋“ค์ด ๋ฌถ์—ฌ์ ธ ์žˆ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

๋”ฐ๋ผ์„œ Dockerfile์ด๋ผ๋Š” ์ด๋ฆ„์˜ ํŒŒ์ผ์„ ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑํ•˜๊ณ  ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๊ฒŒ ๋˜๋ฉด ์ด๋ฏธ์ง€๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ฒŒ ๋œ๋‹ค.

โœ… Dockerfile ๋งŒ๋“ค๊ธฐ

  • Dockerfile : ๊ฐ€์ƒ์ปดํ“จํ„ฐ๋ฅผ ๋งŒ๋“ค๊ธฐ์— ์•ž์„œ ๋งŒ๋“œ๋Š” ์„ค๋ช…์„œ
    ์—ฌ๊ธฐ์„œ FROM node:14์€ ์ตœ์‹  ๋ฒ„์ „์˜ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ, ํ•ด๋‹น ์ด๋ฏธ์ง€๋Š” node, npm, yarn ๋“ฑ์ด ๋ชจ๋‘ ํ•จ๊ป˜ ์„ค์น˜๋˜์–ด ์žˆ๋Š” ์ด๋ฏธ์ง€์ด๋‹ค. ์ฆ‰, node, npm, yarn์ด ๋ชจ๋‘ ์„ค์น˜๋œ ๋ฆฌ๋ˆ…์Šค ์ปดํ“จํ„ฐ๊ฐ€ ํ•˜๋‚˜ ์ƒ๊ธฐ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
    COPY ./index.js /index.js๋Š” index.js์— ์žˆ๋Š” ๋ชจ๋“  ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ฐ€์ƒ ์ปดํ“จํ„ฐ์˜ index.js ํŒŒ์ผ๋กœ ๋ณต์‚ฌํ•˜์—ฌ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด๋‹ค. CMD node index.js๋Š” ์ €์žฅ๋œ ํŒŒ์ผ์„ ์‹คํ–‰ํ•ด์ฃผ๋Š” ๋ช…๋ น์–ด์ด๋‹ค.
# ์ปดํ“จํ„ฐ ๋งŒ๋“œ๋Š” ์„ค๋ช…์„œ

# 1. ์šด์˜์ฒด์ œ ์„ค์น˜(node 14๋ฒ„์ „๊ณผ npm๊ณผ yarn์ด ๋ชจ๋‘ ์„ค์น˜๋˜์–ด์žˆ๋Š” ๋ฆฌ๋ˆ…์Šค)
FROM node:14

# 2. ๋‚ด ์ปดํ“จํ„ฐ์— ์žˆ๋Š” ํด๋”๋‚˜ ํŒŒ์ผ์„ ๋„์ปค ์ปดํ“จํ„ฐ ์•ˆ์œผ๋กœ ๋ณต์‚ฌํ•˜๊ธฐ
COPY ./index.js /index.js

# 3. ๋„์ปค์•ˆ์—์„œ index.js ์‹คํ–‰์‹œํ‚ค๊ธฐ
CMD node index.js

โœ… docker ๋ช…๋ น์–ด

docker build : ์ด๋ฏธ์ง€ ๋งŒ๋“ค๊ธฐ
- docker build . : ๋ชจ๋“ ํŒŒ์ผ ์ด๋ฏธ์ง€ ๋งŒ๋“ค๊ธฐ

docker images : ๋นŒ๋“œ๊ฐ€ ์™„๋ฃŒ๋œ ์ด๋ฏธ์ง€ ์ •๋ณด ํ™•์ธํ•˜๊ธฐ

docker run ์ด๋ฏธ์ง€ID : ์ด๋ฏธ์ง€ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ์ปดํ“จํ„ฐ ๋งŒ๋“ค๊ธฐ
- ๊ฐ€์ƒ ์ปดํ“จํ„ฐ ์ƒ์„ฑํ•˜๊ธฐ
- ์ด๋Ÿฌํ•œ ๊ฐ€์ƒ ์ปดํ“จํ„ฐ๋ฅผ ์ปจํ…Œ์ด๋„ˆ๋ผ ํ•œ๋‹ค.

docker ps : ์‹คํ–‰์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ํ”„๋กœ๊ทธ๋žจ ๋ณด๊ธฐ

docker ps -a : ์ข…๋ฃŒ๋œ ์ปจํ…Œ์ด๋„ˆ๊นŒ์ง€ ๋ชจ๋‘ ๋ณด๊ธฐ

docker rm ์ปจํ…Œ์ด๋„ˆID : ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œํ•˜๊ธฐ

docker rmi ์ด๋ฏธ์ง€ID : ์ปจํ…Œ์ด๋„ˆ๋งŒ ์‚ญ์ œํ•œ๋‹ค๊ณ  ๋ชจ๋‘ ์‚ญ์ œ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฏธ์ง€๋Š” ์กด์žฌํ•œ๋‹ค.๋”ฐ๋ผ์„œ ์œ„ ๋ช…๋ น์–ด๋Š” ์ด๋ฏธ์ง€๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค.

docker exec -it ์ปจํ…Œ์ด๋„ˆID /bin/bash : ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€๋กœ ๋“ค์–ด๊ฐ€๊ธฐ

exit: ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์ข…๋ฃŒํ•˜์—ฌ ๋‚˜์˜ค๊ธฐ

docker run -p 8000:3000 ์ด๋ฏธ์ง€ID : ํฌํŠธํฌ์›Œ๋”ฉํ•˜๊ธฐ

docker stop ์ปจํ…Œ์ด๋„ˆID : ์ปจํ…Œ์ด๋„ˆ ์ข…๋ฃŒํ•˜๊ธฐ

dockerfile์„ ๋ฐ”ํƒ•์œผ๋กœ docker build ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ ๋‹ค. (docker build . : ์ „์ฒด ๋นŒ๋“œ)

โœ… .dockerignore

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

๋จผ์ €, ๋‚ด ๋กœ์ปฌ์—์„œ node_modules๊ฐ€ ๋ณต์‚ฌ๋˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด .dockerignore ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ๊ทธ ์•ˆ์— node_modules๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๊ฐ€์ƒ ์ปดํ“จํ„ฐ์—์„œ ๋ณต์‚ฌ๊ฐ€ ์ง„ํ–‰๋  ๋•Œ, ํ•จ๊ป˜ ๋ณต์‚ฌ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ ํ•œ๋‹ค.

๋‹ค์Œ์œผ๋กœ, dockerfile์— RUN yarn install์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

# ์ปดํ“จํ„ฐ ๋งŒ๋“œ๋Š” ์„ค๋ช…์„œ

# 1. ์šด์˜์ฒด์ œ ์„ค์น˜(node 14๋ฒ„์ „๊ณผ npm๊ณผ yarn์ด ๋ชจ๋‘ ์„ค์น˜๋˜์–ด์žˆ๋Š” ๋ฆฌ๋ˆ…์Šค)
FROM node:14

# 2. ๋‚ด ์ปดํ“จํ„ฐ์— ์žˆ๋Š” ํด๋”๋‚˜ ํŒŒ์ผ์„ ๋„์ปค ์ปดํ“จํ„ฐ ์•ˆ์œผ๋กœ ๋ณต์‚ฌํ•˜๊ธฐ
COPY . /myfolder/
WORKDIR /myfolder/
RUN yarn install

# 3. ๋„์ปค์•ˆ์—์„œ index.js ์‹คํ–‰์‹œํ‚ค๊ธฐ
CMD yarn start:dev

๐Ÿ“Œ ํฌํŠธ ํฌ์›Œ๋”ฉ

์•„๋ž˜์˜ ์‚ฌ์ง„์„ ๋ณด๊ฒŒ ๋˜๋ฉด, ๋„์ปค ์ฆ‰, ๊ฐ€์ƒ ์ปดํ“จํ„ฐ๋Š” ํ˜„์žฌ ๋‚ด์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰์ด ๋˜๊ณ ์žˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋„์ปค์—์„œ express์„œ๋ฒ„๊ฐ€ ์ผœ์ ธ์žˆ๋‹ค๊ณ  ํ• ๋•Œ, ๊ฐ€์ƒ์ปดํ“จํ„ฐ ์•ˆ์—์„œ๋Š” 3000๋ฒˆ ํฌํŠธ๋กœ ์ ‘์†์ด ์ž˜๋˜์ง€๋งŒ ๋‚ด ์ปดํ“จํ„ฐ์—์„œ๋Š” 3000๋ฒˆ ํฌํŠธ์— ์•„๋ฌด๊ฒƒ๋„ ์กด์žฌํ•˜์ง€ ์•Š์•„, ์ ‘์†์„ ํ•  ์ˆ˜ ์—†๋‹ค.

๋”ฐ๋ผ์„œ, ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์ƒ ์ปดํ“จํ„ฐ์˜ 3000๋ฒˆ ํฌํŠธ์™€ ๋‚ด ์ปดํ“จํ„ฐ์˜ ํฌํŠธ๋ฅผ ์—ฐ๊ฒฐํ•ด์•ผ ํ•œ๋‹ค.
์ด๊ฒƒ์„ ํฌํŠธ ํฌ์›Œ๋”ฉ์ด๋ผ ํ•œ๋‹ค.

๐Ÿ“Œ Docker์™€ package.json

๋งŒ์•ฝ ์ˆ˜์ •ํ•ด์•ผํ•  ์‚ฌํ•ญ์ด ์ƒ๊ฒจ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ฒŒ ๋˜๋ฉด, ๋„์ปค๋ฅผ ์ข…๋ฃŒํ•˜๊ฒŒ ์ƒˆ๋กญ๊ฒŒ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค.
๋”ฐ๋ผ์„œ dockerfile์„ ํ†ตํ•ด ๋ณต์‚ฌ๊ฐ€ ์ง„ํ–‰๋˜๊ณ  ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋œ๋‹ค.
ํ•˜์ง€๋งŒ ๋„์ปค๋Š” ๊ธฐ์กด์— ์กด์žฌํ–ˆ๋˜ ๋‚ด์šฉ์—์„œ ๋ณ€๊ฒฝ์ ์ด ์—†๋Š” ๋ถ€๋ถ„์€ ์ƒˆ๋กœ buildํ•˜์ง€ ์•Š๊ณ  ์ƒ์„ฑ๋œ ์บ์‹œ ๋ถ€๋ถ„์„ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ฒ˜์Œ๋ถ€ํ„ฐ ์„ค์น˜ํ•  ํ•„์š”์—†์ด ๋น ๋ฅด๊ฒŒ ๋นŒ๋“œ๊ฐ€ ์ง„ํ–‰๋œ๋‹ค.
ํ•˜์ง€๋งŒ, ์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๋„์ปค๋Š” ๋ณ€๊ฒฝ์ ์ด ๋ฐœ๊ฒฌ๋œ ์œ„์น˜๋ถ€ํ„ฐ ์•„๋ž˜๋กœ ์บ์‹œ๋ฅผ ๋ฒ„๋ฆฌ๊ณ  ์ƒˆ๋กญ๊ฒŒ ๋ณต์‚ฌ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.
๋”ฐ๋ผ์„œ, ๋งŒ์•ฝ yarn install์ด ์ˆ˜์ •๋œ ์ฝ”๋“œ ๋ฐ‘์— ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ํŒŒ์ผ์„ ์ƒ๋ณด๊ฒŒ ๋‹ค์‹œ ๋ฐ›์•„์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋นŒ๋“œ ๊ณผ์ •์—์„œ ๋งŽ์€ ์‹œ๊ฐ„๊ณผ ์ž์›์ด ์†Œ๋ชจ๋œ๋‹ค.
์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์ด Dockerfile์„ ์ตœ์ ํ™”ํ•ด์•ผํ•œ๋‹ค.
๋จผ์ €, node_modules๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๊ทธ ์ดํ›„์— ๋‚˜๋จธ์ง€ ํŒŒ์ผ๋“ค์„ ์„ค์น˜ํ•˜์—ฌ node_modules๋Š” ์บ์‹œ ํŒŒ์ผ๋กœ ๋น ๋ฅด๊ฒŒ ํ•ด๊ฒฐํ•˜๊ณ  ์ˆ˜์ •๋œ ๋ถ€๋ถ„์€ ๋‹ค์‹œ ๋ฐ›์•„ ํšจ์œจ์ ์œผ๋กœ ๋นŒ๋“œ๋ฅผ ์ง„ํ–‰ ํ•  ์ˆ˜ ์žˆ๋‹ค.

# ์ปดํ“จํ„ฐ ๋งŒ๋“œ๋Š” ์„ค๋ช…์„œ

# 1. ์šด์˜์ฒด์ œ ์„ค์น˜(node 14๋ฒ„์ „๊ณผ npm๊ณผ yarn์ด ๋ชจ๋‘ ์„ค์น˜๋˜์–ด์žˆ๋Š” ๋ฆฌ๋ˆ…์Šค)
FROM node:14

# 2. ๋‚ด ์ปดํ“จํ„ฐ์— ์žˆ๋Š” ํด๋”๋‚˜ ํŒŒ์ผ์„ ๋„์ปค ์ปดํ“จํ„ฐ ์•ˆ์œผ๋กœ ๋ณต์‚ฌํ•˜๊ธฐ
COPY ./package.json /myfolder/
COPY ./yarn.lock /myfolder/
WORKDIR /myfolder/
RUN yarn install

COPY . /myfolder/

# 3. ๋„์ปค์•ˆ์—์„œ index.js ์‹คํ–‰์‹œํ‚ค๊ธฐ
CMD yarn start:dev

๐ŸŒˆ ์˜ค๋Š˜ ํ•˜๋ฃจ

docker๋ฅผ ํ†ตํ•ด ๊ฐ€์ƒ ์ปดํ“จํ„ฐ๋ฅผ ๋งŒ๋“ค๊ณ  ํ•œ๋Œ€์˜ ์ปดํ“จํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์—ฌ๋Ÿฌ ์ปดํ“จํ„ฐ์—์„œ ๋™์ž‘ํ•˜๋Š” ๊ณผ์ •์„ ์‹ค์Šตํ•ด ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค. docker๋ฅผ ๋ฐฐ์šฐ๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด์„œ ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ์„œ ์‹œ์ž‘์ ์— ์„œ์žˆ๋Š” ๊ธฐ๋ถ„์ด ๋“ค์—ˆ๋‹ค. ์ ์ฐจ ํ•™์Šต๋Ÿ‰์ด ๋งŽ์•„์ง€๋ฉฐ ๋งค์ผ ๋ณต์Šต์ด ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ž˜๋„ ๋งค์ˆœ๊ฐ„ ์ตœ์„ ์„ ๋‹คํ•˜๋ฉฐ ๊ธ์ •์ ์ธ ๋งˆ์Œ์œผ๋กœ ํ—ค์ณ๋‚˜๊ฐˆ ๊ฒƒ์ด๋ผ ๋ฏฟ๋Š”๋‹ค!!!

0๊ฐœ์˜ ๋Œ“๊ธ€