Docker๋ฅผ ํ์ฉํ์ฌ ์ปจํ ์ด๋๋ฅผ ์คํํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค.
Docker๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์ด๋ํํ์ฌ ์ผ๊ด๋ ํ๊ฒฝ์์ ์คํํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฐ๋ ฅํ ๋๊ตฌ์ ๋๋ค. ํนํ, Docker ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๊ณ ๋ฐฐํฌํ ํ, ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ปจํ ์ด๋๋ฅผ ์คํํ๊ณ ๊ด๋ฆฌํ๋ ๊ณผ์ ์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
์ด ๊ธ์์๋ docker container run ๋ช ๋ น์ด์ ๊ด๋ จ๋ ์ฃผ์ ์ต์ ๋ค์ ์์ธํ ์ค๋ช ํ๊ณ , ์ค์ ์์ ๋ฅผ ํตํด ์ค์ตํด๋ณด๊ฒ ์ต๋๋ค.
Docker Container ์คํํ๊ธฐ
Docker ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๊ณ ๋ฐฐํฌํ ํ, ์ด์ ํด๋น ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ปจํ ์ด๋๋ฅผ ์คํํด๋ณด๊ฒ ์ต๋๋ค.
์ปจํ ์ด๋๋ ์ด๋ฏธ์ง์ ์คํ ์ธ์คํด์ค์ด๋ฉฐ, ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์ ๋ก ๊ตฌ๋ํ๋ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค.
์ฃผ์ ์ต์ ์ค๋ช
docker container run ๋ช ๋ น์ด๋ Docker ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ณ ์คํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
๋ค์ํ ์ต์ ์ ํตํด ์ปจํ ์ด๋์ ๋์ ๋ฐฉ์์ ์ธ๋ฐํ๊ฒ ์ ์ดํ ์ ์์ต๋๋ค. ์๋ ํ๋ ์์ฃผ ์ฌ์ฉํ๋ ์ฃผ์ ์ต์ ๋ค์ ์ ๋ฆฌํ ๊ฒ์ ๋๋ค.
์ต์ | ์ค๋ช | ์ฌ์ฉ๋ฒ | ์์ ๋ฐ ์ฃผ์์ฌํญ |
--name | ์ปจํ ์ด๋์ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. | --name [์ปจํ ์ด๋๋ช ] | - ์์: --name mbti- ์ฃผ์์ฌํญ: ์ง์ ํ์ง ์์ผ๋ฉด Docker๊ฐ ์๋์ผ๋ก ๋๋ค ์ด๋ฆ์ ํ ๋นํฉ๋๋ค. ๋ช ํํ ์ด๋ฆ์ ์ง์ ํ๋ฉด ๊ด๋ฆฌ๊ฐ ์ฉ์ดํฉ๋๋ค. |
-e ๋๋ --env | ์ปจํ ์ด๋์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํฉ๋๋ค. | -e [๋ณ์๋ช ]=[๊ฐ] | - ์์: -e PORT=3000- ์ฉ๋: ์ ํ๋ฆฌ์ผ์ด์ ์คํ ์ ํ์ํ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํฉ๋๋ค.- ์ถ๊ฐ: --env-file ์ต์ ์ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ํ๊ฒฝ ๋ณ์๋ฅผ ํ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค. |
--env-file | ํ๊ฒฝ ๋ณ์๋ฅผ ํ์ผ๋ก๋ถํฐ ๋ก๋ํฉ๋๋ค. | --env-file [ํ์ผ ๊ฒฝ๋ก] | - ์์: --env-file .docker.env- ์ฉ๋: ์ฌ๋ฌ ํ๊ฒฝ ๋ณ์๋ฅผ ํ๊บผ๋ฒ์ ๋ก๋ํ ๋ ์ ์ฉํฉ๋๋ค. |
--rm | ์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋๋ฉด ์๋์ผ๋ก ์ญ์ ํฉ๋๋ค. | --rm | - ์ค๋ช : ์ปจํ ์ด๋ ์คํ ํ ์ข ๋ฃ ์, ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ์๋์ผ๋ก ์ญ์ ํ์ฌ ๋ถํ์ํ ๋ฐ์ดํฐ๊ฐ ์์ด์ง ์๋๋ก ํฉ๋๋ค. |
-d | ์ปจํ ์ด๋๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํํฉ๋๋ค. | -d | - ์ค๋ช : ํฐ๋ฏธ๋์ ๋ค๋ฅธ ์ฉ๋๋ก ์ฌ์ฉํ๊ธฐ ์ํด ์ปจํ ์ด๋๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์คํํฉ๋๋ค. |
์ปจํ ์ด๋ ์คํ ์์
์ด์ ์์์ ์ค๋ช ํ ์ต์ ๋ค์ ํ์ฉํ์ฌ ์ค์ ๋ก ์ปจํ ์ด๋๋ฅผ ์คํํด๋ณด๊ฒ ์ต๋๋ค.
์๋๋ docker container run ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ ์์ ์ ๋๋ค.
docker container run \
--name mbti \
-e PORT=3000 \
--rm \
-d \
daehyunbigbread/mbti:embedded-db
b5c33cca7b0f895c4e3e1cce9e2ef7bc0c3059231b6c6a3fce0accf8f0a1b206
๋ช ๋ น์ด ์ค๋ช
- --name mbti:
- ์ค๋ช : ์ปจํ ์ด๋์ ์ด๋ฆ์ mbti๋ก ์ง์ ํฉ๋๋ค.
- ํจ๊ณผ: ๋์ค์ ์ปจํ ์ด๋๋ฅผ ๊ด๋ฆฌํ ๋ ๋ช ํํ ์ด๋ฆ์ผ๋ก ์ ๊ทผํ ์ ์์ต๋๋ค.
- -e PORT=3000:
- ์ค๋ช : ์ปจํ ์ด๋ ๋ด์์ PORT ํ๊ฒฝ ๋ณ์๋ฅผ 3000์ผ๋ก ์ค์ ํฉ๋๋ค.
- ํจ๊ณผ: ์ ํ๋ฆฌ์ผ์ด์ ์ด 3000 ํฌํธ๋ฅผ ์ฌ์ฉํ๋๋ก ์ค์ ๋ฉ๋๋ค.
- --rm:
- ์ค๋ช : ์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋๋ฉด ์๋์ผ๋ก ์ญ์ ๋ฉ๋๋ค.
- ํจ๊ณผ: ๋ถํ์ํ ์ปจํ ์ด๋๊ฐ ์์คํ ์ ๋จ์ง ์์ ๊ณต๊ฐ์ ์ ์ฝํ ์ ์์ต๋๋ค.
- -d:
- ์ค๋ช : ์ปจํ ์ด๋๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํํฉ๋๋ค.
- ํจ๊ณผ: ํฐ๋ฏธ๋์ ๋ค๋ฅธ ์์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- daehyunbigbread/mbti:embedded-db:
- ์ค๋ช : ์คํํ Docker ์ด๋ฏธ์ง์ ๋๋ค.
- ํจ๊ณผ: ์ง์ ๋ ์ด๋ฏธ์ง๋ก๋ถํฐ ์ปจํ ์ด๋๊ฐ ์์ฑ๋๊ณ ์คํ๋ฉ๋๋ค.
์คํ ๊ฒฐ๊ณผ
๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด, Docker๋ ์ง์ ๋ ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ณ ์คํํฉ๋๋ค.
์ฑ๊ณต์ ์ผ๋ก ์คํ๋๋ฉด, ์ปจํ ์ด๋ ID๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค.
b5c33cca7b0f895c4e3e1cce9e2ef7bc0c3059231b6c6a3fce0accf8f0a1b206
Container ํ์ธ ๋ฐ ๊ด๋ฆฌ
์ปจํ ์ด๋๋ฅผ ์คํํ ํ, ์ด๋ฅผ ํ์ธํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
Docker๋ ๋ค์ํ ๋ช ๋ น์ด๋ฅผ ์ ๊ณตํ์ฌ ์ปจํ ์ด๋์ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ์กฐ์ํ ์ ์์ต๋๋ค.
์คํ ์ค์ธ ์ปจํ ์ด๋ ํ์ธ
์คํ ์ค์ธ ๋ชจ๋ ์ปจํ ์ด๋๋ฅผ ํ์ธํ๋ ค๋ฉด docker container ls ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
docker container ls
์์ ์ถ๋ ฅ
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b5c33cca7b0f daehyunbigbread/mbti:embedded-db "npm run start" 12 minutes ago Up 12 minutes mbti
- CONTAINER ID: ์ปจํ ์ด๋์ ๊ณ ์ ์๋ณ์์ ๋๋ค.
- IMAGE: ์ปจํ ์ด๋๊ฐ ๊ธฐ๋ฐํ ์ด๋ฏธ์ง์ ๋๋ค.
- COMMAND: ์ปจํ ์ด๋๊ฐ ์คํ ์ค์ธ ๋ช ๋ น์ด์ ๋๋ค.
- CREATED: ์ปจํ ์ด๋๊ฐ ์์ฑ๋ ์๊ฐ์ ๋๋ค.
- STATUS: ์ปจํ ์ด๋์ ํ์ฌ ์ํ์ ๋๋ค.
- PORTS: ์ปจํ ์ด๋๊ฐ ๋ ธ์ถํ ํฌํธ์ ๋๋ค.
- NAMES: ์ปจํ ์ด๋์ ์ด๋ฆ์ ๋๋ค.
์ปจํ ์ด๋ ๋ด๋ถ ํ์ผ ํ์ธํ๊ธฐ
์ปจํ ์ด๋ ๋ด๋ถ์ ํ์ผ์ ํ์ธํ๊ณ ์ถ์ ๋๋ docker container exec ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ด ๋ช ๋ น์ด๋ ์คํ ์ค์ธ ์ปจํ ์ด๋ ๋ด์์ ๋ช ๋ น์ด๋ฅผ ์คํํ ์ ์๊ฒ ํด์ค๋๋ค.
๋ช ๋ น์ด ํ์
docker container exec [์ต์
] [์ปจํ
์ด๋๋ช
] [์คํํ ๋ช
๋ น์ด]
์์ : /app ๋๋ ํ ๋ฆฌ ํ์ผ ๋ชฉ๋ก ํ์ธ
docker container exec mbti ls /app
์์ ์ถ๋ ฅ
Dockerfile
next-env.d.ts
next.config.mjs
node_modules
package-lock.json
package.json
public
src
tsconfig.json
- ์ค๋ช : mbti ์ปจํ ์ด๋ ๋ด์ /app ๋๋ ํ ๋ฆฌ์ ์๋ ํ์ผ๋ค์ ๋์ดํฉ๋๋ค.
์ปจํ ์ด๋์ ํฐ๋ฏธ๋ ์ ์ํ๊ธฐ
์ปจํ ์ด๋ ๋ด๋ถ์ ์ง์ ์ ๊ทผํ์ฌ ๋ช ๋ น์ด๋ฅผ ์คํํ๊ฑฐ๋ ํ์ผ์ ์์ ํ๊ณ ์ถ์ ๋๋ docker container exec -it ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ด ๋ช ๋ น์ด๋ ์ปจํ ์ด๋ ๋ด๋ถ์ ํฐ๋ฏธ๋์ ์ฐ๊ฒฐํด์ค๋๋ค.
์ต์ ์ค๋ช
- -i: ์ธํฐ๋ํฐ๋ธ ๋ชจ๋๋ก ์คํํ์ฌ ํค๋ณด๋ ์ ๋ ฅ์ ์ปจํ ์ด๋์ ์ ๋ฌํฉ๋๋ค.
- -t: TTY๋ฅผ ํ ๋นํ์ฌ ํฐ๋ฏธ๋์ ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
๋ช ๋ น์ด ์์
docker container exec -it mbti bash
์คํ ๊ฒฐ๊ณผ
root@b5c33cca7b0f:/app#
- ์ค๋ช : mbti ์ปจํ ์ด๋ ๋ด๋ถ์ Bash ์ ธ์ ์คํํ์ฌ ์ง์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ ์ ์์ต๋๋ค.
- ์ข ๋ฃ: ์ปจํ ์ด๋ ๋ด๋ถ์์ exit ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ฌ ์ ธ์ ์ข ๋ฃํ๊ณ ํฐ๋ฏธ๋์ ๋น ์ ธ๋์ต๋๋ค.
์ปจํ ์ด๋ ๋ก๊ทธ ํ์ธํ๊ธฐ
์ปจํ ์ด๋์ ์คํ ๋ก๊ทธ๋ฅผ ์ค์๊ฐ์ผ๋ก ํ์ธํ๋ ค๋ฉด docker container logs -f ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ด ๋ช ๋ น์ด๋ ์ปจํ ์ด๋์ ๋ก๊ทธ๋ฅผ ์คํธ๋ฆฌ๋ฐํ์ฌ ์ค์๊ฐ์ผ๋ก ๋ชจ๋ํฐ๋งํ ์ ์๊ฒ ํด์ค๋๋ค.
๋ช ๋ น์ด ํ์
docker container logs -f [์ปจํ
์ด๋๋ช
]
์์ : mbti ์ปจํ ์ด๋ ๋ก๊ทธ ํ์ธ
docker container logs -f mbti
์์ ์ถ๋ ฅ
> mbti-nextjs@0.1.0 start
> next start
โฒ Next.js 14.2.3
- Local: http://localhost:3000
โ Starting...
โ Ready in 244ms
| GET | /api/healthcheck | Tue Jan 07 2025 07:35:11 GMT+0000 (Coordinated Universal Time) |
- ์ค๋ช : mbti ์ปจํ ์ด๋์ ์ค์๊ฐ ๋ก๊ทธ๋ฅผ ํ์ธํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ, ์์ฒญ ์ฒ๋ฆฌ ๋ฑ์ ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค.
์ค์๊ฐ ๋ก๊ทธ์ ์์ฒญ ์ฒดํฌ
์ปจํ ์ด๋์ ์์ฒญ์ ๋ณด๋ด๊ณ ๋ก๊ทธ์ ๋ฐ์๋๋์ง๋ฅผ ํ์ธํด๋ณด๊ฒ ์ต๋๋ค.
- ๋ก๊ทธ ๋ชจ๋ํฐ๋ง
- docker container logs -f mbti
- ์์ฒญ ๋ณด๋ด๊ธฐ
docker container exec mbti curl localhost:3000/api/healthcheck
- ์๋ก์ด ํฐ๋ฏธ๋ ์ฐฝ์ ์ด๊ณ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
- ๋ก๊ทธ ํ์ธ
> mbti-nextjs@0.1.0 start > next start โฒ Next.js 14.2.3 - Local: http://localhost:3000
- ๋ก๊ทธ ์ฐฝ์์ ์์ฒญ์ด ์ฒ๋ฆฌ๋ ๋ด์ญ์ ํ์ธํ ์ ์์ต๋๋ค.
โ Starting... โ Ready in 244ms | GET | /api/healthcheck | Tue Jan 07 2025 07:35:11 GMT+0000 (Coordinated Universal Time) |
์์ฒญ ๊ฒฐ๊ณผ
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 7428 0 7428 0 0 50815 0 --:--:-- --:--:-- --:--:-- 50876
- ์ค๋ช : curl ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ API ์๋ํฌ์ธํธ์ ์์ฒญ์ ๋ณด๋์ผ๋ฉฐ, ์ปจํ ์ด๋ ๋ก๊ทธ์ ํด๋น ์์ฒญ์ด ๊ธฐ๋ก๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
์คํ ์ค์ธ ์ปจํ ์ด๋ ์ข ๋ฃ ๋ช ๋ น์ด
์คํ ์ค์ธ ์ปจํ ์ด๋๋ฅผ ์ข ๋ฃํ๋ ค๋ฉด docker container stop ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ช ๋ น์ด ํ์
docker container stop [์ปจํ
์ด๋๋ช
]
์์ : mbti ์ปจํ ์ด๋ ์ข ๋ฃ
docker container stop mbti
์คํ ๊ฒฐ๊ณผ
mbti
- ์ค๋ช : mbti ์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋๋ฉฐ, docker container ls ๋ช ๋ น์ด๋ฅผ ํตํด ๋ ์ด์ ์คํ ์ค์ธ ์ปจํ ์ด๋ ๋ชฉ๋ก์ ๋ํ๋์ง ์์์ ํ์ธํ ์ ์์ต๋๋ค.
docker container ls
์์ ์ถ๋ ฅ
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- ์ค๋ช : mbti ์ปจํ ์ด๋๊ฐ ์ ์์ ์ผ๋ก ์ข ๋ฃ๋์ด ์คํ ์ค์ธ ์ปจํ ์ด๋ ๋ชฉ๋ก์ ๋ ์ด์ ํ์๋์ง ์์ต๋๋ค.
๋ง์ฝ ์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋ง ๋๊ณ ์ญ์ ๊ฐ ๋์ง ์์์ ๋?
--rm ์ต์ ์ ์ฌ์ฉํ์ง ์์ ๊ฒฝ์ฐ, ์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋๋๋ผ๋ ์์คํ ์ ๋จ์์์ ์ ์์ต๋๋ค.
์ด๋ฅผ ํ์ธํ๋ ค๋ฉด docker container ls -a ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ช ๋ น์ด ์์
docker container ls -a
์์ ์ถ๋ ฅ
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
aaf9f623ea59 daehyunbigbread/mbti:embedded-db "npm run start" 27 seconds ago Exited (1) 3 seconds ago mbti
- ์ค๋ช : mbti ์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋์์ง๋ง, ์ญ์ ๋์ง ์๊ณ ๋จ์์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
์ปจํ ์ด๋ ์ญ์ ํ๊ธฐ
์ข ๋ฃ๋ ์ปจํ ์ด๋๋ฅผ ์ญ์ ํ๋ ค๋ฉด docker container rm ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
docker container rm mbti
์คํ ๊ฒฐ๊ณผ
mbti
- ์ค๋ช : mbti ์ปจํ ์ด๋๊ฐ ์์คํ ์์ ์ญ์ ๋์์ต๋๋ค.
์ญ์ ํ์ธ
docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- ์ค๋ช : mbti ์ปจํ ์ด๋๊ฐ ๋ ์ด์ ๋ชฉ๋ก์ ๋ํ๋์ง ์์ต๋๋ค.
์คํ ์ค์ธ ์ปจํ ์ด๋ ์ผ๊ด ์ญ์ ํ๊ธฐ
์ฌ๋ฌ ๊ฐ์ ์คํ ์ค์ธ ์ปจํ ์ด๋๋ฅผ ์ผ๊ด์ ์ผ๋ก ์ญ์ ํ๋ ค๋ฉด docker container prune ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ด ๋ช ๋ น์ด๋ ์ฌ์ฉํ์ง ์๋ ๋ชจ๋ ์ปจํ ์ด๋๋ฅผ ์ญ์ ํฉ๋๋ค.
๋ช ๋ น์ด ์์
docker container prune
์คํ ๊ฒฐ๊ณผ
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B
- ์ค๋ช : ๋ชจ๋ ์ ์ง๋ ์ปจํ ์ด๋๊ฐ ์ญ์ ๋๋ฉฐ, ์ฌ์ฉ์๊ฐ y๋ฅผ ์ ๋ ฅํ์ฌ ํ์ธ์ ์๋ฃํฉ๋๋ค.
- ์ฃผ์์ฌํญ: -f ์ต์ ์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ํ์ธ ํ๋กฌํํธ๊ฐ ํ์๋ฉ๋๋ค. ์ค์๋ก ์ค์ํ ์ปจํ ์ด๋๊ฐ ์ญ์ ๋์ง ์๋๋ก ์ฃผ์ํ์ธ์.
docker container prune -f
- ์ค๋ช : ํ์ธ ํ๋กฌํํธ ์์ด ๋ชจ๋ ์ ์ง๋ ์ปจํ ์ด๋๊ฐ ์ญ์ ๋ฉ๋๋ค.
Example) Next.js ์๋ฒ ์ปจํ ์ด๋ ์คํํ๊ธฐ
์ด์ ์ค์ ์์ ๋ฅผ ํตํด Docker ์ปจํ ์ด๋๋ฅผ ์คํํ๊ณ ๊ด๋ฆฌํ๋ ๊ณผ์ ์ ์ค์ตํด๋ณด๊ฒ ์ต๋๋ค.
์ด๋ฒ์๋ Next.js ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ Docker ์ปจํ ์ด๋๋ก ์คํํฉ๋๋ค.
์ค์ต ์๊ฑด
๋ค์ ์กฐ๊ฑด์ ๋ถํฉํ๋ ์ปจํ ์ด๋๋ฅผ ์คํํด๋ณด๊ฒ ์ต๋๋ค.
- ์ปจํ ์ด๋ ์ด๋ฆ: mbti
- ์ด๋ฏธ์ง: [๊ณ์ ๋ช ]/mbti:embedded-db
- ํ๊ฒฝ ๋ณ์:
- PORT: 3000
- ์ปจํ ์ด๋ ์ข ๋ฃ ์ ์๋ ์ญ์ : --rm ์ต์ ์ฌ์ฉ
- ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํ: -d ์ต์ ์ฌ์ฉ
์ ํ๋ฆฌ์ผ์ด์ ์์ค ์ฝ๋ ๋ค์ด๋ก๋
๋จผ์ , ์ ํ๋ฆฌ์ผ์ด์ ์์ค ์ฝ๋๋ฅผ ๋ค์ด๋ก๋ ๋ฐ์์ผ ํฉ๋๋ค.
๋ค์ด๋ก๋ ๋ฐ์ mbti-mysql.zip ํ์ผ์ ์์ถ ํด์ ํฉ๋๋ค.
unzip mbti-mysql.zip -d mbti-mysql
cd mbti-mysql
Docker ์ปจํ ์ด๋ ์คํ
์ด์ Docker ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ปจํ ์ด๋๋ฅผ ์คํํด๋ณด๊ฒ ์ต๋๋ค. ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋๋ฅผ ์คํํฉ๋๋ค.
docker container run \
--name mbti \
-e PORT=3000 \
--rm \
-d \
daehyunbigbread/mbti:embedded-db
๋ช ๋ น์ด ์ค๋ช
- --name mbti:
- ์ค๋ช : ์ปจํ ์ด๋์ ์ด๋ฆ์ mbti๋ก ์ง์ ํฉ๋๋ค.
- -e PORT=3000:
- ์ค๋ช : ์ปจํ ์ด๋ ๋ด์์ PORT ํ๊ฒฝ ๋ณ์๋ฅผ 3000์ผ๋ก ์ค์ ํฉ๋๋ค.
- --rm:
- ์ค๋ช : ์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋๋ฉด ์๋์ผ๋ก ์ญ์ ๋ฉ๋๋ค.
- -d:
- ์ค๋ช : ์ปจํ ์ด๋๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํํฉ๋๋ค.
- daehyunbigbread/mbti:embedded-db:
- ์ค๋ช : ์คํํ Docker ์ด๋ฏธ์ง์ ๋๋ค.
์คํ ๊ฒฐ๊ณผ
๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด, Docker๋ ์ง์ ๋ ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ณ ์คํํฉ๋๋ค.
์ฑ๊ณต์ ์ผ๋ก ์คํ๋๋ฉด, ์ปจํ ์ด๋ ID๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค.
b5c33cca7b0f895c4e3e1cce9e2ef7bc0c3059231b6c6a3fce0accf8f0a1b206
์ปจํ ์ด๋ ๋ก๊ทธ ํ์ธ
์ปจํ ์ด๋๊ฐ ์ ์์ ์ผ๋ก ์คํ๋์๋์ง ํ์ธํ๊ธฐ ์ํด ๋ก๊ทธ๋ฅผ ํ์ธํด๋ณด๊ฒ ์ต๋๋ค.
docker container logs -f mbti
์์ ์ถ๋ ฅ
> mbti-nextjs@0.1.0 start
> next start
โฒ Next.js 14.2.3
- Local: http://localhost:3000
โ Starting...
โ Ready in 279ms
| GET | /api/healthcheck | Tue Jan 07 2025 08:03:44 GMT+0000 (Coordinated Universal Time) |
- ์ค๋ช : ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ์์ ์ผ๋ก ์์๋์์ผ๋ฉฐ, http://localhost:3000์์ ์คํ ์ค์์ ํ์ธํ ์ ์์ต๋๋ค.
์์ฒญ ๋ณด๋ด๊ธฐ ๋ฐ ๋ก๊ทธ ํ์ธ
์ค์๊ฐ ๋ก๊ทธ๊ฐ ์ ๋๋ก ์ถ๋ ฅ๋๋์ง ํ์ธํ๊ธฐ ์ํด ์ปจํ ์ด๋์ ์์ฒญ์ ๋ณด๋ด๋ณด๊ฒ ์ต๋๋ค.
docker container exec mbti curl localhost:3000/api/healthcheck
์คํ ๊ฒฐ๊ณผ
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 7428 0 7428 0 0 50815 0 --:--:-- --:--:-- --:--:-- 50876
- ์ค๋ช : curl ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ API ์๋ํฌ์ธํธ์ ์์ฒญ์ ๋ณด๋์ผ๋ฉฐ, ์์ฒญ์ด ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌ๋์์์ ํ์ธํ ์ ์์ต๋๋ค.
๋ก๊ทธ ํ์ธ
๋ก๊ทธ ์ฐฝ์ ํ์ธํ๋ฉด, ์์ฒญ์ด ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
> mbti-nextjs@0.1.0 start
> next start
โฒ Next.js 14.2.3
- Local: http://localhost:3000
โ Starting...
โ Ready in 279ms
| GET | /api/healthcheck | Tue Jan 07 2025 08:03:44 GMT+0000 (Coordinated Universal Time) |
- ์ค๋ช : /api/healthcheck ์๋ํฌ์ธํธ์ ๋ํ GET ์์ฒญ์ด ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌ๋์์์ ํ์ธํ ์ ์์ต๋๋ค.
์ถ๊ฐ ํ ๋ฐ ์ฃผ์์ฌํญ
Docker ์ปจํ ์ด๋๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ์ด์ํ๊ธฐ ์ํด ๋ช ๊ฐ์ง ํ๊ณผ ์ฃผ์์ฌํญ์ ์์๋๋ฉด ์ข์ต๋๋ค.
์ด๋ฏธ์ง ํ๊ทธ ๊ด๋ฆฌ
- ๋ฒ์ ํ๊ทธ ์ฌ์ฉ: v1.0.0, v1.0.1 ๋ฑ ๋ฒ์ ๋ณ๋ก ํ๊ทธ๋ฅผ ์ง์ ํ์ฌ ํน์ ๋ฒ์ ์ ์ฝ๊ฒ ์ฐธ์กฐํ ์ ์์ต๋๋ค.
- latest ํ๊ทธ ์ฃผ์: latest ํ๊ทธ๋ ํญ์ ์ต์ ์ด๋ฏธ์ง๋ฅผ ๊ฐ๋ฆฌํค๋ฏ๋ก, ๋ฐฐํฌ ํ๊ฒฝ์์๋ ๋ช ์์ ์ธ ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค.
- ์ผ๊ด๋ ํ๊ทธ ์ ๋ต: ํ๋ก์ ํธ๋ง๋ค ์ผ๊ด๋ ํ๊ทธ ์ ๋ต์ ์๋ฆฝํ์ฌ ๊ด๋ฆฌ์ ํธ์์ฑ์ ๋์ ๋๋ค.
์ปจํ ์ด๋ ์๋ ์ฌ์์ ์ค์
์ปจํ ์ด๋๊ฐ ์๊ธฐ์น ์๊ฒ ์ข ๋ฃ๋์์ ๋ ์๋์ผ๋ก ์ฌ์์ํ๋๋ก ์ค์ ํ ์ ์์ต๋๋ค.
docker container run \
--name mbti \
-e PORT=3000 \
--rm \
-d \
--restart unless-stopped \
daehyunbigbread/mbti:embedded-db
- ์ต์
์ค๋ช
:
- --restart unless-stopped: ์ปจํ ์ด๋๊ฐ ์๋์ผ๋ก ์ค์ง๋์ง ์๋ ํ, Docker๊ฐ ์๋์ผ๋ก ์ฌ์์ํฉ๋๋ค.
ํฌํธ ๋งคํ ์ค์
ํธ์คํธ์ ์ปจํ ์ด๋ ๊ฐ์ ํฌํธ๋ฅผ ๋งคํํ์ฌ ์ธ๋ถ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ทผํ ์ ์์ต๋๋ค.
docker container run \
--name mbti \
-e PORT=3000 \
--rm \
-d \
-p 3000:3000 \
daehyunbigbread/mbti:embedded-db
- ์ต์
์ค๋ช
:
- -p [ํธ์คํธ ํฌํธ]:[์ปจํ ์ด๋ ํฌํธ]: ํธ์คํธ์ 3000 ํฌํธ๋ฅผ ์ปจํ ์ด๋์ 3000 ํฌํธ์ ๋งคํํฉ๋๋ค.
- ํจ๊ณผ: ์ธ๋ถ์์ http://localhost:3000์ผ๋ก ์ ๊ทผํ๋ฉด ์ปจํ ์ด๋ ๋ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ ์ ์์ต๋๋ค.
ํ๊ฒฝ ๋ณ์ ํ์ผ ํ์ฉ
์ฌ๋ฌ ๊ฐ์ ํ๊ฒฝ ๋ณ์๋ฅผ ๊ด๋ฆฌํ ๋๋ --env-file ์ต์ ์ ์ฌ์ฉํ์ฌ ํ๊ฒฝ ๋ณ์ ํ์ผ์ ํ์ฉํ๋ ๊ฒ์ด ํธ๋ฆฌํฉ๋๋ค.
- ํ๊ฒฝ ๋ณ์ ํ์ผ ์์ฑ (.docker.env):
PORT=3000
DB_HOST=localhost
DB_PORT=3306
DB_NAME=db_mbti
DB_USERNAME=user_mbti
DB_PASSWORD=pw_mbti
- ์ปจํ ์ด๋ ์คํ ์ ํ๊ฒฝ ๋ณ์ ํ์ผ ์ง์ :
docker container run \
--name mbti \
--env-file .docker.env \
--rm \
-d \
daehyunbigbread/mbti:embedded-db
- ์ฅ์ : ํ๊ฒฝ ๋ณ์๋ฅผ ํ ๊ณณ์์ ๊ด๋ฆฌํ ์ ์์ด ํธ๋ฆฌํ๋ฉฐ, ์ฝ๋์ ํ๊ฒฝ ์ค์ ์ ๋ถ๋ฆฌํ ์ ์์ต๋๋ค.
docker container run ๋ช ๋ น์ด์ ์ฃผ์ ์ต์ ๋ค์ ์์ธํ ์ดํด๋ณด๊ณ , ์ค์ ์์ ๋ฅผ ํตํด ์ปจํ ์ด๋๋ฅผ ์คํํ๊ณ ๋ก๊ทธ๋ฅผ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ ์ต๋๋ค. ๋ํ, ์ปจํ ์ด๋๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ ์ถ๊ฐ ํ๊ณผ ์ฃผ์์ฌํญ๋ ์์๋ณด์์ต๋๋ค.
Docker๋ฅผ ํ์ฉํ๋ฉด ๊ฐ๋ฐ, ํ ์คํธ, ๋ฐฐํฌ ๊ณผ์ ์์ ๋ฐ์ํ ์ ์๋ ํ๊ฒฝ ์ฐจ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด์์ฑ๊ณผ ํ์ฅ์ฑ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค.
์ฐธ๊ณ ์๋ฃ
- Docker ๊ณต์ ๋ฌธ์: https://docs.docker.com/
- Docker CLI Reference: Docker Container Commands
- Docker Hub: Docker Hub Container Image Library | App Containerization
- Next.js ๊ณต์ ๋ฌธ์: Next.js Documentation
'โ๏ธ Cloud Native > ๐ณ Docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Docker] Docker Volume: ๋์ปค ๋ณผ๋ฅจ, ์ปจํ ์ด๋ ๋ฐ์ดํฐ ๊ด๋ฆฌ (0) | 2025.01.17 |
---|---|
[Docker] Docker Network: ๋์ปค ๋คํธ์ํฌ (0) | 2025.01.15 |
[Docker] Docker ์ด๋ฏธ์ง ๋น๋ & ๋ฐฐํฌ (0) | 2025.01.10 |
[Docker] Dockerfile ์์ฑํ๊ธฐ: ๋จ๊ณ๋ณ ๊ฐ์ด๋ (0) | 2025.01.10 |
[Docker] ์ด๋ฏธ์ง ๊ด๋ฆฌํ๊ธฐ: Docker ์ด๋ฏธ์ง ํจ์จ์ ์ผ๋ก ๋ค๋ฃจ๊ธฐ (0) | 2025.01.10 |