[Docker] Docker Container μ€ννκΈ°: λ¨κ³λ³ κ°μ΄λ
Dockerλ₯Ό νμ©νμ¬ μ»¨ν μ΄λλ₯Ό μ€ννκ³ κ΄λ¦¬νλ λ°©λ²μ λν΄ μμΈν μμλ³΄κ² μ΅λλ€.
Dockerλ μ ν리μΌμ΄μ μ 컨ν μ΄λννμ¬ μΌκ΄λ νκ²½μμ μ€νν μ μκ² ν΄μ£Όλ κ°λ ₯ν λꡬμ λλ€. νΉν, Docker μ΄λ―Έμ§λ₯Ό λΉλνκ³ λ°°ν¬ν ν, μ΄λ₯Ό κΈ°λ°μΌλ‘ 컨ν μ΄λλ₯Ό μ€ννκ³ κ΄λ¦¬νλ κ³Όμ μ λ§€μ° μ€μν©λλ€.
μ΄ κΈμμλ docker container run λͺ λ Ήμ΄μ κ΄λ ¨λ μ£Όμ μ΅μ λ€μ μμΈν μ€λͺ νκ³ , μ€μ μμ λ₯Ό ν΅ν΄ μ€μ΅ν΄λ³΄κ² μ΅λλ€.
docker container
docs.docker.com
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